儲存點要求和初步說明

儲存點儲存兩件事:(a)所有資料來源的位置,(b)運算子的狀態。儲存點在許多環境中都很有用:

  • 輕微的應用程式碼更新
  • Flink 更新
  • 並行性的變化

版本 1.3 開始 (也適用於早期版本):

  • 必須啟用檢查點才能使儲存點成為可能。如果你忘記使用以下方法明確啟用檢查點:

    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    env.enableCheckpointing(checkpointInterval);
    

    你會得到:

    java.lang.IllegalStateException: Checkpointing disabled. You can enable it via the execution environment of your job
    
  • 在使用視窗操作時,使用事件時間(攝取或處理時間)來產生適當的結果至關重要;

  • 為了能夠升級程式並重用儲存點,必須設定手動 uid 。這是因為,預設情況下,Flink 在程式碼更改後更改運算子的 UID;

  • 鏈式運算子由第一個任務的 ID 標識。無法手動將 ID 分配給中間連結任務,例如在鏈[a - > b - > c]中,只能手動分配 ID,但不能分配 b 或 c。要解決此問題,你可以手動定義任務鏈。如果你依賴自動 ID 分配,連結行為的更改也將更改 ID(請參閱上面的點)。

常見問題解答中提供更多資訊。