Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato stránka popisuje, jak přepsat nebo propojit nastavení na nejvyšší úrovni s cílovým nastavením v balících prostředků Databricks. Informace o nastavení sady prostředků najdete v tématu Konfigurace sady prostředků Databricks.
Přepsání nastavení artefaktu
Nastavení artefaktů v mapování nejvyšší úrovně artifacts můžete přepsat mapováním artefaktů targets, například:
# ...
artifacts:
<some-unique-programmatic-identifier-for-this-artifact>:
# Artifact settings.
targets:
<some-unique-programmatic-identifier-for-this-target>:
artifacts:
<the-matching-programmatic-identifier-for-this-artifact>:
# Any more artifact settings to join with the settings from the
# matching top-level artifacts mapping.
Pokud je v mapování nejvyšší úrovně artifacts i targets mapování pro stejný artefakt definováno jakékoli nastavení artefaktu, má nastavení v targets mapování přednost před nastavením v mapování nejvyšší úrovně artifacts .
Příklad 1: Nastavení artefaktů definovaná pouze v mapování artefaktů nejvyšší úrovně
Abychom si ukázali, jak to funguje v praxi, je v následujícím příkladu path definován v mapování nejvyšší úrovně artifacts , které definuje všechna nastavení artefaktu:
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
# ...
Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující:
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_package",
"...": "..."
}
},
"...": "..."
}
Příklad 2: Konfliktní nastavení artefaktů definovaná v několika mapováních artefaktů
V tomto příkladu je path definován jak v mapování nejvyšší úrovně, tak i v mapování artifacts v artifacts. V tomto příkladu má path v mapování artifacts v targets přednost před mapováním nejvyšší úrovně path s artifacts, aby se definovala nastavení artefaktu:
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
targets:
dev:
artifacts:
my-artifact:
path: ./my_other_package
# ...
Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující:
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_other_package",
"...": "..."
}
},
"...": "..."
}
Překrytí nastavení clusteru
Můžete přepsat nebo sloučit nastavení úlohy nebo kanálu clusteru pro cíl.
Pro úlohy použijte job_cluster_key v definici úlohy k identifikaci nastavení clusteru úloh v mapování nejvyšší úrovně resources a spojte je s nastavením clusteru úloh v mapování 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.
# ...
Pokud je jakékoli nastavení clusteru definováno jak v mapování nejvyšší úrovně resources, tak v targets mapování pro stejnou job_cluster_key, má nastavení v mapování targets přednost před nastavením v nejvyšším mapování resources.
V případě deklarativních kanálů Sparku pro Lakeflow použijte label v nastavení clusteru v definici kanálu k identifikaci nastavení clusteru v mapování nejvyšší úrovně resources a k propojení s nastavením clusteru v mapování targets, například:
# ...
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.
# ...
Pokud je jakékoli nastavení clusteru definováno jak v mapování nejvyšší úrovně resources, tak v targets mapování pro stejnou label, má nastavení v mapování targets přednost před nastavením v nejvyšším mapování resources.
Příklad 1: Nová nastavení clusteru úloh definovaná v několika mapováních prostředků a bez konfliktů nastavení
V tomto příkladu se spark_version v mapování nejvyšší úrovně resources kombinuje s node_type_id a num_workers v mapování resources v targets pro definici nastavení pro job_cluster_key pojmenovaný my-cluster:
# ...
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
# ...
Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující:
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Příklad 2: Konfliktní nastavení nového clusteru úloh definovaného v několika mapováních prostředků
V tomto příkladu jsou spark_version a num_workers definovány jak v mapování nejvyšší úrovně resources, tak v mapování resources v targets. V tomto příkladu mají spark_version a num_workers v mapování resources přednost před targets a spark_version v mapování nejvyšší úrovně num_workers, aby definovali nastavení pro resources pojmenovaný 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
# ...
Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující:
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Příklad 3: Nastavení clusteru pipeline definované v mapováních více zdrojů a bez konfliktů nastavení
V tomto příkladu se node_type_id v mapování nejvyšší úrovně resources zkombinuje s num_workers v mapování resources v targets, aby se definovala nastavení pro label s názvem default.
# ...
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
# ...
Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující:
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 1
}
],
"...": "..."
}
}
}
}
Příklad 4: Konfliktní nastavení clusteru datového kanálu definované v mapování prostředků
V tomto příkladu je num_workers definován jak v mapování nejvyšší úrovně, tak i v mapování resources v resources.
num_workers v mapování resources má přednost před mapováním nejvyšší úrovně targets, aby se definovaly nastavení pro num_workers pojmenované resources:label
# ...
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
# ...
Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující:
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 2
}
],
"...": "..."
}
}
}
}
Změna nastavení úkolu
Mapování tasks v definici úlohy můžete použít k propojení nastavení úkolů úlohy v mapování nejvyšší úrovně resources s nastavením úkolů úlohy v targets mapování, například:
# ...
resources:
jobs:
<some-unique-programmatic-identifier-for-this-job>:
# ...
tasks:
- task_key: <some-unique-programmatic-identifier-for-this-task>
# Task settings.
targets:
<some-unique-programmatic-identifier-for-this-target>:
resources:
jobs:
<the-matching-programmatic-identifier-for-this-job>:
# ...
tasks:
- task_key: <the-matching-programmatic-identifier-for-this-key>
# Any more task settings to join with the settings from the
# resources mapping for the matching top-level task_key.
# ...
Pro propojení mapování na nejvyšší úrovni resources a targets pro stejný úkol, musí být task_key v mapování úkolů nastaveno na stejnou hodnotu.
Pokud je v mapování nejvyšší úrovně resources i v mapování targets pro stejný task definováno jakékoli nastavení úlohy, bude mít nastavení v mapování targets přednost před nastavením v mapování nejvyšší úrovně resources.
Příklad 1: Nastavení pracovního úkolu definované v několika mapováních zdrojů a bez konfliktů v nastavení
V tomto příkladu se spark_version v mapování nejvyšší úrovně resources kombinuje s node_type_id a num_workers v mapování resources v targets pro definici nastavení pro task_key pojmenovaný my-task:
# ...
resources:
jobs:
my-job:
name: my-job
tasks:
- task_key: my-key
new_cluster:
spark_version: 13.3.x-scala2.12
targets:
development:
resources:
jobs:
my-job:
name: my-job
tasks:
- task_key: my-task
new_cluster:
node_type_id: Standard_DS3_v2
num_workers: 1
# ...
Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující (tři tečky označují vynechaný obsah pro stručnost):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"tasks": [
{
"new_cluster": {
"node_type_id": "Standard_DS3_v2",
"num_workers": 1,
"spark_version": "13.3.x-scala2.12"
},
"task-key": "my-task"
}
],
"...": "..."
}
}
}
}
Příklad 2: Nastavení konfliktních úkolů definovaných ve vícerém mapování zdrojů
V tomto příkladu jsou spark_version a num_workers definovány jak v mapování nejvyšší úrovně resources, tak v mapování resources v targets.
spark_version a num_workers v mapování resources mají přednost před targets a spark_version v mapování nejvyšší úrovně num_workers. Tím se definuje nastavení pro task_key pojmenovaný my-task (tři tečky označují vynechaný obsah pro stručnost):
# ...
resources:
jobs:
my-job:
name: my-job
tasks:
- task_key: my-task
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
tasks:
- task_key: my-task
new_cluster:
spark_version: 12.2.x-scala2.12
num_workers: 2
# ...
Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující:
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"tasks": [
{
"new_cluster": {
"node_type_id": "Standard_DS3_v2",
"num_workers": 2,
"spark_version": "12.2.x-scala2.12"
},
"task_key": "my-task"
}
],
"...": "..."
}
}
}
}