Comparteix via


Adición de tareas a trabajos en conjuntos de recursos de Databricks

En esta página se proporciona información sobre cómo definir tareas de trabajo en Conjuntos de recursos de Databricks. Para obtener información sobre las tareas de trabajo, consulte Configuración y edición de tareas en trabajos de Lakeflow.

Importante

No se recomienda configurar el campo de trabajo git_source en source y el campo de tarea GIT para los paquetes, ya que es posible que las rutas de acceso relativas locales no apunten al mismo contenido en el repositorio de Git. Las agrupaciones esperan que un trabajo implementado tenga los mismos archivos que la copia local desde donde se implementó.

En su lugar, clone el repositorio localmente y configure el proyecto de agrupación dentro de este repositorio, de modo que el origen de las tareas sea el área de trabajo.

Configurar tareas

Defina tareas para un trabajo en un paquete en la clave tasks para la definición del trabajo. Algunos ejemplos de configuración de tareas para los tipos de tareas disponibles se encuentra en la sección Configuración de tareas. Para obtener información sobre cómo definir un trabajo en una agrupación, consulte trabajo.

Sugerencia

Para generar rápidamente la configuración de recursos para un trabajo existente mediante el Databricks CLI, puede usar el comando bundle generate job. Vea comandos de agrupación.

Para establecer valores de tarea, la mayoría de los tipos de tareas de trabajo tienen parámetros específicos de la tarea, pero también puede definir parámetros de trabajo que se pasan a las tareas. Las referencias de valor dinámico se admiten para los parámetros de trabajo, que permiten pasar valores específicos del trabajo que se ejecutan entre tareas. Para obtener información completa sobre cómo pasar valores de tarea por tipo de tarea, vea Detalles por tipo de tarea.

También puede invalidar la configuración general de tareas de trabajo con la configuración de un área de trabajo de destino. Consulte Invalidación con la configuración de destino.

La siguiente configuración de ejemplo define un trabajo con dos tareas de cuaderno y pasa un valor de tarea de la primera tarea a la segunda tarea.

resources:
  jobs:
    pass_task_values_job:
      name: pass_task_values_job
      tasks:
        # Output task
        - task_key: output_value
          notebook_task:
            notebook_path: ../src/output_notebook.ipynb

        # Input task
        - task_key: input_value
          depends_on:
            - task_key: output_value
          notebook_task:
            notebook_path: ../src/input_notebook.ipynb
            base_parameters:
              received_message: '{{tasks.output_value.values.message}}'

output_notebook.ipynb contiene el código siguiente, que establece un valor de tarea para la message clave:

# Databricks notebook source
# This first task sets a simple output value.

message = "Hello from the first task"

# Set the message to be used by other tasks
dbutils.jobs.taskValues.set(key="message", value=message)

print(f"Produced message: {message}")

input_notebook.ipynb recupera el valor del parámetro received_message, que se estableció en la configuración de la tarea:

# This notebook receives the message as a parameter.

dbutils.widgets.text("received_message", "")
received_message = dbutils.widgets.get("received_message")

print(f"Received message: {received_message}")

Configuración de tareas

Esta sección contiene opciones de configuración y ejemplos para cada tipo de tarea de trabajo.

Tarea del cuaderno de sala limpia

La tarea de bloc de notas de sala limpia ejecuta un bloc de notas de sala limpia cuando el campo clean_rooms_notebook_task está presente. Para obtener información sobre las salas limpias, consulte ¿Qué es Azure Databricks Clean Rooms?.

Las siguientes claves están disponibles para una tarea de bloc de notas de salas limpias. Para obtener la definición de objeto de la API REST correspondiente, consulte clean_rooms_notebook_task.

Key Tipo Description
clean_room_name String Obligatorio. Sala limpia a la que pertenece el bloc de notas.
etag String Suma de comprobación para validar la vigencia del recurso del cuaderno. Se puede obtener mediante la realización de la operación de obtención de recursos de sala limpia.
object Mapa Parámetros base que se usarán para el trabajo del cuaderno de sala limpia.
notebook_name String Obligatorio. Nombre del cuaderno que se está ejecutando.

Condición de tarea

condition_task permite agregar una tarea con lógica condicional if/else al trabajo. La tarea evalúa una condición que se puede usar para controlar la ejecución de otras tareas. La tarea de condición no requiere que un clúster se ejecute y no admita reintentos ni notificaciones. Para obtener más información sobre la tarea de condición if/else, vea Agregar lógica de bifurcación a un trabajo con la tarea If/else.

