Partilhar via


Adicionar tarefas a trabalhos no Databricks Asset Bundles

Esta página fornece informações sobre como definir tarefas de trabalho no Databricks Asset Bundles. Para obter informações sobre tarefas de trabalho, consulte Configurar e editar tarefas em trabalhos do Lakeflow.

Importante

O campo de trabalho git_source e o campo de tarefa source definidos para GIT não são recomendados para pacotes, porque caminhos relativos no nível local podem não apontar para o mesmo conteúdo no repositório Git. Os pacotes esperam que um trabalho implantado tenha os mesmos arquivos que a cópia local de onde foi implantado.

Em vez disso, clone o repositório localmente e configure seu projeto de pacote dentro desse repositório, para que a origem das tarefas seja o espaço de trabalho.

Configurar tarefas

Defina tarefas para um trabalho em um pacote na tasks chave para a definição do trabalho. Exemplos de configuração de tarefas para os tipos de tarefas disponíveis estão na seção Configurações de tarefas . Para obter informações sobre como definir um trabalho em um pacote, consulte trabalho.

Gorjeta

Para gerar rapidamente a configuração de recursos para um trabalho existente usando a CLI do Databricks, você pode usar o bundle generate job comando. Consulte os comandos de bundle.

Para definir valores de tarefas, a maioria dos tipos de tarefas de trabalho tem parâmetros específicos de tarefas, mas você também pode definir parâmetros de trabalho que são passados para tarefas. As referências de valor dinâmico são suportadas para parâmetros de trabalho, que permitem a passagem de valores específicos para o trabalho executado entre tarefas. Para obter informações completas sobre como passar valores de tarefa por tipo de tarefa, consulte Detalhes por tipo de tarefa.

Você também pode substituir as configurações gerais de tarefas de trabalho por configurações para um espaço de trabalho de destino. Consulte Substituir com configurações de destino.

O exemplo de configuração a seguir define um trabalho com duas tarefas de bloco de anotações e passa um valor de tarefa da primeira tarefa para a segunda.

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}}'

O output_notebook.ipynb contém o seguinte código, que define um valor de tarefa para a message chave:

# 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}")

O input_notebook.ipynb recupera o valor do parâmetro received_message, que foi definido na configuração para a tarefa:

# 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}")

Configurações de tarefas

Esta seção contém configurações e exemplos para cada tipo de tarefa de trabalho.

Tarefa do caderno de anotações de sala limpa

A tarefa de bloco de anotações de sala limpa executa um bloco de anotações de sala limpa quando o campo clean_rooms_notebook_task está presente. Para obter informações sobre salas limpas, consulte O que é o Azure Databricks Clean Rooms?.

As teclas a seguir estão disponíveis para uma tarefa de caderno de salas limpas. Para obter a definição de objeto da API REST correspondente, consulte clean_rooms_notebook_task.

Key Tipo Description
clean_room_name Cordão Required. A sala limpa a que pertence o caderno.
etag Cordão Checksum para validar a atualidade do recurso do bloco de anotações. Ele pode ser obtido ao chamar a operação de obtenção de ativos da sala limpa.
object Map Parâmetros básicos a serem usados para o caderno de registos de sala limpa.
notebook_name Cordão Required. Nome do bloco de notas que está a ser executado.

Tarefa condicional

O condition_task permite que você adicione uma tarefa com lógica condicional if/else ao seu trabalho. A tarefa avalia uma condição que pode ser usada para controlar a execução de outras tarefas. A tarefa de condição não requer a execução de um cluster e não suporta novas tentativas ou notificações. Para obter mais informações sobre a tarefa de condição if/else, consulte Adicionar lógica de ramificação a um trabalho com a tarefa If/else.

As seguintes chaves estão disponíveis para uma tarefa condicional. Para obter a definição de objeto da API REST correspondente, consulte condition_task.

