数据流Apache Beam Python作业一步步陷入困境

时间:2019-08-18 14:32:18

标签: google-bigquery apache-beam dataflow

我正在运行一个数据流作业,该作业从BigQuery读取并在8 GB of data and result in more than 50,000,000 records.周围进行扫描。现在,我要一步一步地基于键进行分组,并且需要将一列连接起来。但是,在连接列的连接大小超过100 MB之后,为什么我必须在数据流作业中执行该分组依据,因为无法在Bigquery level due to row size limit of 100 MB.

中完成该分组依据

现在,从BigQuery读取数据流作业时,它的伸缩性很好,但被卡在G​​roup by Step上,我有2个版本的数据流代码,但是两者都卡在group by step上。 When I checked the stack driver logs, it says, processing stuck at lull for more than 1010 sec time(similar kind of message) and Refusing to split GroupedShuffleReader <dataflow_worker.shuffle.GroupedShuffleReader object at 0x7f618b406358> kind of message

enter image description here enter image description here

我希望按状态分组可以在20分钟内完成,但是会停留超过1个小时且永远不会完成

1 个答案:

答案 0 :(得分:0)

我自己弄清楚了这件事。 以下是我在管道中所做的2个更改: 1.我在Group by Key之后添加了Combine函数,请参见屏幕截图enter image description here

  1. 由于在多个工作服务器上运行时按组进行分组,会进行大量网络流量交换,并且默认情况下我们使用的网络不允许网络间通信,因此我必须创建一个防火墙规则以允许来自一个工人到另一个工人,即IP范围到网络流量。