Las siguientes teclas están disponibles para una tarea condicional. Para obtener la definición de objeto de la API REST correspondiente, consulte condition_task.

Key Tipo Description
left String Obligatorio. Operando izquierdo de la condición. Puede ser un valor de cadena o un estado de trabajo o una referencia de valor dinámico como {{job.repair_count}} o {{tasks.task_key.values.output}}.
op String Obligatorio. Operador que se va a usar para la comparación. Los valores válidos son: EQUAL_TO, NOT_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, LESS_THANLESS_THAN_OR_EQUAL.
right String Obligatorio. Operando derecho de la condición. Puede ser un valor de cadena o un estado de trabajo o una referencia de valor dinámico.

Examples

El ejemplo siguiente contiene una tarea de condición y una tarea de cuaderno, donde la tarea del cuaderno solo se ejecuta si el número de reparaciones de trabajos es inferior a 5.

resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: condition_task
          condition_task:
            op: LESS_THAN
            left: '{{job.repair_count}}'
            right: '5'
        - task_key: notebook_task
          depends_on:
            - task_key: condition_task
              outcome: 'true'
          notebook_task:
            notebook_path: ../src/notebook.ipynb

Tarea del panel de control

Esta tarea se usa para actualizar un panel y enviar una instantánea a los suscriptores. Para obtener más información sobre los paneles de control en paquetes, consulte panel de control.

Las siguientes claves están disponibles para una tarea de panel. Para obtener la definición de objeto de la API REST correspondiente, consulte dashboard_task.

Key Tipo Description
dashboard_id String Obligatorio. Identificador del panel que se va a actualizar. El panel ya debe existir.
subscription Mapa Configuración de la suscripción para enviar la instantánea del panel. Cada objeto de suscripción puede especificar la configuración de destino para dónde enviar instantáneas una vez completada la actualización del panel. Consulte suscripción.
warehouse_id String Identificador de almacenamiento con el que se va a ejecutar el panel para la programación. Si no se especifica, se usará el almacenamiento predeterminado del panel.

Examples

En el ejemplo siguiente se agrega una tarea del panel de control a un trabajo. Cuando se ejecuta el trabajo, se actualiza el panel con el identificador especificado.

resources:
  jobs:
    my-dashboard-job:
      name: my-dashboard-job
      tasks:
        - task_key: my-dashboard-task
          dashboard_task:
            dashboard_id: 11111111-1111-1111-1111-111111111111

tarea dbt

Esta tarea se usa para ejecutar uno o varios comandos dbt. Para más información sobre dbt, consulte Conexión a dbt Cloud.

Las claves siguientes están disponibles para una tarea dbt. Para obtener la definición de objeto de LA API REST correspondiente, consulte dbt_task.

Key Tipo Description
catalog String Nombre del catálogo que se va a usar. El valor del catálogo solo se puede especificar si se especifica un warehouse_id. Este campo requiere dbt-databricks >= 1.1.1.
commands Sequence Obligatorio. Lista de comandos dbt que se van a ejecutar en secuencia. Cada comando debe ser un comando dbt completo (por ejemplo, dbt deps, dbt seed, dbt run, dbt test). Se puede proporcionar un máximo de hasta 10 comandos.
profiles_directory String Ruta de acceso al directorio que contiene el archivo dbt profiles.yml. Solo se puede indicar si no se especifica ningún warehouse_id. Si no se especifica warehouse_id y esta carpeta no está establecida, se usa el directorio raíz.
project_directory String Ruta de acceso al directorio que contiene el proyecto dbt. Si no se especifica, se establecerá por defecto a la raíz del repositorio o del directorio de área de trabajo. En el caso de los proyectos almacenados en el área de trabajo de Databricks, la ruta de acceso debe ser absoluta y comenzar con una barra diagonal. En el caso de los proyectos de un repositorio remoto, la ruta de acceso debe ser relativa.
schema String Esquema en el que se va a escribir. Este parámetro solo se usa cuando también se proporciona un warehouse_id. Si no se proporciona, se usa el esquema predeterminado.
source String Tipo de ubicación del proyecto dbt. Los valores válidos son WORKSPACE y GIT. Cuando se establece en WORKSPACE, el proyecto se recuperará del área de trabajo de Databricks. Cuando se establece GIT en, el proyecto se recuperará de un repositorio de Git definido en git_source. Si está vacía, la tarea usa GIT si git_source está definido y WORKSPACE en caso contrario.
warehouse_id String El identificador del SQL Warehouse para usar al ejecutar comandos dbt. Si no se especifica, se usará el almacén predeterminado.

