Apache Beam BigqueryIO.Write getSuccessfulInserts 不工作
Apache Beam BigqueryIO.Write getSuccessfulInserts not working
我们正在创建一个简单的 apache beam 管道,它将数据插入到 bigquery table 中,我们正在尝试获取已成功插入到 table 中的 table 行,并且table错误的行,代码如截图所示
根据以下文档:
https://beam.apache.org/releases/javadoc/2.33.0/org/apache/beam/sdk/io/gcp/bigquery/WriteResult.html
BigQueryIO.writeTableRows()
returns 一个 WriteResult
对象,其中 getSuccessfulInserts()
将 return 一个 PCollection<TableRow>
包含已成功插入的 TableRows
并且 getFailedInserts()
将 return 另一个 PCollection<TableRow>
其中包含已失败的 TableRows
。
但是当我们测试管道时 getFailedInserts()
似乎在工作,它正在获取失败的 TableRows
,但是 getSuccessfulInserts()
总是得到一个空的 PCollection
我们已经尝试了一切,但似乎没有用。我们是不是漏掉了什么?
提前致谢。
这是 Apache Beam 2.36.0 版本中经过一些重构后引入的错误。修复在 https://github.com/apache/beam/pull/16768 中,并将在 2.37.0 版本中。
我们正在创建一个简单的 apache beam 管道,它将数据插入到 bigquery table 中,我们正在尝试获取已成功插入到 table 中的 table 行,并且table错误的行,代码如截图所示
根据以下文档:
https://beam.apache.org/releases/javadoc/2.33.0/org/apache/beam/sdk/io/gcp/bigquery/WriteResult.html
BigQueryIO.writeTableRows()
returns 一个 WriteResult
对象,其中 getSuccessfulInserts()
将 return 一个 PCollection<TableRow>
包含已成功插入的 TableRows
并且 getFailedInserts()
将 return 另一个 PCollection<TableRow>
其中包含已失败的 TableRows
。
但是当我们测试管道时 getFailedInserts()
似乎在工作,它正在获取失败的 TableRows
,但是 getSuccessfulInserts()
总是得到一个空的 PCollection
我们已经尝试了一切,但似乎没有用。我们是不是漏掉了什么?
提前致谢。
这是 Apache Beam 2.36.0 版本中经过一些重构后引入的错误。修复在 https://github.com/apache/beam/pull/16768 中,并将在 2.37.0 版本中。