Understand and manage Delta Live Tables upgrades | Databricks on AWS [2022/8/11時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Delta Live TablesのクラスターはDatabricks Runtimeをベースとしたランタイムを使用します。Databricksはプラットフォームに対するエンハンスメントとアップグレードをサポートするために、自動でDelta Live Tablesランタイムをアップグレードします。あらゆるソフトウェアのアップグレードと同様に、Delta Live Tablesランタイムのアップグレードは、お使いのパイプラインを実行する際にエラーや問題を引き起こす場合があります。本書では、近くリリースされるDelta Live Tablesランタイムを用いてパイプラインをテストするためのベストプラクティスと、パイプラインの安定性を強化するDelta Live Tablesの機能を説明します。
Delta Live Tablesランタイムチャンネル
Delta Live Tables設定のchannel
フィールドは、パイプラインを実行するDelta Live Tablesランタイムのバージョンをコントロールします。サポートされている値は以下の通りです。
-
preview
は、間も無く変更されるランタイムバージョンを用いてパイプラインをテストするためのものです。 -
current
は、現行のランタイムバージョンを使用するためのものです。
デフォルトでは、パイプラインはcurrent
ランタイムバージョンを使用します。プロダクションワークロードではcurrent
ランタイムを使用することをお勧めします。次のランタイムバージョンを用いてパイプラインをテストするためにどのようにpreview
設定を使用するのかに関しては、次のランタイムバージョンを用いたパイプラインのテストを自動化するをご覧下さい。
Delta Live Tablesランタイムのアップグレードプロセス
Delta Live TablesはあなたのDatabricksワークスペースのランタイムを自動でアップグレードし、アップグレード後のあなたのパイプラインの健康状態をモニタリングします。Delta Live Tablesがアップグレードによってパイプラインをスタートできないことを検知した場合、パイプラインのランタイムバージョンは既知の以前のバージョンに戻され、自動で以降のステップが起動されます。
注意
Delta Live Tablesはプロダクションモードで実行されており、チャンネルがcurrent
に設定されているパイプラインでのみバージョンの差し戻しを行います。
- パイプラインのDelta Live Tablesランタイムは既知の以前のバージョンに固定されます。
- Delta Live TablesのUIには、アップグレード失敗によってパイプラインには以前のバージョンが固定されたことを示すビジュアルなインジケーターが表示されます。
- Databricksサポートに問題がレポートされます。問題がランタイムのレグレッションである場合、Databricksが問題を解決します。問題がパイプラインで用いられているカスタムライブラリやパッケージである場合、Databricksは問題を解決するためにあなたにコンタクトします。
- 問題が解決されると、Databricksは再度アップグレードを行います。
ベストプラクティス
次のランタイムバージョンを用いたパイプラインのテストを自動化する
次のDelta Live Tablesランタイムバージョンの変更がお使いのパイプラインにインパクトを与えないことを確認するために、Delta Live Tablesのチャンネル機能を使ってください。
- ステージングのパイプラインを作成し、チャンネルを
preview
に設定します。 - Delta Live Tables UIで、週次でパイプラインを実行す流スケジュールを作成し、パイプラインの失敗時にメールの通知を受け取る様にアラートを有効化します。
- 失敗時の通知を受け取り、問題を解決できない場合には、Databricksのサポートチケットをオープンします。
パイプラインの依存関係
Delta Live Tablesはパイプラインにおける依存関係をサポートしています。例えば、%pip install
コマンドを用いて任意のPythonパッケージをインストールすることができます。また、Delta Live Tablesはグローバルあるいはクラスタースコープのinit scriptをサポートしています。しかし、これらのパイプラインにおける外部依存関係、特にinit scriptはランタイムアップグレード時のリスクを増加させます。これらのリスクを軽減するために、パイプラインにおけるinit scriptの使用は最小限に留めてください。処理でinit scriptが必要な場合には、早い段階で問題を検知するためにパイプラインのテストを自動化してください。次のランタイムバージョンを用いたパイプラインのテストを自動化するをご覧下さい。init scriptを使う際には、テストの頻度を高めることをお勧めします。