Examples

En el ejemplo siguiente se agrega una tarea dbt a un trabajo. Esta tarea dbt usa el almacenamiento SQL especificado para ejecutar los comandos dbt especificados.

Para obtener el identificador de un almacén de SQL, abra la página de configuración de SQL Warehouse y, a continuación, copie el identificador que se encuentra entre paréntesis después del nombre del almacén en el campo Nombre de la pestaña Información general .

Sugerencia

Databricks Asset Bundles también incluye una plantilla de proyecto dbt-sql que define un trabajo con una tarea dbt, así como perfiles de dbt para trabajos dbt implementados. Para obtener información sobre las plantillas de conjuntos de activos de Databricks, consulte Plantillas de agrupación predeterminadas.

resources:
  jobs:
    my-dbt-job:
      name: my-dbt-job
      tasks:
        - task_key: my-dbt-task
          dbt_task:
            commands:
              - 'dbt deps'
              - 'dbt seed'
              - 'dbt run'
            project_directory: /Users/someone@example.com/Testing
            warehouse_id: 1a111111a1111aa1
          libraries:
            - pypi:
                package: 'dbt-databricks>=1.0.0,<2.0.0'

Para cada tarea

for_each_task permite agregar una tarea con un bucle for each al trabajo. La tarea ejecuta una tarea anidada para cada entrada proporcionada. Para obtener más información sobre for_each_task, vea Usar una For each tarea para ejecutar otra tarea en un bucle.

Las siguientes teclas están disponibles para un for_each_task. Para obtener la definición de objeto de la API REST correspondiente, consulte for_each_task.

Key Tipo Description
concurrency Integer Número máximo de iteraciones de tareas que se pueden ejecutar simultáneamente. Si no se especifica, todas las iteraciones se pueden ejecutar en paralelo en función de los límites del clúster y del área de trabajo.
inputs String Obligatorio. Los datos de entrada del bucle. Puede ser una cadena JSON o una referencia a un parámetro de matriz. Cada elemento de la matriz se pasará a una iteración de la tarea anidada.
task Mapa Obligatorio. Definición de tarea anidada que se va a ejecutar para cada entrada. Este objeto contiene la especificación de tarea completa, incluido task_key y el tipo de tarea (por ejemplo, notebook_task, python_wheel_task, etc.).

Examples

En el ejemplo siguiente se agrega un for_each_task a un trabajo, donde hace un bucle sobre los valores de otra tarea y los procesa.

resources:
  jobs:
    my_job:
      name: my_job
      tasks:
        - task_key: generate_countries_list
          notebook_task:
            notebook_path: ../src/generate_countries_list.ipnyb
        - task_key: process_countries
          depends_on:
            - task_key: generate_countries_list
          for_each_task:
            inputs: '{{tasks.generate_countries_list.values.countries}}'
            task:
              task_key: process_countries_iteration
              notebook_task:
                notebook_path: ../src/process_countries_notebook.ipnyb

Tarea JAR

Esta tarea se usa para ejecutar un archivo JAR. Puede hacer referencia a bibliotecas JAR locales o a las de un área de trabajo, un volumen de catálogo de Unity o una ubicación de almacenamiento en la nube externa. Consulte archivo JAR (Java o Scala).

Para más información sobre cómo compilar e implementar archivos JAR de Scala en un clúster habilitado para el catálogo de Unity en modo de acceso estándar, consulte Tutorial: Ejecución de código Scala en proceso sin servidor.

Las siguientes claves están disponibles para una tarea JAR. Para obtener la definición de objeto de la API REST correspondiente, consulte jar_task.

