首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据流作业GCS到Pub/sub最大批次大小

数据流作业GCS到Pub/sub最大批次大小
EN

Stack Overflow用户
提问于 2020-08-26 09:18:25
回答 1查看 914关注 0票数 1

我将默认的数据流模板GCS用于Pub/Sub。云存储中的输入文件大小为300 of,每一行有2-3百万行。

启动数据流批处理作业时,会引发以下错误

来自工作人员的错误消息: org.apache.beam.sdk.io.gcp.pubsub.PubsubIO$Write$PubsubBoundedWriter.processElement(PubsubIO.java:1160):javax.naming.SizeLimitExceededException: Pub/Sub消息大小(1089680070)超过最大批处理大小(7500000)

从文档中可以看到: Pub/Sub在一批中最多接受1,000条消息,并且批处理的大小不能超过10 10。

这是否意味着我必须将输入文件拆分为10 or块或1000条消息才能发布?

建议如何将这样大的文件(每个文件300 is )加载到pubsub?

提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-08-27 00:10:49

这是已知的数据流方面的限制,此时存在一个特征请求来增加批处理的大小。使用+1按钮并按星号来跟踪问题的进展。

我建议您在建议解决方法的地方检查这个帖子。重要的是要考虑到这一解决方案意味着修改云存储文本到Pub/Sub模板以实现上面提到的自定义转换。

另一方面,您可以尝试创建云函数来拆分文件,然后由Dataflow处理,我认为:

  1. 创建一个“暂存”桶来上传您的大型文件。
  2. 编写一个云函数来拆分您的文件,并将小块写入另一个桶中。您可以尝试使用文件 package来做到这一点。
  3. 每次在Google云存储触发器“暂存”桶中上传新文件时,触发云函数运行。
  4. 一旦文件被分割成小块,使用相同的云函数从“暂存”桶中删除大文件,以避免额外的费用。
  5. 使用Dataflow模板云存储文本到Pub/Sub来处理第二个桶的小块。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63594443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档