Pular para o conteúdo principal

Substituir as configurações de clustering em Databricks ativo Bundles

Este artigo descreve como substituir as configurações de Databricks clustering em Databricks ativo Bundles. Veja o que são Databricks ativo Bundles?

Nos Databricks arquivos join de configuração do pacote, o senhor pode as configurações de clustering em um mapeamento de nível superior resources com as configurações de clustering em um targets mapeamento, da seguinte forma.

Para Job, use job_cluster_key em uma definição de Job para identificar as configurações de clustering de Job no mapeamento resources de nível superior para join com as configurações de clustering de Job em um mapeamento targets:

YAML
# ...
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 agrupamento for definida no mapeamento resources de nível superior e 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 o pipeline DLT, use label nas configurações de clustering de uma definição pipeline para identificar as configurações de clustering em um mapeamento resources de nível superior para join com as configurações de clustering em um mapeamento targets, por exemplo:

YAML
# ...
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 agrupamento for definida no mapeamento resources de nível superior e 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 Job clustering definidas em vários mapeamentos de recurso e sem conflitos de configurações

Neste exemplo, spark_version no mapeamento resources de nível superior é combinado com node_type_id e num_workers no mapeamento resources em targets para definir as configurações para o job_cluster_key chamado my-cluster:

YAML
# ...
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: i3.xlarge
num_workers: 1
# ...

Quando o senhor executa databricks bundle validate para este exemplo, o gráfico resultante é o seguinte:

JSON
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"job_clusters": [
{
"job_cluster_key": "my-cluster",
"new_cluster": {
"node_type_id": "i3.xlarge",
"num_workers": 1,
"spark_version": "13.3.x-scala2.12"
}
}
],
"...": "..."
}
}
}
}

Exemplo 2: Configurações conflitantes de clustering de novos trabalhos definidas em vários mapeamentos de recurso

Neste exemplo, spark_version e num_workers são definidos no mapeamento resources de nível superior e no mapeamento resources em targets. Neste exemplo, spark_version e num_workers no mapeamento resources em targets têm precedência sobre spark_version e num_workers no mapeamento resources de nível superior, para definir as configurações para o job_cluster_key chamado my-cluster:

YAML
# ...
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: i3.xlarge
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 o senhor executa databricks bundle validate para este exemplo, o gráfico resultante é o seguinte:

JSON
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"job_clusters": [
{
"job_cluster_key": "my-cluster",
"new_cluster": {
"node_type_id": "i3.xlarge",
"num_workers": 2,
"spark_version": "12.2.x-scala2.12"
}
}
],
"...": "..."
}
}
}
}

Exemplo 3: configurações de clustering de pipeline definidas em vários mapeamentos de recurso 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 chamado default:

YAML
# ...
resources:
pipelines:
my-pipeline:
clusters:
- label: default
node_type_id: i3.xlarge

targets:
development:
resources:
pipelines:
my-pipeline:
clusters:
- label: default
num_workers: 1
# ...

Quando o senhor executa databricks bundle validate para este exemplo, o gráfico resultante é o seguinte:

JSON
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "i3.xlarge",
"num_workers": 1
}
],
"...": "..."
}
}
}
}

Exemplo 4: Configurações conflitantes de pipeline clustering definidas em vários mapeamentos de recurso

Neste exemplo, num_workers é definido no mapeamento resources de nível superior 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 chamado default:

YAML
# ...
resources:
pipelines:
my-pipeline:
clusters:
- label: default
node_type_id: i3.xlarge
num_workers: 1

targets:
development:
resources:
pipelines:
my-pipeline:
clusters:
- label: default
num_workers: 2
# ...

Quando o senhor executa databricks bundle validate para este exemplo, o gráfico resultante é o seguinte:

JSON
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "i3.xlarge",
"num_workers": 2
}
],
"...": "..."
}
}
}
}