【发布时间】:2019-07-04 15:55:41
【问题描述】:
我想构建以下管道:
pub/sub --> dataflow --> bigquery
数据正在流式传输,但我想避免将数据直接流式传输到 BigQuery,因此我希望在数据流机器中批量处理小块,然后当它们达到一定大小时将它们作为加载作业写入 BQ /时间。
我找不到任何关于如何使用 python apache beam SDK 执行此操作的示例 - 只有 Java。
【问题讨论】:
-
为什么要避免将其流式传输到 BigQuery 中?!
-
嘿@GrahamPolley,因为流式插入是有成本的,而加载作业是免费的:)
-
是的,但除非您大规模运行,否则通常可以忽略不计。在 PubSub 之外创建某种微批处理将需要更多的开发时间,并且它将有更多的移动组件,即更多的故障点和需要调试的区域。是不是真的值得吗?如果你是微批处理,你需要事先写出到 GCS,然后再支付存储费用。
标签: google-cloud-platform google-bigquery google-cloud-dataflow apache-beam