【发布时间】:2020-06-09 13:47:29
【问题描述】:
我有一个数据流作业,它从 pubsub 读取数据,将 PubsubMessage 转换为 TableRow,并使用 FILE_LOAD-方法(每 10 分钟,1 个分片)将此行写入 BQ。这项工作有时会引发ByteString would be too long-异常。当它将行连接到 Google Cloud Storage (GCS) 临时文件时,应引发此异常,因为您无法附加到 GCS 文件。如果我理解正确,可以让这个异常发生,因为稍后将使用“大”临时文件加载到 BQ,并且附加将发生在应该成功的新文件上。但是,当我接近项目的每日负载作业配额时,我希望在不增加负载作业数量的情况下防止发生此错误。
我可以:
- 将分片数增加到 2 个?或者这是否会导致写入器始终使用 2 个分片,即使它只需要写入少量行?
- 使用
setMaxFileSize()和分片数?或者作者是否仍会使用 2 个碎片,即使它实际上并没有?
提前致谢!
【问题讨论】:
标签: python google-cloud-dataflow apache-beam