流数据到Bigquery与上传数据到PubSub然后使用数据流向Bigquery插入数据之间的优缺点是什么?

时间:2017-05-02 14:28:11

标签: google-bigquery google-cloud-dataflow google-cloud-pubsub

据我所知,将数据流式传输到BigQuery会导致重复的行,因为它在这里提到https://cloud.google.com/bigquery/streaming-data-into-bigquery#real-time_dashboards_and_queries

另一方面,将数据上传到PubSub然后使用数据流将数据插入Bigquery会阻止重复的行?这里还有一个实时数据分析教程https://cloud.google.com/solutions/real-time/fluentd-bigquery

那么还有什么优点和缺点,以及在什么情况下我应该使用数据流从PubSub传输数据

1 个答案:

答案 0 :(得分:5)

使用Google Dataflow和PubSub,您可以完全控制流数据,您可以实时切片和切块数据并实现自己的业务逻辑,最后将其写入BigQuery表。另一方面,使用其他方法使用BigQuery作业直接将数据流传输到BigQuery,您绝对无法控制数据。

优缺点实际上取决于您对流数据的需求。如果您正在进行平面插入,则不需要Dataflow,但如果您需要一些严格的计算,例如按键分组,合并,分区,对流数据进行求和,则可能Dataflow将是最佳方法。需要记住的是成本,一旦你开始向PubSub注入大量数据并使用数据流来操纵那些开始变得昂贵的数据。

要回答您的问题,是的,您可以使用Dataflow消除重复的行。由于Dataflow完全控制数据您可以使用管道过滤器检查满足重复值的任何条件。我使用Dataflow管道的当前场景是实时操作我的客户日志记录,使用Dataflow和通过PubSub传递的日志流进行严格的预聚合。 Dataflow对于批处理和流数据操作都非常强大。希望这会有所帮助。