Key Tipo Description
left Cordão Required. O operando esquerdo da condição. Pode ser um valor de cadeia de caracteres ou um estado de trabalho ou uma referência de valor dinâmico, como {{job.repair_count}} ou {{tasks.task_key.values.output}}.
op Cordão Required. O operador a utilizar para comparação. Os valores válidos são: EQUAL_TO, NOT_EQUAL, GREATER_THAN, , GREATER_THAN_OR_EQUALLESS_THAN, . LESS_THAN_OR_EQUAL
right Cordão Required. O operando direito da condição. Pode ser um valor de cadeia de caracteres ou um estado de trabalho ou uma referência de valor dinâmico.

Examples

O exemplo a seguir contém uma tarefa de condição e uma tarefa de caderno de notas, em que a tarefa de caderno de notas apenas é executada se o número de reparações de trabalho for menor que 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

Tarefa do painel de controlo

Use essa tarefa para atualizar um painel e enviar um instantâneo para os assinantes. Para obter mais informações sobre os dashboards em pacotes, consulte dashboard.

As chaves a seguir estão disponíveis para uma tarefa de painel. Para obter a definição de objeto da API REST correspondente, consulte dashboard_task.

Key Tipo Description
dashboard_id Cordão Required. O identificador do painel a ser atualizado. O painel já deve existir.
subscription Map A configuração de subscrição para o envio da captura do painel. Cada objeto de assinatura pode especificar configurações de destino para onde enviar instantâneos após a conclusão da atualização do painel. Consulte a subscrição.
warehouse_id Cordão O identificador do depósito para executar o painel conforme a programação. Se não for especificado, o depósito padrão do painel será usado.

Examples

O exemplo a seguir adiciona uma tarefa de painel a um trabalho. Quando o trabalho é executado, o painel com a ID especificada é atualizado.

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

Tarefa DBT

Use essa tarefa para executar um ou mais comandos dbt. Para obter mais informações sobre dbt, consulte Connect to dbt Cloud.

As chaves a seguir estão disponíveis para uma tarefa dbt. Para obter a definição de objeto da API REST correspondente, consulte dbt_task.

Key Tipo Description
catalog Cordão O nome do catálogo a ser usado. O valor do catálogo só pode ser especificado se a warehouse_id for especificada. Este campo requer dbt-databricks >= 1.1.1.
commands Sequence Required. Uma lista de comandos dbt para executar em sequência. Cada comando deve ser um comando dbt completo (por exemplo, dbt deps, , dbt seed, dbt rundbt test). Um máximo de até 10 comandos podem ser fornecidos.
profiles_directory Cordão O caminho para o diretório que contém o arquivo dbt profiles.yml. Pode apenas ser especificado se warehouse_id não estiver especificado. Se warehouse_id não estiver especificado e esta pasta não estiver definida, o diretório raiz será usado.
project_directory Cordão O caminho para o diretório que contém o projeto dbt. Se não for especificado, assume por padrão a raiz do repositório ou do diretório do espaço de trabalho. Para projetos armazenados no espaço de trabalho Databricks, o caminho deve ser absoluto e começar com uma barra. Para projetos em um repositório remoto, o caminho deve ser relativo.
schema Cordão O esquema para gravar. Este parâmetro só é usado quando um warehouse_id também é fornecido. Se não for fornecido, o esquema padrão será usado.
source Cordão O tipo de localização do projeto dbt. Os valores válidos são WORKSPACE e GIT. Quando definido como WORKSPACE, o projeto será recuperado do espaço de trabalho Databricks. Quando definido como GIT, o projeto será recuperado de um repositório Git definido em git_source. Se estiver vazia, a tarefa usará GIT se git_source estiver definida e WORKSPACE de outra forma.
warehouse_id Cordão O ID do SQL warehouse a ser usado para executar comandos dbt. Se não for especificado, o depósito padrão será usado.

Examples

O exemplo a seguir adiciona uma tarefa dbt a um trabalho. Esta tarefa dbt usa o SQL warehouse especificado para executar os comandos dbt especificados.

Para obter a ID de um armazém SQL, abra a página de definições do armazém SQL e, em seguida, copie o ID encontrado entre parênteses após o nome do armazém no campo Nome no separador Descrição Geral .

