我在 Google 数据流上设置了一个模板,并且运行良好。经过一些修改,在分区上添加并行处理,模板大小变得更大。我尝试运行它但失败了。我遇到了如下错误
模板文件“gs://my-bucket/templates/my-template-name”太大。最大大小为 10485760 字节。
看起来 gcp 对模板大小有大约 10 MB 的上限。有什么办法可以增加限制或压缩生成的模板吗?我所做的更新几乎是从 pCollection 创建分区。然后该 pCollectionList 中的每个 pCollection 开始相同结构的转换和文件写入。没有分区时,大小为 1.5 mb。分区为 4 个分区,它增长到 6 MB。当使用 8 个分区时,它增长到 12 MB。这不是限制了管道的复杂性吗?
这里是一些关于分区的描述。起源过程是这样的
字符串选项 -> pCollection 作为输入文件 -> TextIO -> 排序 -> 写入
分区后的样子
字符串选项 -> pCollection 作为输入文件 -> 分区 -> 每个分区执行 TextIO -> 排序 -> 写入
中间的分区是唯一的主要变化。为什么这会使模板的大小变大几倍?
最佳答案
这是 Dataflow 的一个已知问题。如果您使用的是 Beam SDK >= 2.9,则可以将 --experiments=upload_graph
添加到用于生成模板的命令中。它应该可以帮助您生成更小的模板。但是,我不确定此功能现在是否完全可供所有 Dataflow 用户使用,因为它刚刚实现。如果没有,可能需要几周时间才能完全可用。
关于google-cloud-platform - Google Dataflow 模板大小上限为 10Mb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56728194/