![](/img/trans.png)
[英]Apache Beam - Write BigQuery TableRow to Cassandra
[英]Apache Beam does not create BigQuery table if no data is to write
我有一个 Beam 管道定义为:
PCollectionList.of(mycollection1).and(mycollection2)
.apply(new MyTransform())
.apply(BigQueryIO.write()
.to("my_result_table")
.withSchema()
.withFormatFunction()
.withMethod(BigQueryIO.Write.Method.STORAGE_WRITE_API)
.withNumStorageWriteApiStreams(10)
.withFailedInsertRetryPolicy(InsertRetryPolicy.retryTransietErrors())
.withKmsKey(key)
.withCreateDisposition(CREATE_IF_NEEDED)
.withWriteDisposition(WRITE_TRUNCATE)
.withCustomGcsTempLocation(ValueProvider.StaticValueProvider.of(tempLocation)))
);
此管道在 Google Dataflow 上运行。
如果 MyTransform 产生一些结果,它工作正常。 但是,MyTransform 的业务逻辑允许它产生一个内部没有结果的 PCollection。 如果发生这种情况,我希望有一个名为 my_result_table 的空 BigQuery 表。
如果 MyTransform 生成一个空的 PCollection,那么 Dataflow 似乎将完全跳过 BigQueryIO,这样就不会生成任何 BigQuery 表。
如果 MyTransform 生成空的 PCollection,有什么方法可以强制 BigQuery 创建一个空表?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.