システムチェックポイントとセーブポイントを総称してステートセットと呼びます。このトピックでは、ジョブのステートセットを管理する方法について説明します。具体的には、ステートセットの作成、表示、削除の方法、および特定の状態からジョブを復元する方法が含まれます。
背景情報
|
概念 |
詳細 |
|
システムチェックポイント (Apache Flink の Checkpoint に相当) |
ライフサイクルは Flink システムによって完全に管理されます。チェックポイント間隔、チェックポイントタイムアウト時間、チェックポイント間の最小間隔を設定し、その生成状況を確認できます。システムチェックポイントを手動で作成または削除することはできません。デフォルトでは、ジョブはジョブリカバリー用のステートセットの一部として 1 つのシステムチェックポイントを保持します。パラメーター設定の詳細については、「ジョブデプロイメント情報の設定」を参照してください。 |
|
セーブポイント (Apache Flink の Savepoint に相当) |
ライフサイクルは、以下の方法でユーザーが完全に管理します。
説明
スケジュールされた生成やクリーンアップを使用する場合でも、システムが従うルールを定義することでライフサイクルを管理します。 |
次の表に、システムチェックポイントおよびセーブポイントに対して実行できる操作、そのユースケース、関連ドキュメントへのリンクを示します。
|
操作 |
ユースケース |
ドキュメント |
|
セーブポイントの手動作成 |
特定のタイミング (ジョブの実行中または停止中) に手動でセーブポイントを作成し、後でそこからジョブを復元する必要がある場合があります。 重要
|
|
|
セーブポイントのスケジュールされた自動作成を設定する |
スケジュールに基づいてセーブポイントを自動的に作成するには、作成間隔を設定します。システムはこのルールに基づいて実行中のジョブのセーブポイントを作成するため、手動で作成する必要がなくなります。 |
|
|
ステート生成の概要を表示する |
概要を確認して、システムチェックポイントおよびセーブポイントの生成履歴を表示します。この情報により、ジョブのステート永続化ステータスを迅速に評価できます。 |
|
|
指定したセーブポイントからジョブを復元する (他のジョブからの復元を含む) |
特定のセーブポイントからジョブを復元するには、ジョブの開始時にそのセーブポイントを選択します。 説明
ジョブ間でセーブポイントを共有できますが、ステートの互換性を確保する必要があります。これは A/B テストに役立ちます。 |
|
|
セーブポイントの自動クリーンアップルールを設定する |
セーブポイントを手動で削除する代わりに自動的にクリーンアップするには、保持するセーブポイントの数または最大保持期間に基づいてルールを設定します。ルールを保存すると、システムはこのルールに基づいて実行中のジョブのセーブポイントを自動的にクリーンアップします。 説明
|
|
|
特定のセーブポイントを手動で削除する |
手動で作成されたセーブポイントは、ジョブの停止時に自動的に削除されません。不要な Object Storage Service (OSS) の使用量と関連コストを回避するため、古いセーブポイントを定期的に削除する必要があります。 |
|
|
ステート関連パラメーターを設定する |
ストリームのステートストレージシステム、SQL ジョブのステート TTL、セーブポイント作成中に生成される一時データをローカルディスクに保存するかどうかなどのパラメーターを設定します。 |
セーブポイントを手動で作成する
セーブポイントを手動で作成できるのは、ステータスが RUNNING のジョブのみです。
-
対象ジョブのセーブポイント作成ページに移動します。
-
対象ワークスペースの 操作 列で、コンソール をクリックします。
-
ページで、対象ジョブの名前をクリックします。
-
ページの右上隅にある セーブポイントの作成 をクリックします。
-
セーブポイントのフォーマットを選択し、説明を入力します。
セーブポイントのフォーマットには、ネイティブフォーマットとカノニカルフォーマットがあります。ネイティブフォーマットは生成が速く、ストレージ消費量も少ないですが、Flink バージョン間の互換性はありません。カノニカルフォーマットは生成に時間がかかり、ストレージ消費量も多いですが、異なる Flink バージョン間でのジョブ移行をサポートします。
-
作成をクリックします。
セーブポイントの定期自動作成を設定する
-
State ページに移動します。
-
対象ワークスペースの操作列で、コンソールをクリックします。
-
ページで、対象ジョブの名前をクリックします。
-
Stateをクリックします。
-
設定タブで、一定間隔でセーブポイントを自動生成スイッチをオンにし、スケジュールを設定します。
クイック設定をクリックして定義済みの時間間隔を選択するか、cron 式を手動で入力できます。式を手動で入力するには、各フィールドをクリックして値を変更します。次の表に、cron 式の 5 つのフィールドの有効な値とサポートされる特殊文字を示します。
フィールド
必須
値の範囲
特殊文字
分
はい
[0, 59]
* , - /
時
はい
[0, 23]
* , - /
日
はい
[1, 31]
* , - /
月
はい
[1, 12] または [JAN, DEC]
* , - /
曜日
はい
[1, 7] または [MON, SUN]。
説明数値形式 [1, 7] を使用する場合、1 は月曜日、7 は日曜日を意味します。
* , - /
説明最小間隔は 10 分です。10 分未満の間隔を指定した場合、システムはデフォルトで 10 分の間隔に設定します。
各フィールドは特定の含义を持つ特殊文字のセットをサポートしています。詳細については、次の表をご参照ください。
特殊文字
説明
例
*すべての有効な値。
Month フィールドでは、
*は毎月を意味します。Day of week フィールドでは、*は毎週すべての曜日を意味します。,列挙された値のリスト。
Minute フィールドでは、
5,20は毎時 5 分と 20 分にタスクをトリガーします。-値の範囲。
分フィールドで、
5-20は毎時 5 分から 20 分まで毎分タスクをトリガーします。/数値の増分。
分フィールドで、
0/15は毎時 0 分を開始点として 15 分ごとにタスクをトリガーします。3/20は毎時 3 分を開始点として 20 分ごとにタスクをトリガーします。次の表に cron 式の例を示します。
例
説明
15 10 * * *毎日午前 10:15 に実行されます。
0 12 * * *毎日午後 0:00 (正午) に実行されます。
0 10,14,16 * * *毎日午前 10:00、午後 2:00、午後 4:00 に実行されます。
0/30 9-17 * * *毎日午前 9:00 から午後 5:00 まで、30 分ごとに実行されます。
* 14 * * *毎日午後 2:00 から午後 2:59 まで、毎分実行されます。
0-5 14 * * *毎日午後 2:00 から午後 2:05 まで、毎分実行されます。
0/5 14 * * *毎日午後 2:00 から午後 2:55 まで、5 分ごとに実行されます。
0/5 14,18 * * *毎日午後 2 時台(午後 2:00~午後 2:55)および午後 6 時台(午後 6:00~午後 6:55)に、5 分ごとに実行されます。
0 12 * * WED毎週水曜日の正午(午後 12:00)に実行されます。
15 10 15 * *毎月 15 日の午前 10:15 に実行されます。
10,44 14 * 3 WED3 月の毎週水曜日の午後 2:10 および午後 2:44 に実行されます。
重要-
フィールド定義: 式には 5 つのフィールドが含まれます:
Minute Hour Day-of-month Month Day-of-week。 -
日と曜日の和集合: 第 3 フィールド (Day-of-month) と第 5 フィールド (Day-of-week) の両方が指定されている場合、それらは OR 条件で結合されます。
たとえば、
0 12 1 * 5は、タスクが毎月 1 日の午後 12:00 または毎週金曜日に実行されることを意味します。毎月 1 日が金曜日である場合にのみタスクが実行されるという意味ではありません。 -
疑問符 (
?) はサポートされていません: システムがエラーを報告したり、式を認識できなくなるため、?文字は使用しないでください。フィールドを無視するには、*を使用する必要があります。
-
ステータスの概要を表示する
-
[ステータス] ページに移動します。
-
Realtime Compute for Flink コンソールにログインします。
-
対象ワークスペースの[操作]列で、[コンソール]をクリックします。
-
ページで、対象デプロイメントの名前をクリックします。
-
[ステータス]をクリックします。
-
-
[概要]タブで、以下の情報を確認します。
カテゴリ
情報
システムチェックポイント
最後に成功したシステムチェックポイントおよび失敗したシステムチェックポイントに関する情報(ID、完了時刻、所要時間、合計ストレージサイズなど)を表示します。
セーブポイント
最後に成功したセーブポイントおよび失敗したセーブポイントに関する情報(セーブポイント ID、完了時刻、所要時間、または失敗時刻など)を表示します。
別のジョブのセーブポイントからジョブを復元する
特定のセーブポイントから復元できるのは、CANCELLED 状態のジョブのみです。ジョブが RUNNING 状態の場合は、先にジョブを停止してください。
-
[State] ページに移動します。
-
対象ワークスペースの [操作] 列で、[コンソール] をクリックします。
-
ページで、対象デプロイメントの名前をクリックします。
-
[State] をクリックします。
-
[History] タブで、[Savepoints] リスト内の対象セーブポイントを見つけます。
-
対象セーブポイントの [操作] 列で、 を選択します。
-
[ジョブの開始] 設定ダイアログボックスで、ジョブの起動設定を行います。
詳細については、「ジョブの開始」を参照してください。
セーブポイントの自動クリーンアップルールの設定
-
[State] ページに移動します。
-
Realtime Compute コンソールにログインします。
-
対象ワークスペースの[操作]列で、[コンソール]をクリックします。
-
ページで、対象デプロイメントの名前をクリックします。
-
[State]をクリックします。
-
-
[設定]タブで、[セーブポイントの定期自動クリーニング]スイッチをオンにし、クリーンアップルールを設定します。
[保存する履歴スナップショット数]および[履歴セーブポイントの最大保持期間]を設定できます。Flink ジョブの実行中に、これらの条件のいずれかが満たされると、セーブポイントがクリーンアップされます。
-
[変更の保存]をクリックします。
セーブポイントの削除
-
[State] ページに移動します。
-
Realtime Compute コンソールにログインします。
-
対象ワークスペースの[操作]列で、[コンソール]をクリックします。
-
ページで、対象デプロイメントの名前をクリックします。
-
[State]をクリックします。
-
-
[履歴]タブで、[セーブポイント]リストから対象のセーブポイントを見つけます。
-
対象セーブポイントの[操作]列で、を選択します。
-
[OK]をクリックします。
ステートパラメーターの設定
-
対象デプロイメントの [デプロイメント] ページに移動します。
-
対象ワークスペースの[操作]列で、[コンソール]をクリックします。
-
ページで、対象デプロイメントの名前をクリックします。
-
[設定]タブの[パラメーター]セクションの右側にある[編集]をクリックします。
-
[その他の設定]セクションに以下のコードを追加し、[保存]をクリックします。
state.backend.incremental: true。 table.exec.state.ttl: 129600000Flink の基本パラメーターおよび詳細パラメーターの詳細については、「GeminiStateBackend の設定」を参照してください。
関連ドキュメント
-
Realtime Compute for Apache Flink におけるシステムチェックポイントまたはセーブポイントに関する FAQ については、「システムチェックポイントまたはセーブポイント」を参照してください。
-
SQL 変更による互換性への影響の詳細については、「SQL の変更と互換性」を参照してください。