Key Tipo Description
jar_uri String Deprecated. Identificador URI del ARCHIVO JAR que se va a ejecutar. DBFS y rutas de acceso de almacenamiento en la nube son compatibles. Este campo está en desuso y no debe usarse. En su lugar, use el libraries campo para especificar dependencias JAR.
main_class_name String Obligatorio. Nombre completo de la clase que incluye el método principal que se va a ejecutar. Esta clase debe estar contenida en un archivo JAR que se proporciona como una biblioteca. El código debe usar SparkContext.getOrCreate para obtener un contexto de Spark; de lo contrario, se producirá un error en las ejecuciones del trabajo.
parameters Sequence Parámetros pasados al método principal. Use variables de parámetros de tarea para establecer parámetros que contengan información sobre las ejecuciones de trabajos.

Examples

En el ejemplo siguiente se agrega una tarea JAR a un trabajo. La ruta de acceso del archivo JAR es hacia una ubicación de almacenamiento.

resources:
  jobs:
    my-jar-job:
      name: my-jar-job
      tasks:
        - task_key: my-jar-task
          spark_jar_task:
            main_class_name: org.example.com.Main
          libraries:
            - jar: /Volumes/main/default/my-volume/my-project-0.1.0-SNAPSHOT.jar

Tarea de cuaderno

Esta tarea se usa para ejecutar un cuaderno. Consulte Tarea de cuaderno para trabajos.

Las siguientes claves están disponibles para una tarea de cuaderno. Para obtener la definición de objeto de LA API REST correspondiente, consulte notebook_task.

Key Tipo Description
base_parameters Mapa Parámetros base que se usarán para cada ejecución de este trabajo.
  • Si la ejecución se inicia mediante una llamada a trabajos o run-now con parámetros especificados, se combinan los dos mapas de parámetros.
  • Si se especifica la misma clave en base_parameters y en run-now, se usa el valor de run-now . Use variables de parámetros de tarea para establecer parámetros que contengan información sobre las ejecuciones de trabajos.
  • Si el cuaderno toma un parámetro que no se especifica en los parámetros del trabajo base_parameters ni en los parámetros de anulación run-now, se utiliza el valor predeterminado del cuaderno. Recupere estos parámetros en un cuaderno mediante dbutils.widgets.get.
notebook_path String Obligatorio. Ruta de acceso del cuaderno en el área de trabajo de Databricks o repositorio remoto, por ejemplo /Users/user.name@databricks.com/notebook_to_run. En el caso de los cuadernos almacenados en el área de trabajo de Databricks, la ruta de acceso debe ser absoluta y comenzar con una barra diagonal. En el caso de los cuadernos almacenados en un repositorio remoto, la ruta de acceso debe ser relativa.
source String Tipo de ubicación del cuaderno. Los valores válidos son WORKSPACE y GIT. Cuando se establece en WORKSPACE, el cuaderno se recuperará del área de trabajo local de Databricks. Cuando se establece en GIT, el bloc de notas se recuperará de un repositorio de Git que se define en git_source. Si el valor está vacío, la tarea usará GIT si git_source se define y WORKSPACE de lo contrario.
warehouse_id String Identificador del almacén en el que se va a ejecutar el cuaderno. No se admiten almacenes de SQL clásicos. En su lugar, use almacenes SQL sin servidor o pro. Tenga en cuenta que los almacenes de SQL solo admiten celdas SQL. Si el cuaderno contiene celdas que no son de SQL, se producirá un error en la ejecución, por lo que si necesita usar Python (u otro) en una celda, use sin servidor.

Examples

En el ejemplo siguiente se agrega una tarea de cuaderno a un trabajo y se establece un parámetro de trabajo denominado my_job_run_id. La ruta de acceso del cuaderno que se va a implementar es relativa al archivo de configuración en el que se declara esta tarea. La tarea obtiene el cuaderno de su ubicación implementada en el área de trabajo de Azure Databricks.

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-task
          notebook_task:
            notebook_path: ./my-notebook.ipynb
      parameters:
        - name: my_job_run_id
          default: '{{job.run_id}}'

Tarea de canalización

Usas esta tarea para ejecutar una canalización. Vea las canalizaciones declarativas de Lakeflow Spark.

Las siguientes claves están disponibles para una tarea de canalización. Para obtener la definición de objeto de la API REST correspondiente, consulte pipeline_task.

Key Tipo Description
full_refresh Boolean Si es verdadero, se desencadenará una actualización completa del flujo de trabajo, que recalculará por completo todos los conjuntos de datos del flujo de trabajo. Si es falso o está omitido, solo se procesarán los datos incrementales. Para más información, consulte Semántica de actualización de tubería.
pipeline_id String Obligatorio. Identificador de la canalización que se va a ejecutar. La canalización ya debe existir.

