Google 数据流模板大小上限为 10Mb

Google Dataflow Template size cap at 10Mb

我在 Google 数据流上设置了一个模板,它 运行 很好。在分区上添加并行处理的一些修改后,模板大小变得更大。我尝试 运行 它但失败了。我收到如下错误

Template file 'gs://my-bucket/templates/my-template-name' was too large. Max size is 10485760 bytes.

看起来 gcp 对模板大小有 10 MB 左右的上限。有没有办法增加限制或压缩生成的模板?我所做的更新几乎是从 pCollection 创建分区。然后这个 pCollectionList 中的每个 pCollection 开始 t运行sform 和文件写入的相同结构。没有分区,大小为 1.5 mb。分区到 4 个分区,它增长到 6 MB。当进行 8 个分区时,它增长到 12 MB。这不是限制了流水线的复杂度吗?

这里是关于分区的一些描述。 origin过程是这样的 String option -> pCollection as input files -> TextIO -> sort -> write

分区后就好

String option -> pColletion as input files -> parition -> each partition does TextIO -> sort -> write

中间的分区是唯一的重大变化。为什么这会使模板的大小增加几倍?

这是 Dataflow 的一个已知问题。如果您使用的是 Beam SDK >= 2.9,您可以将 --experiments=upload_graph 添加到用于生成模板的命令中。它应该可以帮助您生成较小的模板。但是,我不确定现在是否所有 Dataflow 用户都可以使用此功能,因为它刚刚实现。如果没有,可能需要几周时间才能完全可用。