Substituir configurações de cluster em pacotes de ativos Databricks
Este artigo descreve como substituir as configurações para clusters do Azure Databricks em Databricks Asset Bundles. Consulte O que são Databricks Asset Bundles?
Nos arquivos de configuração do pacote do Azure Databricks, você pode unir as configurações de cluster em um mapeamento de nível resources
superior com as configurações de cluster em um targets
mapeamento, da seguinte maneira.
Para trabalhos, use o job_cluster_key
mapeamento dentro de uma definição de trabalho para unir as configurações de cluster em um mapeamento de nível resources
superior com as configurações de cluster em um targets
mapeamento, por exemplo (reticências indicam conteúdo omitido, para brevidade):
# ...
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.
# ...
Se qualquer configuração de cluster for definida no mapeamento de nível resources
superior e no targets
mapeamento para o mesmo job_cluster_key
, a configuração no targets
mapeamento terá precedência sobre a configuração no mapeamento de nível resources
superior.
Para pipelines Delta Live Tables, use o label
mapeamento dentro cluster
de uma definição de pipeline para unir as configurações de cluster em um mapeamento de nível resources
superior com as configurações de cluster em um targets
mapeamento, por exemplo (reticências indicam conteúdo omitido, para brevidade):
# ...
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.
# ...
Se qualquer configuração de cluster for definida no mapeamento de nível resources
superior e no targets
mapeamento para o mesmo label
, a configuração no targets
mapeamento terá precedência sobre a configuração no mapeamento de nível resources
superior.
Exemplo 1: Novas configurações de cluster de trabalho definidas em vários mapeamentos de recursos e sem conflitos de configurações
Neste exemplo, spark_version
no mapeamento de nível resources
superior é combinado com node_type_id
e num_workers
no resources
mapeamento em targets
para definir as configurações para o job_cluster_key
nomeado my-cluster
(reticências indicam conteúdo omitido, para brevidade):
# ...
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
# ...
Quando você executa databricks bundle validate
este exemplo, o gráfico resultante é o seguinte (reticências indicam conteúdo omitido, para brevidade):
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Exemplo 2: Conflitantes novas configurações de cluster de trabalho definidas em vários mapeamentos de recursos
Neste exemplo, spark_version
e são definidos no mapeamento de nível resources
superior e no resources
mapeamento em targets
num_workers
. Neste exemplo, e no mapeamento em targets
ter precedência sobre spark_version
e num_workers
no mapeamento de nível resources
superior, para definir as configurações para o job_cluster_key
nomeado my-cluster
(reticências indicam conteúdo omitido, para brevidade):resources
num_workers
spark_version
# ...
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
# ...
Quando você executa databricks bundle validate
este exemplo, o gráfico resultante é o seguinte (reticências indicam conteúdo omitido, para brevidade):
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Exemplo 3: Configurações de cluster de pipeline definidas em vários mapeamentos de recursos e sem conflitos de configurações
Neste exemplo, node_type_id
no mapeamento de nível resources
superior é combinado com num_workers
no resources
mapeamento em targets
para definir as configurações para o label
nomeado default
(reticências indicam conteúdo omitido, para brevidade):
# ...
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
# ...
Quando você executa databricks bundle validate
este exemplo, o gráfico resultante é o seguinte (reticências indicam conteúdo omitido, para brevidade):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 1
}
],
"...": "..."
}
}
}
}
Exemplo 4: Configurações conflitantes de cluster de pipeline definidas em vários mapeamentos de recursos
Neste exemplo, num_workers
é definido tanto no mapeamento de nível resources
superior quanto no resources
mapeamento em targets
. num_workers
resources
No mapeamento em targets
Ter precedência sobre num_workers
no mapeamento de nível resources
superior, para definir as configurações para o label
nomeado default
(reticências indicam conteúdo omitido, para brevidade):
# ...
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
# ...
Quando você executa databricks bundle validate
este exemplo, o gráfico resultante é o seguinte (reticências indicam conteúdo omitido, para brevidade):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 2
}
],
"...": "..."
}
}
}
}