Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta página se describe cómo invalidar o unir la configuración de nivel superior con la configuración de destino en Agrupaciones de automatización declarativa. Para obtener información sobre la configuración de destino de paquete, consulte destinos.
Anulación de la configuración del artefacto
Puedes anular la configuración del artefacto en una asignación de nivel superior artifacts con la configuración del artefacto en una asignación targets, por ejemplo:
# ...
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.
Si cualquier configuración de artefacto está definida tanto en la asignación en el nivel artifacts superior como en la asignación targets para el mismo artefacto, entonces la configuración en la asignación targets tiene prioridad sobre la configuración en la asignación en el nivel artifacts superior.
Ejemplo 1: Configuración del artefacto definida solo en el mapeo de artefactos de nivel superior
Para demostrar cómo funciona esto en la práctica, en el siguiente ejemplo, path se define en la asignación de nivel superior artifacts, que define toda la configuración del artefacto:
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
# ...
Al ejecutar databricks bundle validate para este ejemplo, el gráfico resultante es:
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_package",
"...": "..."
}
},
"...": "..."
}
Ejemplo 2: Configuración de artefactos en conflicto definida en varias asignaciones de artefactos
En este ejemplo, path se define tanto en la asignación de nivel superior artifacts como en la asignación artifacts en targets. En este ejemplo, path en la asignación artifacts de targets tiene prioridad sobre path en la asignación de nivel superior artifacts, para definir la configuración del artefacto:
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
targets:
dev:
artifacts:
my-artifact:
path: ./my_other_package
# ...
Al ejecutar databricks bundle validate para este ejemplo, el gráfico resultante es:
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_other_package",
"...": "..."
}
},
"...": "..."
}
Anulaciones de configuración del clúster
Puede anular o combinar la configuración del clúster del trabajo o del pipeline para un destino.
En el caso de los trabajos, utilice job_cluster_key dentro de una definición de trabajo para identificar las configuraciones de agrupación de trabajos en la asignación resources de nivel superior para unirlas con las configuraciones de agrupación de trabajos en una asignació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.
# ...
Si alguna configuración de clúster está definida tanto en la asignación de nivel resources superior como en la asignación targets para el mismo job_cluster_key, entonces la configuración en la asignación targets tiene prioridad sobre la configuración en la asignación de nivel resources superior.
Para los pipelines de Lakeflow, utilice label dentro de la configuración del clúster de una definición de pipeline para identificar la configuración del clúster en una asignación de nivel superior resources y combinarla con la configuración del clúster en una asignación targets, por ejemplo:
# ...
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.
# ...
Si alguna configuración de clúster está definida tanto en la asignación de nivel resources superior como en la asignación targets para el mismo label, entonces la configuración en la asignación targets tiene prioridad sobre la configuración en la asignación de nivel resources superior.
Ejemplo 1: Nueva configuración del clúster de trabajos definida en varias asignaciones de recursos y sin conflictos de configuración
En este ejemplo, spark_version en la asignación superior resources se combina con node_type_id y num_workers en la asignación resources de targets para definir la configuración del job_cluster_key denominado como 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
# ...
Al ejecutar databricks bundle validate para este ejemplo, el gráfico resultante es el siguiente:
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Ejemplo 2: Configuraciones conflictivas del nuevo clúster de trabajos definidas en múltiples asignaciones de recursos
En este ejemplo, spark_version y num_workers se definen tanto en el mapeo de nivel superior resources como en el mapeo resources en targets. En este ejemplo, spark_version y num_workers en el mapeo resources en targets tienen prioridad sobre spark_version y num_workers en el mapeo de nivel superior resources, para definir la configuración del job_cluster_key denominado 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
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
# ...
Al ejecutar databricks bundle validate para este ejemplo, el gráfico resultante es el siguiente:
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Ejemplo 3: Configuraciones del clúster de canalización definidas en varias asignaciones de recursos y sin conflictos de configuración
En este ejemplo, node_type_id en la asignación resources de nivel superior se combina con num_workers en la asignación resources en targets para definir la configuración del objeto label denominado 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
# ...
Al ejecutar databricks bundle validate para este ejemplo, el gráfico resultante es el siguiente:
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 1
}
],
"...": "..."
}
}
}
}
Ejemplo 4: Configuración de clúster de canalización en conflicto definida en varias asignaciones de recursos
En este ejemplo, num_workers se define tanto en la asignación de nivel superior resources como en la asignación resources en targets.
num_workers en la asignación resources de targets tiene prioridad sobre num_workers en la asignación de nivel superior resources, para definir la configuración del label denominado default:
# ...
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
# ...
Al ejecutar databricks bundle validate para este ejemplo, el gráfico resultante es el siguiente:
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 2
}
],
"...": "..."
}
}
}
}
Invalidación de la configuración de tareas de trabajo
Puede utilizar la asignación tasks dentro de una definición de trabajo para combinar la configuración de las tareas del trabajo en una asignación de nivel superior resources con la configuración de las tareas del trabajo en una asignación targets, por ejemplo:
# ...
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.
# ...
Para combinar la asignación de nivel superior resources y la asignación targets para la misma tarea, el task_key de las asignaciones de tareas debe establecerse en el mismo valor.
Si se define cualquier configuración de tarea laboral tanto en la asignación de nivel superior resources como en la asignación targets para el mismo task, la configuración de la asignación targets prevalece sobre la configuración de la asignación de nivel superior resources.
Ejemplo 1: Configuración de tareas de trabajo definida en varias asignaciones de recursos y sin conflictos de configuración
En este ejemplo, spark_version en la asignación superior resources se combina con node_type_id y num_workers en la asignación resources de targets para definir la configuración del task_key denominado como 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
# ...
Cuando se ejecuta databricks bundle validate para este ejemplo, el gráfico resultante es el siguiente (los puntos suspensivos indican contenido omitido, por brevedad):
{
"...": "...",
"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"
}
],
"...": "..."
}
}
}
}
Ejemplo 2: Configuración de tareas de trabajo en conflicto definida en varias asignaciones de recursos
En este ejemplo, spark_version y num_workers se definen tanto en el mapeo de nivel superior resources como en el mapeo resources en targets.
spark_version y num_workers en la asignación resources de targets tienen prioridad sobre spark_version y num_workers en la asignación de nivel superior resources. Esto define la configuración de task_key llamado my-task (los puntos suspensivos indican contenido omitido, por brevedad):
# ...
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
# ...
Al ejecutar databricks bundle validate para este ejemplo, el gráfico resultante es el siguiente:
{
"...": "...",
"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"
}
],
"...": "..."
}
}
}
}