Gorjeta

O Databricks Asset Bundles também inclui um modelo de dbt-sql projeto que define um trabalho com uma tarefa dbt, bem como perfis dbt para trabalhos dbt implantados. Para obter informações sobre modelos Databricks Asset Bundles, consulte Default bundle templates.

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 tarefa

O for_each_task permite que você adicione uma tarefa com um para cada loop ao seu trabalho. A tarefa executa uma tarefa aninhada para cada dado de entrada fornecido. Para obter mais informações sobre o for_each_task, consulte Usar uma tarefa For each para executar outra tarefa em um loop.

A seguinte chave está disponível para um for_each_taskarquivo. Para obter a definição de objeto da API REST correspondente, consulte for_each_task.

Key Tipo Description
concurrency Número inteiro O número máximo de iterações de tarefas que podem ser executadas simultaneamente. Se não for especificado, todas as iterações podem ser executadas em paralelo, sujeitas aos limites de cluster e espaço de trabalho.
inputs Cordão Required. Os dados de entrada para o loop. Isso pode ser uma cadeia de caracteres JSON ou uma referência a um parâmetro de matriz. Cada elemento na matriz será passado para uma iteração da tarefa aninhada.
task Map Required. A definição de tarefa aninhada a ser executada para cada entrada de dados. Este objeto contém a especificação completa da tarefa, incluindo task_key e o tipo de tarefa (por exemplo, notebook_task, , python_wheel_tasketc.).

Examples

O exemplo a seguir adiciona um for_each_task a um trabalho, onde ele faz um loop sobre os valores de outra tarefa e os processa.

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

Tarefa JAR

Use essa tarefa para executar um JAR. Você pode fazer referência a bibliotecas JAR locais ou aquelas em um espaço de trabalho, num volume do Catálogo Unity ou num local de armazenamento em nuvem externo. Consulte Arquivo JAR (Java ou Scala).

Para obter detalhes sobre como compilar e implantar arquivos JAR Scala em um cluster habilitado para catálogo Unity no modo de acesso padrão, consulte Tutorial: Executar código Scala em computação sem servidor.

As chaves a seguir estão disponíveis para uma tarefa JAR. Para obter a definição de objeto da API REST correspondente, consulte jar_task.

Key Tipo Description
jar_uri Cordão Deprecated. O URI do JAR a ser executado. DBFS e caminhos de armazenamento em nuvem são suportados. Este campo foi preterido e não deve ser usado. Em vez disso, use o libraries campo para especificar dependências JAR.
main_class_name Cordão Required. O nome completo da classe que contém o método principal a ser executado. Essa classe deve estar contida em um JAR fornecido como uma biblioteca. O código deve ser usado SparkContext.getOrCreate para obter um contexto Spark, caso contrário, as execuções do trabalho falharão.
parameters Sequence Os parâmetros passaram para o método principal. Use variáveis de parâmetro de tarefa para definir parâmetros que contenham informações sobre execuções de trabalho.

Examples

O exemplo a seguir adiciona uma tarefa JAR a um trabalho. O caminho para o JAR leva a uma localização de volume.

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

Tarefa do caderno

Use essa tarefa para executar um bloco de anotações. Veja a tarefa do caderno de anotações para tarefas.

As teclas a seguir estão disponíveis para uma tarefa num portátil. Para obter a definição de objeto da API REST correspondente, consulte notebook_task.

Key Tipo Description
base_parameters Map Os parâmetros base a serem usados para cada execução deste trabalho.
  • Se a execução for iniciada por uma chamada para jobs ou run-now com parâmetros especificados, os dois mapas de parâmetros serão mesclados.
  • Se a mesma chave for especificada em base_parameters e em run-now, o valor de run-now é usado. Use variáveis de parâmetro de tarefa para definir parâmetros que contenham informações sobre execuções de trabalho.
  • Se o notebook usar um parâmetro que não esteja especificado nos parâmetros do base_parameters do trabalho ou nos parâmetros de run-now substituição, o valor padrão do notebook será usado. Recupere estes parâmetros em um notebook usando dbutils.widgets.get.
