2015-05-30 20 views

回答

5

的文件將被覆蓋。這有幾個動機:

  • 「類似報告」用例(計算輸入數據的摘要並將結果放在GCS上)似乎比用例更頻繁隨着管道的每次執行,增量生成數據並將更多數據放到GCS上。
  • 如果重新運行管道是冪等(-ish?),那麼這很好。例如。如果你在管道中發現了一個錯誤,你可以修復它並重新運行它,並享受覆蓋正確的結果。附加到文件的管道在這個問題上很難處理。
  • 不需要爲TextIO.Write指定輸出分片的數量;即使對於完全相同的流水線和相同的輸入數據,它在不同的執行過程中也可能略有不同。在這種情況下追加的語義會非常混亂。
  • 據我所知,追加是不可能有效地使用我知道的任何文件系統來實現的,同時保留了原子性和容錯保證(例如,即使在面對由於故障而重新執行捆綁)。

此行爲將記錄在github上顯示的SDK的下一個版本中。

+0

這是否仍然正確@jkff?我很確定,如果它們共享相同數量的碎片,它們只會被覆蓋。否則,文件名是不同的,舊的文件保存 – Maximilian

+0

是的,謝謝澄清。如果生成的文件與現有文件衝突,則現有文件將被覆蓋,但其他現有文件將保持不變。 – jkff

相關問題