是否可以设置BigQuery JobID或在批处理管道运行时获取它 我知道使用BigQuery API是可能的,但如果我使用Apache Beam的BigQueryIO,它是否可能? 我需要在写入BigQuery后发送确认信息表明加载已完成。
答案 0 :(得分:5)
目前这是不可能的。事实上,单个BigQueryIO.write()
可能会使用许多BigQuery作业(即BigQueryIO.write()
是用于将数据写入BigQuery的通用API,而不是用于处理单个的API特定的BigQuery加载工作),例如:
BigQueryIO.write()
会将其分成多个加载作业。DynamicDestinations
),并且同时加载到多个表中,则每个表至少会有一个加载作业。PCollection
方法编写无界BATCH_LOADS
,它会定期为新到达的数据发出加载作业,但需遵守上述说明。STREAMING_INSERTS
方法(即使您正在编写有界PCollection
,也允许使用它),根本不会有任何加载作业。您需要使用一种典型的解决方法,即“在完成其他操作后执行某些操作”,例如,等到整个管道在主程序中使用pipeline.run().waitUntilFinish()
完成后再进行第二次操作。