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 o Job, use o mapeamento job_cluster_key
em uma definição de Job para join as configurações de clustering em um mapeamento resources
de nível superior com as configurações de clustering em um mapeamento targets
, por exemplo (as elipses 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 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 o mapeamento label
dentro do cluster
de uma definição pipeline para join as configurações de clustering em um mapeamento resources
de nível superior com as configurações de clustering em um mapeamento targets
, por exemplo (as elipses indicam conteúdo omitido, para fins de 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 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 do job_cluster_key
chamado my-cluster
(as elipses indicam conteúdo omitido, por motivos de 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: n2-highmem-4
num_workers: 1
# ...
Quando o senhor executa databricks bundle validate
para este 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": "n2-highmem-4",
"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
(elipses indicam conteúdo omitido, por motivos de 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: n2-highmem-4
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 (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": "n2-highmem-4",
"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
(as elipses indicam conteúdo omitido, por motivos de brevidade):
# ...
resources:
pipelines:
my-pipeline:
clusters:
- label: default
node_type_id: n2-highmem-4
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 (as elipses indicam conteúdo omitido, para fins de brevidade):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "n2-highmem-4",
"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
(elipses indicam conteúdo omitido, por motivos de brevidade):
# ...
resources:
pipelines:
my-pipeline:
clusters:
- label: default
node_type_id: n2-highmem-4
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 (as elipses indicam conteúdo omitido, para fins de brevidade):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "n2-highmem-4",
"num_workers": 2
}
],
"...": "..."
}
}
}
}