継続的パイプラインの更新を管理する
継続的パイプラインは停止せずに実行されるため、Databricks では、新しいランタイム バージョンやインフラストラクチャのメンテナンスなどのプラットフォームの更新を適用する前に、処理の完了を待つことができません。これらの更新を適用するために、Databricks はパイプラインを再起動します。 メンテナンスウィンドウ を使用すると、再起動のタイミングを制御できます。曜日の指定、開始時刻、タイムゾーンを選択すると、Databricks はその期間内のみメンテナンスを開始します。
メンテナンスウィンドウは、パイプラインを実行する連続ジョブの設定です。設定しない場合、メンテナンスはいつでも実行される可能性があります。
Databricks がアップデートを適用する方法
継続的パイプラインを更新するために、Databricks は新しいクラスター上で新しいパイプラインの更新を開始し、前のクラスターをシャットダウンします。継続的パイプラインはストリーミングチェックポイントで進行状況を追跡するため、新しいアップデートは前回中断したところから再開されます。スワップ中、データ処理が一時停止し、その後データを損失することなく継続されます。
Databricks では、選択した曜日の開始時刻から始まる 1 時間のウィンドウ内でのみメンテナンスが開始されます。再起動自体は通常、短時間で完了します。
ワークロードで短い再起動が許容される曜日と開始時刻を選択します。
どのようなアップデートが含まれますか?
継続的パイプラインのメンテナンスには、以下が含まれます。
- Databricks Runtimeバージョンのアップグレード
- セキュリティ パッチと更新
- オペレーティングシステムのアップデート
- LakeflowでのSpark宣言型パイプラインの機能と拡張
- Serverlessインフラストラクチャのメンテナンス(長期稼働するServerlessクラスターの定期的なリサイクルなど)
ランタイムのアップグレード(サービスアップグレード)とServerlessインフラストラクチャのメンテナンスの両方において、設定したメンテナンスウィンドウが適用されます。
Serverless クラスターには最大有効期間があります。次回のメンテナンス期間の前にその制限に達した場合、現在時刻がメンテナンス期間外であっても、Databricks は制限内に収まるようにパイプラインを再起動します。これにより、長時間実行されるパイプラインが確実に最終的にリサイクルされます。
更新が適用される頻度
Databricks は、メンテナンスが必要な場合にのみアップデートを適用します。New runtime versions are released periodically, and Serverless infrastructure maintenance occurs on a recurring cadence。個々のパイプラインが再起動する頻度は、以下によって決まります。
- パイプラインに適用される新しい Databricks Runtime リリースの頻度
- For Serverless パイプラインの場合、Serverless クラスターの定期的な再起動スケジュール
- メンテナンスウィンドウの発生頻度
メンテナンスウィンドウになり、保留中のアップデートがない場合、再起動を行わずにウィンドウが経過します。
メンテナンスウィンドウを設定する
Databricks UI または Jobs REST API でメンテナンスウィンドウを設定できます。
メンテナンスウィンドウには、次の3つの必須部分があります:
設定 | 説明 |
|---|---|
曜日 | 月曜日から日曜日までの 1 日。 |
開始時間 | ウィンドウが起動する時間(24時間制の |
タイムゾーン |
|
メンテナンスウィンドウは、継続的ジョブおよびパイプラインにのみ適用されます。この設定は、スケジュールで実行されるジョブや、異なるTriggerタイプを使用するジョブでは利用できません。
UI でメンテナンスウィンドウを設定する
ジョブUIまたはパイプラインUIのいずれからでも、メンテナンスウィンドウを設定できます。
ジョブUIから
- Databricks ワークスペースのサイドバーで、
[ジョブとパイプライン (Jobs & Pipelines)] をクリックします。
- ジョブの名前をクリックします。
- ジョブの詳細 ペインで、 連続 Trigger を開き、 詳細設定 を展開して メンテナンスウィンドウ を表示します。
- 曜日、開始時間、およびタイムゾーンを選択します。
- 保存 をクリックします。
パイプライン UI から
- Databricks ワークスペースのサイドバーで、
[ジョブとパイプライン (Jobs & Pipelines)] をクリックします。
- パイプラインの名前をクリックします。
- Schedule を開き、 Advanced settings を展開して Maintenance window を見つけます。
- 曜日、開始時間、およびタイムゾーンを選択します。
- 保存 をクリックします。
Jobs API を使用してメンテナンスウィンドウを設定する
Jobs REST API を使用してジョブを作成または更新するときに、continuous 設定内の maintenance_window フィールドを設定します。次の例では、火曜日の東部時間午前 2 時にメンテナンスが開始されるように設定します。
{
"continuous": {
"pause_status": "UNPAUSED",
"maintenance_window": {
"start_hour": 2,
"day_of_week": "TUESDAY",
"timezone_id": "America/New_York"
}
}
}
メンテナンスウィンドウを設定する場合、3つのフィールド(start_hour、day_of_week、timezone_id)すべてが必須です。start_hourには0から23までの整数を指定してください。
メンテナンス通知を構成する
Databricks は、メンテナンス再起動の開始時および終了時に通知することができます。メンテナンス通知には標準の Lakeflow Jobs 通知システムが使用されるため、Eメールアドレスや、Slack、PagerDuty、Microsoft Teams などのシステム送信先に通知を送信できます。「ジョブに通知を追加する」を参照してください。
継続的ジョブでは、2つのイベントを利用できます。
- メンテナンスの開始 : メンテナンスの再起動が開始されたときに送信されます。ジョブ、原因(サービス アップグレードなど)、および開始時刻が含まれます。
- メンテナンス完了 (Maintenance complete) : 再起動が完了したときに送信されます。原因、完了時刻、再起動の所要時間、および再起動後のパイプラインのステータスが含まれます。
夏時間の切り替え
Databricks は設定したタイムゾーンでメンテナンスウィンドウを評価するため、ウィンドウはそのゾーンのサマータイムの切り替えに従います。ほとんどの日において、ウィンドウは設定されたローカル時間に開始します。時計が変更される日には、開始時刻が最大 1 時間前後する可能性があります。稼働スケジュールに一致するタイムゾーンを選択します。
更新中の中断に対処する
メンテナンスによる再起動では、新しいアップデートが適用されている間、データ処理が一時停止されます。ストリーミングソースは一時停止中もデータの蓄積を続け、新しいアップデートはパイプラインのチェックポイントから再開するため、データが失われることはありません。
パイプラインに厳格なレイテンシー要件がある場合は、短い一時停止が許容される時間帯にメンテナンスウィンドウを選択してください。再起動後にパイプラインが正常な状態に戻ったことを確認するには、 [メンテナンス完了 (Maintenance complete)] 通知を監視してください。