Examples

En el ejemplo siguiente se agrega una tarea de canalización a un trabajo. Esta tarea ejecuta la canalización especificada.

Sugerencia

Para obtener el ID de una canalización, abra la canalización en el área de trabajo y copie el valor ID de canalización en la pestaña Detalles de canalización de la página de configuración de la canalización.

resources:
  jobs:
    my-pipeline-job:
      name: my-pipeline-job
      tasks:
        - task_key: my-pipeline-task
          pipeline_task:
            pipeline_id: 11111111-1111-1111-1111-111111111111

Tarea de Power BI

Importante

El tipo de tarea de Power BI está en versión preliminar pública.

Use esta tarea para desencadenar una actualización de un modelo semántico de Power BI (anteriormente conocido como conjunto de datos).

Las siguientes claves están disponibles para una tarea de Power BI. Para obtener la definición de objeto de la API REST correspondiente, consulte power_bi_task.

Key Tipo Description
connection_resource_name String Obligatorio. Nombre de la conexión del catálogo de Unity para autenticarse desde Databricks a Power BI.
power_bi_model String Obligatorio. Nombre del modelo semántico de Power BI (conjunto de datos) que se va a actualizar.
refresh_after_update Boolean Indica si se debe actualizar el modelo semántico de Power BI una vez completada la actualización. El valor predeterminado es False.
tables Sequence Lista de tablas (cada una como mapa) que se exportarán a Power BI. Consulte tablas.
warehouse_id String El identificador del almacén SQL que se va a usar como origen de datos de Power BI.

Examples

En el ejemplo siguiente se define una tarea de Power BI, que especifica una conexión, el modelo de Power BI que se va a actualizar y la tabla de Databricks que se va a exportar.

resources:
  jobs:
    my_job:
      name: my_job
      tasks:
        - task_key: power_bi_task
          power_bi_task:
            connection_resource_name: 'connection_name'
            power_bi_model:
              workspace_name: 'workspace_name'
              model_name: 'model_name'
              storage_mode: 'DIRECT_QUERY'
              authentication_method: 'OAUTH'
              overwrite_existing: false
            refresh_after_update: false
            tables:
              - catalog: 'main'
                schema: 'tpch'
                name: 'customers'
                storage_mode: 'DIRECT_QUERY'
            warehouse_id: '1a111111a1111aa1'

Tarea de script de Python

Esta tarea se usa para ejecutar un archivo de Python.

Las siguientes claves están disponibles para una tarea de script de Python. Para obtener la definición de objeto de la API REST correspondiente, consulte python_task.

Key Tipo Description
parameters Sequence Parámetros que se van a pasar al archivo de Python. Use variables de parámetros de tarea para establecer parámetros que contengan información sobre las ejecuciones de trabajos.
python_file String Obligatorio. El URI del archivo de Python que se va a ejecutar, por ejemplo, /Users/someone@example.com/my-script.py. Para los archivos de Python almacenados en el área de trabajo de Databricks, la ruta de acceso debe ser absoluta y comenzar con /. Para los archivos almacenados en un repositorio remoto, la ruta de acceso debe ser relativa. Este campo no admite referencias de valor dinámico como variables.
source String Tipo de ubicación del archivo de Python. Los valores válidos son WORKSPACE y GIT. Cuando se establece en WORKSPACE, el archivo se recuperará del área de trabajo local de Databricks. Cuando se establece en GIT, el archivo se recuperará de un repositorio de Git definido en git_source. Si el valor está vacío, la tarea usará GIT si git_source se define y WORKSPACE de lo contrario.

Examples

En el ejemplo siguiente se agrega una tarea de script de Python a un trabajo. La ruta de acceso del archivo de Python que se va a implementar es relativa al archivo de configuración en el que se declara esta tarea. La tarea obtiene el archivo de Python de su ubicación implementada en el área de trabajo de Azure Databricks.

resources:
  jobs:
    my-python-script-job:
      name: my-python-script-job

      tasks:
        - task_key: my-python-script-task
          spark_python_task:
            python_file: ./my-script.py

Tarea de paquete wheel de Python

Esta tarea se usa para ejecutar una rueda de Python. Consulte Cree un archivo wheel de Python usando conjuntos de recursos de Databricks.

