google-cloud-platform - Google Dataflow 模板大小上限为 10Mb

标签 google-cloud-platform google-cloud-dataflow apache-beam

我在 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/

相关文章:

java - 数据流 + 数据存储 = DatastoreException : I/O error

java - 为什么我的处理时间窗口触发器触发但事件时间窗口触发器不会

python - 数据流未显示流管道的输出收集计数?

python - 用于侧面输入的高效 ParDo 设置或 start_bundle

go - Go 中的 Apache Beam 左连接

google-cloud-platform - gcloud compute ssh 停止

javascript - Google Firestore - 如何在一次往返中通过多个 ID 获取多个文档?

google-cloud-platform - Google Cloud SQL 连接错误 - 403 : Access Not Configured - despite having enabled the API

java - 如何以编程方式生成 gcloud 项目 oauth creds client_secret json 文件

google-cloud-dataflow - Google Dataflow - 从另一个 PCollection<String> 中排除一个 PCollection<String>