Substituir as configurações de cluster nos Pacotes de Ativos do Databricks
Este artigo descreve como substituir as configurações dos clusters do Azure Databricks nos Pacotes de Ativos do Databricks. Confira O que são Pacotes de Ativos do Databricks?
Nos arquivos de configuração do pacote do Azure Databricks, você pode juntar as configurações do cluster em um mapeamento resources
de nível superior com as configurações do cluster em um mapeamento targets
, como a seguir.
Para trabalhos, use o mapeamento job_cluster_key
em uma definição de trabalho para juntar as configurações do cluster em um mapeamento resources
de nível superior com as configurações do cluster em um mapeamento targets
, por exemplo (as reticências indicam conteúdo omitido, para fins de 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 tanto no mapeamento resources
de nível superior quanto no mapeamento targets
para o mesmo job_cluster_key
, a configuração no mapeamento targets
terá precedência sobre a configuração no mapeamento resources
de nível superior.
Para os pipelines do Delta Live Tables, use o mapeamento label
dentro do cluster
de uma definição de pipeline para juntar as configurações do cluster em um mapeamento resources
de nível superior com as configurações do cluster em um mapeamento targets
, por exemplo (as elipses indicam conteúdo omitido, por 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 tanto no mapeamento resources
de nível superior quanto no mapeamento targets
para o mesmo label
, a configuração no mapeamento targets
terá precedência sobre a configuração no mapeamento resources
de nível 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 superior resources
é combinado com node_type_id
e num_workers
no mapeamento resources
em targets
para definir as configurações para 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
para esse exemplo, o gráfico resultante é o seguinte (as elipses indicam conteúdo omitido, para fins de 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: configurações conflitantes do novo cluster de trabalho definidas em vários mapeamentos de recursos
Neste exemplo, spark_version
e num_workers
são definidos no mapeamento de nível superior resources
e no mapeamento resources
em targets
. Neste exemplo, spark_version
e num_workers
no mapeamento resources
em targets
tem precedência sobre spark_version
e num_workers
no mapeamento de nível superior resources
para definir as configurações parajob_cluster_key
nomeadomy-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
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
para esse exemplo, o gráfico resultante é o seguinte (as elipses indicam conteúdo omitido, para fins de 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 do cluster de pipeline definidas em vários mapeamentos de recursos e sem conflitos de configurações
Neste exemplo, node_type_id
no mapeamento resources
de nível superior é combinado com num_workers
no mapeamento resources
em targets
para definir as configurações para o label
denominado default
(as elipses indicam conteúdo omitido, para fins de 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
para esse exemplo, o gráfico resultante é o seguinte (as elipses indicam conteúdo omitido, para fins de brevidade):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 1
}
],
"...": "..."
}
}
}
}
Exemplo 4: configurações conflitantes do cluster de pipeline definidas em vários mapeamentos de recursos
Neste exemplo, num_workers
é definido no mapeamento de nível superior resources
e no mapeamento resources
em targets
. num_workers
no mapeamento resources
em targets
tem precedência sobre num_workers
no mapeamento resources
de nível superior, para definir as configurações para o label
denominado default
(elipses indicam conteúdo omitido, para fins de 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
para esse exemplo, o gráfico resultante é o seguinte (as elipses indicam conteúdo omitido, para fins de brevidade):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 2
}
],
"...": "..."
}
}
}
}