Las siguientes claves están disponibles para una tarea de rueda de Python. Para obtener la definición de objeto de LA API REST correspondiente, consulte python_wheel_task.

Key Tipo Description
entry_point String Obligatorio. Punto de entrada con nombre para ejecutar: una función o una clase. Si no existe en los metadatos del paquete, ejecuta la función desde el paquete directamente mediante $packageName.$entryPoint().
named_parameters Mapa Los parámetros con nombre que se van a pasar a la tarea rueda de Python, también conocidos como argumentos de palabra clave. Un parámetro con nombre es un par clave-valor con una clave de cadena y un valor de cadena. Ni parameters ni named_parameters pueden especificarse. Si named_parameters se especifica , parameters se pasan como argumentos de palabra clave a la función de punto de entrada.
package_name String Obligatorio. Nombre del paquete de Python que se va a ejecutar. Todas las dependencias deben instalarse en el entorno. Esto no comprueba ni instala ninguna dependencia de paquete.
parameters Sequence Parámetros que se pasan al paquete wheel de Python, también conocidos como argumentos posicionales. Cada parámetro es una cadena. Si se especifica, named_parameters no se debe especificar.

Examples

En el ejemplo siguiente se agrega una tarea de paquete wheel de Python a un trabajo. La ruta de acceso del archivo de paquete wheel de Python que se va a implementar es relativa al archivo de configuración en el que se declara esta tarea. Consulte Dependencias de la biblioteca de conjuntos de recursos de Databricks.

resources:
  jobs:
    my-python-wheel-job:
      name: my-python-wheel-job
      tasks:
        - task_key: my-python-wheel-task
          python_wheel_task:
            entry_point: run
            package_name: my_package
          libraries:
            - whl: ./my_package/dist/my_package-*.whl

Ejecutar tarea de trabajo

Esta tarea se usa para ejecutar otro trabajo.

Las siguientes claves están disponibles para una tarea de ejecución. Para obtener la definición de objeto de LA API REST correspondiente, consulte run_job_task.

Key Tipo Description
job_id Integer Obligatorio. Identificador del trabajo que se va a ejecutar. El trabajo ya debe existir en el entorno de trabajo.
job_parameters Mapa Parámetros de nivel de trabajo que se van a pasar al trabajo que se está ejecutando. Estos parámetros son accesibles dentro de las tareas del trabajo.
pipeline_params Mapa Parámetros de la tarea de canalización. Solo se usa si el trabajo que se ejecuta contiene una tarea de canalización. Puede incluir full_refresh para desencadenar una actualización completa de la canalización.

Examples

El ejemplo siguiente contiene una tarea de trabajo de ejecución en el segundo trabajo que ejecuta el primer trabajo.

En este ejemplo, se utiliza una sustitución para recuperar el identificador del trabajo que se va a ejecutar. Para obtener el identificador de un trabajo de la interfaz de usuario, abra el trabajo en el área de trabajo y copie el ID del valor ID de trabajo en la pestaña Detalles del trabajo de la página de configuración del trabajo.

resources:
  jobs:
    my-first-job:
      name: my-first-job
      tasks:
        - task_key: my-first-job-task
          new_cluster:
            spark_version: '13.3.x-scala2.12'
            node_type_id: 'i3.xlarge'
            num_workers: 2
          notebook_task:
            notebook_path: ./src/test.py
    my_second_job:
      name: my-second-job
      tasks:
        - task_key: my-second-job-task
          run_job_task:
            job_id: ${resources.jobs.my-first-job.id}

Tarea SQL

Esta tarea se usa para ejecutar un archivo SQL, una consulta o una alerta.

Las claves siguientes están disponibles para una tarea SQL. Para obtener la definición de objeto de la API REST correspondiente, consulte sql_task.

Key Tipo Description
alert Mapa Configuración para ejecutar una alerta de SQL. Contiene:
  • alert_id (String): obligatorio. Identificador canónico de la alerta SQL que se va a ejecutar.
  • pause_subscriptions (Boolean): indica si se pausan las suscripciones de alerta.
  • subscriptions (Secuencia): lista de configuraciones de suscripción.
