0

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

在启动管道时,我没有设置工作人员的数量(正如我想象的那样,它会根据需要自动扩展)。在摄取这么多数据时,worker 的数量保持在 1,但 TextIO.write() 需要 15 分钟以上才能写入 2 分钟的窗口。这将继续备份,直到内存不足。当这一步得到如此备份时,Dataflow 不自动扩展是否有充分的理由?

当我将工作人员的数量增加到 6 个时,写入文件的时间从 4 分钟左右开始,持续 5 分钟,然后下降到 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

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

4

1 回答 1

0

因此,对于您的每个问题:

当这一步得到如此备份时,Dataflow 不自动扩展是否有充分的理由?

流式自动缩放是一项测试版功能,必须明确启用它才能按照此处的文档工作。

使用 6 名工人时,计算挂墙时间似乎有问题?

我的猜测是你运行你的 6 工人管道大约 5 小时 4 分钟,因此呈现的“Wall time”是 Workers*Hours。

于 2019-03-20T16:05:57.620 回答