Dataflow TextIO.write 缩放问题

Dataflow TextIO.write issues with scaling

我创建了一个简单的数据流管道,它从 pubsub 读取字节数组,windows 它们,然后写入 GCS 中的文本文件。我发现对于流量较低的主题,这非常有效,但是我 运行 它在一个每分钟约 2.4GB 的主题上,并且开始出现一些问题。

开始管道时我没有设置工作人员的数量(因为我想象它会根据需要自动缩放)。当摄取这一数据量时,工作人员的数量保持在 1,但是 TextIO.write() 花费了 15 分钟以上的时间来写入 2 分钟的 window。这将继续备份,直到 运行 内存不足。当此步骤如此备份时,Dataflow 不自动缩放是否有充分的理由?

当我将工人数量增加到 6 人时,写入文件的时间从大约 4 分钟开始,持续 5 分钟 window,然后减少到 20 秒。

另外,当使用 6 个 worker 时,计算 wall time 似乎有问题?即使数据流已经赶上,我的似乎也从未下降,在 运行 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

职位编号:2019-03-13_19_22_25-14107024023503564121

所以对于你的每个问题:

Is there a good reason why Dataflow doesn't auto scale when this step gets so backed up?

流式自动缩放是一项测试版功能,必须根据文档明确启用它才能工作 here

When using 6 workers, it seems like there might be an issue for calculating wall time?

我猜你 运行 你的 6 名工作人员流水线大约需要 5 小时 4 分钟,因此显示的 "Wall time" 是工作人员*小时数。