dashboard Mapa Configuración para actualizar un panel de SQL. Contiene:
  • dashboard_id (String): obligatorio. Identificador canónico del panel de SQL que se va a actualizar.
  • custom_subject (Cadena): asunto personalizado para el correo electrónico enviado a los suscriptores del panel.
  • pause_subscriptions (Boolean): indica si se deben pausar las suscripciones del panel.
  • subscriptions (Secuencia): lista de configuraciones de suscripción.
file Mapa Configuración para ejecutar un archivo SQL. Contiene:
  • path (String): obligatorio. Ruta de acceso del archivo SQL en el área de trabajo o repositorio remoto. Para los archivos almacenados en el área de trabajo de Databricks, la ruta de acceso debe ser absoluta y comenzar con una barra diagonal. Para los archivos almacenados en un repositorio remoto, la ruta de acceso debe ser relativa.
  • source (String): tipo de ubicación del archivo SQL. Los valores válidos son WORKSPACE y GIT.
parameters Mapa Parámetros que se usarán para cada ejecución de esta tarea. Las consultas y archivos SQL pueden usar estos parámetros haciendo referencia a ellos con la sintaxis {{parameter_key}}. Use variables de parámetros de tarea para establecer parámetros que contengan información sobre las ejecuciones de trabajos.
query Mapa Configuración para ejecutar una consulta SQL. Contiene:
  • query_id (String): obligatorio. Identificador canónico de la consulta SQL que se va a ejecutar.
warehouse_id String Obligatorio. Identificador del almacén de SQL que se va a usar para ejecutar la tarea SQL. El almacenamiento de SQL ya debe existir.

Examples

Sugerencia

Para obtener el identificador de un almacén de SQL, abra la página de configuración de SQL Warehouse y, a continuación, copie el identificador que se encuentra entre paréntesis después del nombre del almacén en el campo Nombre de la pestaña Información general .

En el ejemplo siguiente se agrega una tarea de archivo SQL a un trabajo. Esta tarea de archivo SQL usa el almacenamiento SQL especificado para ejecutar el archivo SQL especificado.

resources:
  jobs:
    my-sql-file-job:
      name: my-sql-file-job
      tasks:
        - task_key: my-sql-file-task
          sql_task:
            file:
              path: /Users/someone@example.com/hello-world.sql
              source: WORKSPACE
            warehouse_id: 1a111111a1111aa1

En el ejemplo siguiente se agrega una tarea de alerta de SQL a un trabajo. Esta tarea de alerta de SQL usa el almacén de SQL especificado para actualizar la alerta SQL especificada.

resources:
  jobs:
    my-sql-file-job:
      name: my-sql-alert-job
      tasks:
        - task_key: my-sql-alert-task
          sql_task:
            warehouse_id: 1a111111a1111aa1
            alert:
              alert_id: 11111111-1111-1111-1111-111111111111

En el ejemplo siguiente se agrega una tarea de consulta SQL a un trabajo. Esta tarea de consulta SQL usa el almacenamiento SQL especificado para ejecutar la consulta SQL especificada.

resources:
  jobs:
    my-sql-query-job:
      name: my-sql-query-job
      tasks:
        - task_key: my-sql-query-task
          sql_task:
            warehouse_id: 1a111111a1111aa1
            query:
              query_id: 11111111-1111-1111-1111-111111111111

Otras opciones de configuración de tareas

La siguiente configuración de tareas le permite configurar comportamientos para todas las tareas. Para obtener las definiciones de objetos de la API REST correspondientes, consulte tareas.

Key Tipo Description
depends_on Sequence Lista opcional de dependencias de tareas. Cada elemento contiene:
  • task_key (String): obligatorio. La clave de la tarea en la que depende esta tarea.
  • outcome (String): solo se puede especificar para condition_task. Si se especifica, la tarea dependiente solo se ejecutará si la condición se evalúa como el resultado especificado (ya sea true o false).
description String Descripción opcional de la tarea.
disable_auto_optimization Boolean Si se deshabilita la optimización automática para esta tarea. Si es true, se deshabilitarán las optimizaciones automáticas como la ejecución de consultas adaptables.
email_notifications Mapa Un conjunto opcional de direcciones de correo electrónico para notificar cuándo comienza una ejecución, se completa o se produce un error. Cada elemento contiene:
  • on_start (Secuencia): lista de direcciones de correo electrónico a las que se les notificará cuando comience una ejecución.
  • on_success (Secuencia): Lista de direcciones de correo electrónico que recibirán notificaciones cuando una ejecución se complete correctamente.
  • on_failure (Secuencia): lista de direcciones de correo electrónico que se deben notificar cuando se produce un error en una ejecución.
  • on_duration_warning_threshold_exceeded (Secuencia): Lista de direcciones de correo electrónico para notificar cuando la duración de la ejecución supera el umbral.
  • on_streaming_backlog_suceeded (Secuencia): lista de direcciones de correo electrónico a las que se debe notificar cuando se superan los umbrales de cola de espera de streaming para cualquier flujo.
