Compartir a través de


Invalidación con la configuración de destino

En esta página se describe cómo invalidar o unir la configuración de nivel superior con la configuración de destino en Conjuntos de recursos de Databricks. Para obtener información sobre la configuración de agrupación, consulte Configuración de conjunto de recursos de Databricks.

Anulación de la configuración del artefacto

Puede invalidar 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 en la práctica, en el ejemplo siguiente, path se define en la asignación de nivel artifacts superior, 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 el artifacts mapeo de targets tiene prioridad sobre path en el mapeo 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 invalidar o unir la configuración del clúster de trabajo o canalización para un destino.

En el caso de los trabajos, use job_cluster_key dentro de una definición de trabajo para identificar la configuración del clúster de trabajos en la asignación de nivel superior resources para integrarse con las configuraciones del clúster 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.

En el caso de las canalizaciones declarativas de Spark de Lakeflow, use label dentro de la configuración del clúster de una definición de canalización para identificar la configuración del clúster en una asignación de nivel superior resources para unirse a 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 de nivel superior resources se combina con num_workers en la asignación de 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 resources asignación en targets tiene prioridad sobre num_workers en la asignación de nivel resources superior, para definir la configuración para el 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 usar la asignación tasks dentro de una definición de trabajo para unir la configuración de tareas del trabajo en una asignación de resources de nivel superior con la configuración de 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 unir la asignación resources de nivel superior y la asignación targets de la misma tarea, las asignaciones task_key de las tareas deben 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 resources asignación en targets tienen prioridad sobre spark_version y num_workers en la asignación de nivel resources superior. 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"
          }
        ],
        "...": "..."
      }
    }
  }
}