notebook_path Cordão Required. O caminho do notebook no espaço de trabalho Databricks ou no repositório remoto, por exemplo /Users/user.name@databricks.com/notebook_to_run. Para blocos de anotações armazenados no espaço de trabalho Databricks, o caminho deve ser absoluto e começar com uma barra. Para blocos de anotações armazenados em um repositório remoto, o caminho deve ser relativo.
source Cordão Tipo de localização do bloco de notas. Os valores válidos são WORKSPACE e GIT. Quando definido como WORKSPACE, o bloco de anotações será recuperado do espaço de trabalho Databricks local. Quando definido como GIT, o bloco de anotações será recuperado de um repositório Git definido em git_source. Se o valor estiver vazio, a tarefa usará GIT se git_source estiver definida e WORKSPACE caso contrário.
warehouse_id Cordão O ID do armazém em que executar o notebook. Não há suporte para armazéns SQL clássicos. Em vez disso, use armazéns SQL sem servidor ou profissionais. Observe que os armazéns SQL suportam apenas células SQL. Se o caderno contiver células não-SQL, a execução falhará, portanto, se necessitar usar Python (ou outro) numa célula, utilize serverless.

Examples

O exemplo a seguir adiciona uma tarefa de bloco de anotações a um trabalho e define um parâmetro de trabalho chamado my_job_run_id. O caminho para a implantação do notebook é relativo ao arquivo de configuração no qual a tarefa é declarada. A tarefa obtém o notebook do local onde está implantado no espaço de trabalho do 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}}'

Tarefa de pipeline

Você usa esta tarefa para executar um pipeline. Veja Lakeflow Spark Declarative Pipelines.

As chaves a seguir estão disponíveis para uma tarefa de pipeline. Para obter a definição de objeto da API REST correspondente, consulte pipeline_task.

Key Tipo Description
full_refresh booleano Se verdadeiro, uma atualização total do pipeline será iniciada, resultando no recálculo completo de todos os conjuntos de dados no pipeline. Se falsos ou omitidos, apenas os dados incrementais serão processados. Para obter detalhes, consulte Semântica de atualização de pipeline.
pipeline_id Cordão Required. O ID do pipeline para executar. O gasoduto já deve existir.

Examples

O exemplo a seguir adiciona uma tarefa de pipeline a um trabalho. Esta tarefa executa o pipeline especificado.

Gorjeta

Você pode obter a ID de um pipeline abrindo o pipeline no espaço de trabalho e copiando o valor do Pipeline ID na guia Detalhes do pipeline da página de configurações do pipeline.

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

Tarefa do Power BI

Importante

O tipo de tarefa do Power BI está em Visualização Pública.

Use esta tarefa para disparar uma atualização de um modelo semântico do Power BI (anteriormente conhecido como conjunto de dados).

As chaves a seguir estão disponíveis para uma tarefa do Power BI. Para obter a definição de objeto da API REST correspondente, consulte power_bi_task.

Key Tipo Description
connection_resource_name Cordão Required. O nome da conexão do Catálogo Unity para autenticar do Databricks para o Power BI.
power_bi_model Cordão Required. O nome do modelo semântico do Power BI (conjunto de dados) a ser atualizado.
refresh_after_update booleano Se o modelo semântico do Power BI deve ser atualizado após a conclusão da atualização. É definido para false por padrão.
tables Sequence Uma lista de tabelas (cada uma como um Mapa) a serem exportadas para o Power BI. Ver tabelas.
warehouse_id Cordão A ID do SQL warehouse a ser usada como fonte de dados do Power BI.

Examples

O exemplo a seguir define uma tarefa do Power BI, que especifica uma conexão, o modelo do Power BI a ser atualizado e a tabela Databricks a ser exportada.

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'

Tarefa de script Python

Use esta tarefa para executar um arquivo Python.

As chaves a seguir estão disponíveis para uma tarefa de script Python. Para obter a definição de objeto da API REST correspondente, consulte python_task.

