パイプラインの環境バージョンを設定する
パブリックプレビュー
LakeFlow Pipelines の環境バージョンはパブリック プレビュー段階です。
環境バージョンは、 Python言語バージョンと、パイプラインのPythonコードで使用できるプリインストールされたPythonライブラリのセットをピン留めします。 パイプラインに追加する外部依存関係はすべて、この基本構造の上に構築されます。
環境バージョンは、パイプラインのPythonランタイムを、パイプラインが実行されるDatabricks Runtimeバージョンから分離します。環境バージョンが設定されている場合、Databricks RuntimeのアップグレードによってPython言語バージョンまたはプレインストールされているライブラリバージョンは変更されません。Pythonランタイムは、同じ環境バージョンを使用するServerless Jobとノートブックとも整合性があります。LakeFlow Pipelinesの現在のDatabricks Runtimeバージョンについては、LakeFlow Pipelinesリリースノートとリリースアップグレードプロセスをご覧ください。
Databricks は、対象となるパイプラインを環境バージョンへ自動的に移行します。自動移行を参照してください。
環境バージョンを持つパイプラインは、Spark Connectを通じてPythonコードを実行します。これにより、一部のパイプラインコードの動作が変わる可能性があります。制限事項と動作変更の完全なリストについては、環境バージョンの互換性を参照してください。
要件
環境バージョンには以下の要件があります。
- パイプラインはUnity Catalog使用する必要があります。 Hive metastoreパイプラインはサポートされていません。
サポートされている環境バージョン
Lakeflow Pipelines は、Serverless コンピュートとクラシック コンピュートの両方で、環境バージョン 3 および 4 をサポートしています。Python 言語のバージョンと、各バージョンで利用可能なプリインストールされている Python ライブラリの全リストについては、環境バージョンのリファレンスを参照してください。
自動移行
Databricks は、対象となるパイプラインを環境バージョンに自動的に移行します。移行はパイプラインの次回の更新時に行われ、手動の手順は不要であり、以下の保護機能が含まれています。
- 移行前に動作がチェックされます。 Databricksは、Spark Connect環境下で動作が異なる可能性のあるコードパターンをパイプラインからスキャンし、移行前後のパイプラインの出力プランを比較します。環境バージョンの互換性を参照してください。
- 移行が失敗した場合、自動的に元に戻ります。 移行された更新が何らかの理由で失敗した場合、 データが書き込まれる前に 停止され、次回の更新時にパイプラインは自動的に以前のランタイムに戻ります。対応は不要です。
- 明示的な設定は常に尊重されます。
environment_versionを自分で設定した場合、Databricks がそれを上書きすることはありません。
パイプラインの移行が正常に完了すると、今後はその環境バージョンで実行されます。選択されたバージョンは、パイプライン設定、GetPipeline APIレスポンス、およびruntime_detailsイベントログで確認できます。
自動的に移行されないもの
以下のいずれかに該当する場合、パイプラインは自動的に移行されません。
- 最新の更新による未解決のSpark Connect互換性警告があります。
- これはUnity Catalogパイプラインではありません。
- これは、自動移行がまだカバーしていない機能を使用しています:
foreach_batchシンク、イベントフック、スナップショット関数ソースからの AUTO CDC、またはカスタムイメージ。
自動的に移行されないパイプラインは、以前のPythonランタイムで変更なしに実行され続けます。パイプラインが対象となったら、環境バージョンを自分で有効にすることができます。
環境バージョンを自分で有効にする
自動移行はほとんどのパイプラインをカバーします。また、パイプラインエディター UI、Pipelines REST API、または Declarative Automation Bundles を通じて、より早い移行や特定のバージョンのピン留めなど、環境バージョンを明示的に構成することもできます。
環境バージョンを明示的に有効にする前に、パイプラインがSpark Connectと互換性があることを確認してください。そのバージョンを有効にすることでパイプラインの動作が変更されるとDatabricksが検出した場合、データが書き込まれる前に更新が失敗し、解決すべき差異を特定するエラーが表示されます。
UI を介して有効化する
- パイプラインエディタから、 [設定] をクリックします。
- パイプライン環境 で、
環境を編集します 。
- ドロップダウンリストから環境バージョンを選択してください。
- パイプライン設定を保存します。
パイプライン環境 セクションで追加された外部依存関係は、選択した環境バージョンに含まれるライブラリの上に重ねて構築されます。パイプラインの Python 依存関係の管理を参照してください。
API経由で有効化する
パイプラインREST API 、パイプラインの作成および更新時にenvironmentブロックを受け入れます。 ワークスペースでは、個人アクセストークン認証を有効にする必要があります。
環境バージョンを指定してパイプラインを作成するには:
curl --request POST \
--url 'https://<workspace-host>/api/2.0/pipelines' \
--header 'Authorization: Bearer <personal-access-token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "<pipeline-name>",
"catalog": "<catalog>",
"schema": "<schema>",
"channel": "CURRENT",
"environment": {
"environment_version": "4",
"dependencies": [
"simplejson==3.19.*"
]
}
}'
既存のパイプラインで環境バージョンを設定するには、 PUT /api/2.0/pipelines/<pipeline-id>とともに同じenvironmentブロックを送信します。
宣言型自動化バンドルを通じて有効化する
宣言型オートメーションバンドルを使用してパイプラインを作成する場合、パイプラインのYAML定義で環境バージョンを設定できます。
- Databricks CLIのバージョンが v0.294.0 以降であることを確認してください。そうでない場合は、インストールガイドに従ってアップグレードしてください。
- パイプラインバンドルのチュートリアルに従ってバンドルを設定します。
- バンドル内のパイプライン YAML を見つけます。通常は
<bundle-folder>/resources/<pipeline_name>_pipeline.yml。 - パイプライン YAML で
environment_versionフィールドとdependenciesフィールドを設定します。
resources:
pipelines:
my_pipeline:
name: my_pipeline
catalog: ${var.catalog}
schema: ${var.schema}
root_path: '../src/my_pipeline'
libraries:
- glob:
include: ../src/my_pipeline/transformations/**
environment:
environment_version: 4
dependencies:
- --editable ${workspace.file_path}
パイプラインの環境バージョンを確認する
パイプラインが実行している環境バージョンを確認するには(明示的に設定した場合でも、自動移行中にDatabricksが選択した場合でも):
- UI :パイプライン設定を開き、 「パイプライン環境」 セクションを確認するか、「
environment.environment_version」フィールドについてはJSONペインを確認してください。 - API :
GET /api/2.0/pipelines/<pipeline-id>を呼び出し、応答内でenvironment.environment_versionを探します。これは明示的に設定したバージョンを示しています。自動移行によって選択されたバージョンを確認するには、以下のイベント Logs を使用してください。 - イベントログ : 更新に使用された環境バージョンを報告する
runtime_detailsイベントを確認してください。runtime_detailsイベントの詳細を参照してください。
環境バージョンを無効化またはロールバックする
自動移行を手動でロールバックする必要はありません。失敗した移行は、次回の更新時に自動的に元に戻されます。環境バージョンが削除されると、パイプラインは以前のPythonランタイム構成に戻ります。予期しない事態が発生した場合は、Databricksサポートに連絡してください。
その他のリソース
- 環境バージョンの互換性 — 制限事項、動作の変更、互換性スキャン、および自動移行。
- パイプラインのPython依存関係を管理する— 環境バージョンの上に外部のPython依存関係を重ね合わせる。