我的案例如下:
1)使用pubsub作为数据流中的输入,并将流数据加载到bigquery 2)从bigquery中选择聚合结果并加载到pubsub作为输出 3)监听pubsub显示的客户端
e.g。我有销售交易,希望实时查看区域(汇总)销售数据。我知道我可以使用2个管道来加载数据到bigquery(1)和其他数据流管道以获得聚合结果并推送到pubsub。
在单一管道中有什么办法吗?因为我不想构建业务流程层(即在第一个管道完成后,调用2个管道)。初始化管道成本很高。
感谢。
答案 0 :(得分:1)
我认为这可以通过单个数据流管道来完成,其中pubsub作为输入,bigquery和pubsub作为接收器。
基本上: 1. PubsubIO - > PCollection A. 2. A - > BigQueryIO 3. A - > Window.into(...) - > PCollection B. 4. B - > GroupBy(...) - > ParDo - > C 5. C - > PubsubIO
<强> https://beam.apache.org/get-started/mobile-gaming-example/ 强>
答案 1 :(得分:0)
如果您要将原始交易加载/流式传输到BigQuery中,则还可以考虑使用semi unbounded stream
使用BigQuery本身以具有成本效益的方式构建实时聚合