Key Tipo Description
parameters Sequence Os parâmetros a serem passados para o arquivo Python. Use variáveis de parâmetro de tarefa para definir parâmetros que contenham informações sobre execuções de trabalho.
python_file Cordão Required. O URI do arquivo Python a ser executado, por exemplo /Users/someone@example.com/my-script.py. Para arquivos python armazenados no espaço de trabalho Databricks, o caminho deve ser absoluto e começar com /. Para arquivos armazenados em um repositório remoto, o caminho deve ser relativo. Este campo não suporta referências de valor dinâmico, como variáveis.
source Cordão O tipo de localização do ficheiro Python. Os valores válidos são WORKSPACE e GIT. Quando definido como WORKSPACE, o arquivo será recuperado do espaço de trabalho local do Databricks. Quando definido como GIT, o arquivo será recuperado de um repositório Git definido em git_source. Se o valor estiver vazio, a tarefa usará GIT se git_source estiver definida e WORKSPACE caso contrário.

Examples

O exemplo a seguir adiciona uma tarefa de script Python a um trabalho. O caminho para o arquivo Python ser implantado é relativo ao arquivo de configuração no qual essa tarefa é declarada. A tarefa obtém o arquivo Python do local em que foi implantado no workspace do 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

Tarefa de roda Python

Use esta tarefa para executar uma roda Python. Consulte Criar um arquivo de roda Python usando Databricks Asset Bundles.

As teclas a seguir estão disponíveis para uma tarefa de roda do Python. Para obter a definição de objeto da API REST correspondente, consulte python_wheel_task.

Key Tipo Description
entry_point Cordão Required. O ponto de entrada nomeado para executar: função ou classe. Se não existir nos metadados do pacote, ele executa a função do pacote diretamente usando $packageName.$entryPoint().
named_parameters Map Os parâmetros nomeados para passar para a tarefa de roda do Python, também conhecidos como argumentos de palavra-chave. Um parâmetro nomeado é um par chave-valor com uma chave de texto e um valor de texto. Ambos parameters e named_parameters não podem ser especificados. Se named_parameters for especificado, parameters são passados como argumentos de palavra-chave para a função de ponto de entrada.
package_name Cordão Required. O nome do pacote Python a ser executado. Todas as dependências devem ser instaladas no ambiente. Isso não verifica nem instala nenhuma dependência de pacote.
parameters Sequence Os parâmetros a serem passados para a tarefa de roda do Python, também conhecidos como argumentos posicionais. Cada parâmetro é uma cadeia de caracteres. Se especificado, named_parameters não deve ser especificado.

Examples

O exemplo a seguir adiciona uma tarefa de roda Python a um trabalho. O caminho para o ficheiro 'wheel' do Python que se pretende implementar é relativo ao ficheiro de configuração onde esta tarefa é declarada. Consulte Dependências da biblioteca Databricks Asset Bundles.

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

Executar tarefa de trabalho

Use esta tarefa para executar outra tarefa.

As chaves a seguir estão disponíveis para uma tarefa de execução. Para obter a definição de objeto da API REST correspondente, consulte run_job_task.

Key Tipo Description
job_id Número inteiro Required. A ID do trabalho a ser executado. O trabalho deve já existir no espaço de trabalho.
job_parameters Map Parâmetros de nível de trabalho a serem passados para o trabalho em execução. Esses parâmetros são acessíveis dentro das tarefas do trabalho.
pipeline_params Map Parâmetros para a tarefa de pipeline. Usado somente se o trabalho que está sendo executado contiver uma tarefa de pipeline. Pode incluir full_refresh para acionar uma atualização completa do pipeline.

Examples

O exemplo a seguir contém uma tarefa de execução no segundo trabalho que roda o primeiro trabalho.

Este exemplo utiliza uma substituição para obter o ID do trabalho a executar. Para obter o ID de um trabalho na UI, abra-o no espaço de trabalho e copie-o do valor ID do trabalho na guia Detalhes do trabalho nas configurações do trabalho.

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}

Tarefa SQL

