2015-05-30 24 views

回答

5

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

  • “类似报告”用例(计算输入数据的摘要并将结果放在GCS上)似乎比用例更频繁随着管道的每次执行,增量生成数据并将更多数据放到GCS上。
  • 如果重新运行管道是幂等(-ish?),那么这很好。例如。如果你在管道中发现了一个错误,你可以修复它并重新运行它,并享受覆盖正确的结果。附加到文件的管道在这个问题上很难处理。
  • 不需要为TextIO.Write指定输出分片的数量;即使对于完全相同的流水线和相同的输入数据,它在不同的执行过程中也可能略有不同。在这种情况下追加的语义会非常混乱。
  • 据我所知,追加是不可能有效地使用我知道的任何文件系统来实现的,同时保留了原子性和容错保证(例如,即使在面对由于故障而重新执行捆绑)。

此行为将记录在github上显示的SDK的下一个版本中。

+0

这是否仍然正确@jkff?我很确定,如果它们共享相同数量的碎片,它们只会被覆盖。否则,文件名是不同的,旧的文件保存 – Maximilian

+0

是的,谢谢澄清。如果生成的文件与现有文件冲突,则现有文件将被覆盖,但其他现有文件将保持不变。 – jkff

相关问题