google-cloud-dataflow - TextIO.Write - 是否附加或替换输出文件(Google Cloud Dataflow)

标签 google-cloud-dataflow

我找不到任何相关文档,所以我想知道如果输出文件已经存在(在 gs://存储桶中),会有什么行为?

谢谢, G

最佳答案

文件将被覆盖。这样做有几个动机:

  • “类似报告”的用例(计算输入数据的摘要并将结果放在 GCS 上)似乎比增量生成数据并将更多数据放入 GCS 的用例要频繁得多管道的每次执行。
  • 如果重新运行管道是幂等的(-ish?),那就太好了。例如。如果您在管道中发现错误,您可以修复它并重新运行它,并享受覆盖的正确结果。在这种情况下,附加到文件的管道将非常难以使用。
  • TextIO.Write不需要指定输出分片的数量;即使对于完全相同的管道和相同的输入数据,不同的执行之间也可能略有不同。在这种情况下附加的语义会非常困惑。
  • 据我所知,使用我所知道的任何文件系统,在保留原子性和容错保证的同时,不可能有效地实现附加(例如,即使面对由于失败而重新执行 bundle )。

此行为将记录在 github 上出现的下一版本的 SDK 中。

关于google-cloud-dataflow - TextIO.Write - 是否附加或替换输出文件(Google Cloud Dataflow),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30551444/

相关文章:

google-cloud-dataflow - 数据流僵尸作业 - 卡在 "Not Started"状态

google-cloud-dataflow - 从数据流加载 Bigquery 表时,我们如何设置 maximum_bad_records?

java - 在Dataflow中手动发送PubSub消息

python - 谷歌云平台: Pub/Sub to Bigtable

python - 在Python中使用Google数据流从Bigquery到Bigtable数据传输

google-cloud-dataflow - 使用 Python SDK 加入多个流

google-cloud-dataflow - 如何确保 DataFlow 和 Cloud Pub Sub 的幂等性?

java - DirectRunner 不按照我在 Beam Java SDK 中使用 FixWindows 指定的方式从 Pub/Sub 读取数据

google-cloud-dataflow - Google Dataflow 作业连续失败 : "Pipe broken"

python-2.7 - 在 Google Cloud Dataflow 中访问模板化运行时参数 - Python