environment_key String La clave de un entorno, definida en la configuración environments del trabajo. Se usa para especificar la configuración específica del entorno. Este campo es necesario para las tareas de script de Python, rueda de Python y dbt al usar el proceso sin servidor.
existing_cluster_id String Identificador de un clúster existente que se usará para todas las ejecuciones de esta tarea.
health Mapa Especificación opcional para el monitoreo de salud de esta tarea que incluye una clave de salud rules, que es una lista de reglas de salud que se van a evaluar.
job_cluster_key String Clave de un clúster de trabajos definido en la configuración del trabajo job_clusters.
libraries Sequence Lista opcional de bibliotecas que se van a instalar en el clúster que ejecutará la tarea. Cada biblioteca se especifica como un mapa con claves como jar, egg, whl, pypi, maven, cran o requirements.
max_retries Integer Número máximo opcional de veces para reintentar la tarea si se produce un error. Si no se especifica, la tarea no se volverá a intentar.
min_retry_interval_millis Integer Intervalo mínimo opcional en milisegundos entre el inicio de la ejecución con errores y la posterior ejecución de reintento. Si no se especifica, el valor predeterminado es 0 (reintento inmediato).
new_cluster Mapa Especificación de un nuevo clúster que se va a crear para cada ejecución de esta tarea. Consulte el clúster.
notification_settings Mapa Configuración de notificación opcional para esta tarea. Cada elemento contiene:
  • no_alert_for_skipped_runs (Boolean): si es verdadero, no envíe notificaciones para ejecuciones omitidas.
  • no_alert_for_canceled_runs (Boolean): si es true, no envíe notificaciones para ejecuciones canceladas.
  • alert_on_last_attempt (Boolean): si es true, envíe notificaciones solo en el último reintento.
retry_on_timeout Boolean Directiva opcional para especificar si se reintenta la tarea cuando se agota el tiempo de espera. Si no se especifica, el valor predeterminado es false.
run_if String Valor opcional que indica la condición en la que se debe ejecutar la tarea. Los valores válidos son:
  • ALL_SUCCESS (valor predeterminado): ejecutar si todas las dependencias tienen éxito.
  • AT_LEAST_ONE_SUCCESS: ejecutar si al menos una de las dependencias tiene éxito.
  • NONE_FAILED: se ejecuta si no se ha producido ningún error en ninguna dependencia.
  • ALL_DONE: se ejecuta cuando se completan todas las dependencias, independientemente del resultado.
  • AT_LEAST_ONE_FAILED: Se ejecuta si al menos una dependencia falla.
  • ALL_FAILED: ejecute si se produce un error en todas las dependencias.
task_key String Obligatorio. Un nombre único para la tarea. Este campo se usa para hacer referencia a esta tarea desde otras tareas mediante el depends_on campo .
timeout_seconds Integer Tiempo de espera opcional aplicado a cada ejecución de esta tarea. Un valor de 0 significa que no se ha agotado el tiempo de espera. Si no se establece, se usa el tiempo de espera predeterminado de la configuración del clúster.
webhook_notifications Mapa Un conjunto opcional de destinos del sistema que se notificará cuando se inicia, se completa o se produce un error en una ejecución. Cada elemento contiene:
  • on_start (Secuencia): lista de destinos de notificación cuando se inicia una ejecución.
  • on_success (Secuencia): lista de destinos de notificación cuando se completa una ejecución.
  • on_failure (Secuencia): lista de destinos de notificación cuando se produce un error en una ejecución.
  • on_duration_warning_threshold_exceeded (Secuencia): lista de destinos de notificación cuando la duración de la ejecución supera el umbral.
  • on_streaming_backlog_suceeded (Secuencia): lista de direcciones de correo electrónico a las que se debe notificar cuando se superan los umbrales de cola de espera de streaming para cualquier flujo.