数据流TextIO.write具有缩放问题

时间:2019-03-14 18:57:11

标签: google-cloud-storage google-cloud-dataflow apache-beam google-cloud-pubsub spotify-scio

我创建了一个简单的数据流管道,该管道从pubsub中读取字节数组,对其进行窗口化处理,然后写入GCS中的文本文件。我发现流量较低的主题可以很好地运行,但是我将其运行在每分钟约2.4GB的主题上,并且开始出现一些问题。

启动管道时,我没有设置工作人员的数量(我曾想过它会根据需要自动扩展)。提取此数据量时,工作程序数量保持为1,但是TextIO.write()花费15+分钟才能写入2分钟的窗口。这将继续进行备份,直到用尽内存。备份完此步骤后,Dataflow为何不自动缩放有充分的理由吗?

当我将工作人员的数量增加到6个时,写入文件的时间开始于大约5分钟的4分钟左右,然后下降到仅20秒。

另外,当使用6个工人时,似乎计算墙壁时间可能有问题?即使数据流出现问题,我的似乎也从未崩溃过,并且运行了4个小时后,我的写入步骤摘要看起来像这样:

Step summary
Step name: Write to output
System lag: 3 min 30 sec
Data watermark: Max watermark
Wall time: 1 day 6 hr 26 min 22 sec
Input collections: PT5M Windows/Window.Assign.out0
Elements added: 860,893
Estimated size: 582.11 GB

职位ID:2019-03-13_19_22_25-14107024023503564121

1 个答案:

答案 0 :(得分:0)

因此,对于每个问题:

  

备份完这一步后,Dataflow是否没有自动缩放的充分理由吗?

流式自动缩放是一项beta功能,必须根据文档here明确启用流式自动缩放功能。

  

使用6个工人时,似乎计算壁挂时间可能存在问题?

我的猜测是,您的6个工作人员管道运行了大约5个小时零4分钟,因此显示的“上班时间”是Workers * Hours。