我有一个带有BigQuery表的管道作为接收器。在将数据写入BigQuery之后,我需要完全执行一些步骤。这些步骤包括对该表执行查询,从中读取数据并写入另一个表。
如何实现上述目标?我应该为后者创建一个不同的管道,但是在第一个管道之后调用它将是我假设的另一个问题。
如果以上都不起作用,是否可以从正在运行的管道调用另一个数据流作业(模板)。
真的需要一些帮助。
感谢。
答案 0 :(得分:1)
BigQueryIO目前尚未明确支持此功能。唯一的解决方法是使用单独的管道:启动第一个管道,等待它完成(例如使用pipeline.run().waitUntilFinish()
),启动第二个管道(确保为它使用单独的Pipeline对象 - 重用相同的对象不支持多次)。
答案 1 :(得分:0)
我一直在使用 templates 的一种解决方法是将IO操作的结果写入元数据文件到特定的存储区(即云函数)(即我的 orchestrator )被触发,然后触发以下管道。但是,我仅使用TextIO操作对其进行了测试。 因此,就您而言:
可以肯定,可以使用PubSub轻松复制类似的方法,而不用写入存储桶(例如,列表中的第二步,请参见here)