覆寫 Databricks 資產組合中的叢集設定
本文說明如何在 Databricks 資產組合中 覆寫 Azure Databricks 叢集的設定。 請參閱 什麼是 Databricks 資產套件組合?
在 Azure Databricks 套件組合組態檔中,您可以使用對應中的叢集設定,將叢集設定加入最上層 resources
對應, targets
如下所示。
針對作業,使用 job_cluster_key
作業定義內的對應,將最上層 resources
對應中的叢集設定與對應中的叢集設定聯結在一起 targets
,例如(省略的省略內容,為簡潔起見):
# ...
resources:
jobs:
<some-unique-programmatic-identifier-for-this-job>:
# ...
job_clusters:
- job_cluster_key: <some-unique-programmatic-identifier-for-this-key>
new_cluster:
# Cluster settings.
targets:
<some-unique-programmatic-identifier-for-this-target>:
resources:
jobs:
<the-matching-programmatic-identifier-for-this-job>:
# ...
job_clusters:
- job_cluster_key: <the-matching-programmatic-identifier-for-this-key>
# Any more cluster settings to join with the settings from the
# resources mapping for the matching top-level job_cluster_key.
# ...
如果在最上層 resources
對應和 targets
相同 job_cluster_key
對應中定義任何叢集設定,則對應中的 targets
設定優先於最上層 resources
對應中的設定。
針對 Delta Live Tables 管線,使用 label
管線定義內的 cluster
對應,將最上層 resources
對應中的叢集設定與對應中的叢集設定聯結在一起 targets
,例如(省略的省略內容,為簡潔起見):
# ...
resources:
pipelines:
<some-unique-programmatic-identifier-for-this-pipeline>:
# ...
clusters:
- label: default | maintenance
# Cluster settings.
targets:
<some-unique-programmatic-identifier-for-this-target>:
resources:
pipelines:
<the-matching-programmatic-identifier-for-this-pipeline>:
# ...
clusters:
- label: default | maintenance
# Any more cluster settings to join with the settings from the
# resources mapping for the matching top-level label.
# ...
如果在最上層 resources
對應和 targets
相同 label
對應中定義任何叢集設定,則對應中的 targets
設定優先於最上層 resources
對應中的設定。
範例 1:多個資源對應中定義的新作業叢集設定,且沒有任何設定衝突
在此範例中,spark_version
在最上層resources
對應中會結合 node_type_id
和 num_workers
中的 resources
對應targets
,以定義具名my-cluster
的job_cluster_key
設定(省略的省略內容,以求簡潔):
# ...
resources:
jobs:
my-job:
name: my-job
job_clusters:
- job_cluster_key: my-cluster
new_cluster:
spark_version: 13.3.x-scala2.12
targets:
development:
resources:
jobs:
my-job:
name: my-job
job_clusters:
- job_cluster_key: my-cluster
new_cluster:
node_type_id: Standard_DS3_v2
num_workers: 1
# ...
當您針對此範例執行 databricks bundle validate
時,產生的圖表如下所示(省略的省略內容,以求簡潔):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"job_clusters": [
{
"job_cluster_key": "my-cluster",
"new_cluster": {
"node_type_id": "Standard_DS3_v2",
"num_workers": 1,
"spark_version": "13.3.x-scala2.12"
}
}
],
"...": "..."
}
}
}
}
範例 2:多個資源對應中定義的新作業叢集設定衝突
在此範例中, spark_version
和 num_workers
會同時定義於最上層 resources
對應和 resources
中的對應中 targets
。 在此範例中targets
resources
,spark_version
在 num_workers
對應中,優先於 spark_version
最num_workers
上層resources
對應,以定義具名my-cluster
的job_cluster_key
設定(省略省略的內容,以求簡潔):
# ...
resources:
jobs:
my-job:
name: my-job
job_clusters:
- job_cluster_key: my-cluster
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: Standard_DS3_v2
num_workers: 1
targets:
development:
resources:
jobs:
my-job:
name: my-job
job_clusters:
- job_cluster_key: my-cluster
new_cluster:
spark_version: 12.2.x-scala2.12
num_workers: 2
# ...
當您針對此範例執行 databricks bundle validate
時,產生的圖表如下所示(省略的省略內容,以求簡潔):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"job_clusters": [
{
"job_cluster_key": "my-cluster",
"new_cluster": {
"node_type_id": "Standard_DS3_v2",
"num_workers": 2,
"spark_version": "12.2.x-scala2.12"
}
}
],
"...": "..."
}
}
}
}
範例 3:在多個資源對應中定義的管線叢集設定,且沒有任何設定衝突
在此範例中,node_type_id
在最上層resources
對應中會與 num_workers
中的resources
targets
對應結合,以定義具名default
的label
設定(省略的省略內容,為簡潔起見):
# ...
resources:
pipelines:
my-pipeline:
clusters:
- label: default
node_type_id: Standard_DS3_v2
targets:
development:
resources:
pipelines:
my-pipeline:
clusters:
- label: default
num_workers: 1
# ...
當您針對此範例執行 databricks bundle validate
時,產生的圖表如下所示(省略的省略內容,以求簡潔):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 1
}
],
"...": "..."
}
}
}
}
範例 4:多個資源對應中定義的管線叢集設定衝突
在此範例中, num_workers
定義於最上層 resources
對應和 resources
中的對應中 targets
。 num_workers
在 對應resources
中優先於num_workers
最上層resources
對應,以定義具名default
的label
設定(省略號表示省略的內容,為targets
簡潔起見):
# ...
resources:
pipelines:
my-pipeline:
clusters:
- label: default
node_type_id: Standard_DS3_v2
num_workers: 1
targets:
development:
resources:
pipelines:
my-pipeline:
clusters:
- label: default
num_workers: 2
# ...
當您針對此範例執行 databricks bundle validate
時,產生的圖表如下所示(省略的省略內容,以求簡潔):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 2
}
],
"...": "..."
}
}
}
}