Use essa tarefa para executar um arquivo SQL, consulta ou alerta.

As chaves a seguir estão disponíveis para uma tarefa SQL. Para obter a definição de objeto da API REST correspondente, consulte sql_task.

Key Tipo Description
alert Map Configuração para executar um alerta SQL. Contém:
  • alert_id (String): Obrigatório. O identificador canônico do alerta SQL a ser executado.
  • pause_subscriptions (Booleano): Se as assinaturas de alerta devem ser pausadas.
  • subscriptions (Sequência): Lista de configurações de assinatura.
dashboard Map Configuração para atualizar um painel SQL. Contém:
  • dashboard_id (String): Obrigatório. O identificador canônico do painel SQL a ser atualizado.
  • custom_subject (String): Assunto personalizado para o e-mail enviado aos assinantes do painel.
  • pause_subscriptions (Booleano): Se as assinaturas do painel devem ser pausadas.
  • subscriptions (Sequência): Lista de configurações de assinatura.
file Map Configuração para executar um arquivo SQL. Contém:
  • path (String): Obrigatório. O caminho do arquivo SQL no espaço de trabalho ou repositório remoto. Para arquivos armazenados no espaço de trabalho Databricks, o caminho deve ser absoluto e começar com uma barra. Para arquivos armazenados em um repositório remoto, o caminho deve ser relativo.
  • source (String): O tipo de localização do ficheiro SQL. Os valores válidos são WORKSPACE e GIT.
parameters Map Parâmetros a serem usados para cada execução desta tarefa. Consultas e arquivos SQL podem usar esses parâmetros fazendo referência a eles com a sintaxe {{parameter_key}}. Use variáveis de parâmetro de tarefa para definir parâmetros que contenham informações sobre execuções de trabalho.
query Map Configuração para executar uma consulta SQL. Contém:
  • query_id (String): Obrigatório. O identificador canônico da consulta SQL a ser executada.
warehouse_id Cordão Required. O ID do armazém de dados SQL a utilizar para executar a tarefa SQL. O SQL warehouse já deve existir.

Examples

Gorjeta

Para obter a ID de um armazém SQL, abra a página de definições do armazém SQL e, em seguida, copie o ID encontrado entre parênteses após o nome do armazém no campo Nome no separador Descrição Geral .

O exemplo a seguir adiciona uma tarefa de arquivo SQL a um trabalho. Esta tarefa de arquivo SQL usa o SQL warehouse especificado para executar o arquivo 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

O exemplo a seguir adiciona uma tarefa de alerta SQL a um trabalho. Esta tarefa de alerta SQL usa o SQL warehouse especificado para atualizar o alerta SQL especificado.

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

O exemplo a seguir adiciona uma tarefa de consulta SQL a um trabalho. Esta tarefa de consulta SQL usa o SQL warehouse especificado para executar a 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

Outras configurações de tarefas

As seguintes definições de tarefas permitem-lhe configurar comportamentos para todas as tarefas. Para obter as definições de objeto da API REST correspondentes, consulte tarefas.

Key Tipo Description
depends_on Sequence Uma lista opcional de dependências de tarefas. Cada item contém:
  • task_key (String): Obrigatório. A chave da tarefa da qual esta tarefa depende.
  • outcome (String): Pode ser especificado apenas para condition_task. Se especificado, a tarefa dependente só será executada se a condição for avaliada de acordo com o resultado especificado (ou truefalse).
description Cordão Uma descrição opcional para a tarefa.
disable_auto_optimization booleano Se a otimização automática para esta tarefa deve ser desativada. Se for verdade, as otimizações automáticas, como a execução adaptável de consultas, serão desativadas.
email_notifications Map Um conjunto opcional de endereços de e-mail para notificar quando uma execução começa, é concluída ou falha. Cada item contém:
  • on_start (Sequência): Lista de endereços de e-mail para notificar quando uma execução é iniciada.
  • on_success (Sequência): Lista de endereços de e-mail para notificar quando uma execução for concluída com êxito.
  • on_failure (Sequência): Lista de endereços de e-mail para notificar quando uma execução falha.
  • on_duration_warning_threshold_exceeded (Sequência): Lista de endereços de e-mail para notificar quando a duração da execução exceder o limite.
  • on_streaming_backlog_suceeded (Sequência): Lista de endereços de e-mail para notificar quando quaisquer limites de acumulação de streaming forem excedidos para qualquer fluxo.
