以下代码段显示了BigQuery的写入方法(它从PubSub拾取数据)。 “写入BigQuery”数据流步骤接收TableRow数据,但是它以非常高的延迟(超过3-4小时)写入BigQuery,甚至根本不写入数据。日志中没有错误/警告,我可以看到数据到达此处。我希望它尽可能通用,所以不想在代码中提供架构。此代码段是否包含任何可能导致此行为的错误?
PCollection<TableRow> tableRows;
...
tableRows.apply("Write to BigQuery",
BigQueryIO.writeTableRows().to(options.getTable())
.withExtendedErrorInfo()
.withCreateDisposition(CreateDisposition.CREATE_NEVER)
.withWriteDisposition(WriteDisposition.WRITE_APPEND)
.withMethod(Method.STREAMING_INSERTS)
.withFailedInsertRetryPolicy(InsertRetryPolicy.retryTransientErrors()));
更新:我将代码修改为:
tableRows.apply("Write to BigQuery",
BigQueryIO.writeTableRows().to(options.getTable())
.withCreateDisposition(CreateDisposition.CREATE_NEVER));
现在它可以正常工作了。原始代码版本有什么问题?
问题已解决,这是下面的问题。