Databricks アセット バンドルで成果物設定を動的に定義する
この記事では、 Databricks アセット バンドルの成果物の設定をオーバーライドする方法について説明します。 「Databricks アセット バンドルとは」を参照してください。
Databricks バンドル構成ファイルでは、最上位の artifacts
マッピングの成果物設定を、 targets
マッピングの成果物の設定と結合できます (省略記号は、簡潔にするために省略されたコンテンツを示します)。
# ...
artifacts:
<some-unique-programmatic-identifier-for-this-artifact>:
# Artifact settings.
targets:
<some-unique-programmatic-identifier-for-this-target>:
resources:
artifacts:
<the-matching-programmatic-identifier-for-this-artifact>:
# Any more artifact settings to join with the settings from the
# matching top-level artifacts mapping.
最上位の artifacts
マッピングと、同じ成果物の targets
マッピングの両方で成果物の設定が定義されている場合、 targets
マッピングの設定は、最上位の artifacts
マッピングの設定よりも優先されます。
例 1: 最上位の成果物マッピングでのみ定義された成果物の設定
これが実際にどのように機能するかを示すために、次の例では、成果物のすべての設定を定義する最上位の artifacts
マッピングでpath
が定義されています (省略記号は、簡潔にするために省略されたコンテンツを示します)。
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
# ...
この例で databricks bundle validate
を実行すると、結果のグラフは次のようになります (省略記号は、簡潔にするために省略された内容を示します)。
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_package",
"...": "..."
}
},
"...": "..."
}
例 2: 複数の成果物マッピングで定義されている成果物設定の競合
この例では、path
は最上位の artifacts
マッピングと targets
の artifacts
マッピングの両方で定義されています。この例では、 targets
の artifacts
マッピングのpath
が最上位の artifacts
マッピングの path
よりも優先され、成果物の設定を定義します (省略記号は簡潔にするために省略されたコンテンツを示します)。
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
targets:
dev:
artifacts:
my-artifact:
path: ./my_other_package
# ...
この例で databricks bundle validate
を実行すると、結果のグラフは次のようになります (省略記号は、簡潔にするために省略された内容を示します)。
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_other_package",
"...": "..."
}
},
"...": "..."
}