environment_key Cordão A chave de um ambiente definido na configuração do trabalho environments. Usado para especificar configurações específicas do ambiente. Este campo é necessário para tarefas de script Python, roda Python e dbt ao usar computação sem servidor.
existing_cluster_id Cordão A ID de um cluster existente que será usado para todas as execuções desta tarefa.
health Map Uma especificação opcional para monitorização de saúde desta tarefa que inclui uma chave rules, que é uma lista de regras de saúde para avaliação.
job_cluster_key Cordão A chave de um cluster de trabalho definida na configuração do trabalho job_clusters.
libraries Sequence Uma lista opcional de bibliotecas a serem instaladas no cluster que executará a tarefa. Cada biblioteca é especificada como um mapa com chaves como jar, egg, whl, pypi, maven, cran, ou requirements.
max_retries Número inteiro Um número máximo opcional de vezes para repetir a tarefa se ela falhar. Se não for especificado, a tarefa não será repetida.
min_retry_interval_millis Número inteiro Um intervalo mínimo opcional em milissegundos entre o início da execução com falha e a execução de repetição subsequente. Se não for especificado, o padrão será 0 (repetição imediata).
new_cluster Map Uma especificação para um novo cluster a ser criado para cada execução desta tarefa. Consulte cluster.
notification_settings Map Configurações de notificação opcionais para esta tarefa. Cada item contém:
  • no_alert_for_skipped_runs (Booleano): Se verdadeiro, não envie notificações para execuções ignoradas.
  • no_alert_for_canceled_runs (Booleano): Se verdadeiro, não envie notificações para execuções canceladas.
  • alert_on_last_attempt (Booleano): Se verdadeiro, envie notificações apenas na última tentativa de repetição.
retry_on_timeout booleano Uma política opcional para especificar se a tarefa deve ser reexecutada quando ultrapassar o limite de tempo. Se não for especificado, o padrão será falso.
run_if Cordão Um valor opcional que indica a condição sob a qual a tarefa deve ser executada. Os valores válidos são:
  • ALL_SUCCESS (padrão): executar se todas as dependências forem bem-sucedidas.
  • AT_LEAST_ONE_SUCCESS: Executar se pelo menos uma dependência for bem-sucedida.
  • NONE_FAILED: Execute se nenhuma dependência tiver falhado.
  • ALL_DONE: Executar quando todas as dependências estiverem concluídas, independentemente do resultado.
  • AT_LEAST_ONE_FAILED: Executar se pelo menos uma dependência falhar.
  • ALL_FAILED: Execute se todas as dependências falharem.
task_key Cordão Required. Um nome exclusivo para a tarefa. Este campo é usado para referenciar esta tarefa a partir de outras tarefas, usando o campo depends_on.
timeout_seconds Número inteiro Um tempo limite opcional aplicado a cada execução desta tarefa. Um valor de 0 significa que não há tempo limite. Se não estiver definido, o tempo limite padrão da configuração do cluster será usado.
webhook_notifications Map Um conjunto opcional de destinos do sistema para notificar quando uma execução começa, é concluída ou falha. Cada item contém:
  • on_start (Sequência): Lista de destinos de notificação quando uma execução é iniciada.
  • on_success (Sequência): Lista de destinos de notificação quando uma execução é concluída.
  • on_failure (Sequência): Lista de destinos de notificação quando uma execução falha.
  • on_duration_warning_threshold_exceeded (Sequência): Lista de destinos de notificação quando a duração da execução excede o limite.
  • on_streaming_backlog_suceeded (Sequência): Lista de endereços de e-mail para notificar quando quaisquer limites de acumulação de streaming forem excedidos para qualquer fluxo.