Compartilhar via


Adicionar tarefas a trabalhos em Databricks Asset Bundles

Esta página fornece informações sobre como definir tarefas de trabalho nos Pacotes de Ativos do Databricks. Para obter informações sobre tarefas de trabalho, consulte Configurar e editar tarefas em Trabalhos do Lakeflow.

Importante

Os campos de trabalho git_source e de tarefa source definidos como GIT não são recomendados para pacotes, pois os caminhos relativos locais 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 ele foi implantado.

Em vez disso, clone o repositório localmente e configure seu projeto de pacote nesse 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 tarefa para os tipos de tarefa disponíveis estão na seção Configurações da tarefa. Para obter informações sobre como definir um trabalho em um pacote, consulte job.

Dica

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

Para definir valores de tarefa, a maioria dos tipos de tarefas possui parâmetros específicos de tarefas, mas você também pode definir parâmetros de trabalho que são passados para tarefas. Há suporte para referências de valor dinâmico para parâmetros de trabalho, que permitem a passagem de valores específicos para a execução do trabalho 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 tarefa de trabalho com configurações para um workspace de destino. Consulte Substituir com as configurações de destino.

A configuração de exemplo a seguir define um trabalho com duas tarefas de notebook e passa um valor de tarefa da primeira tarefa para a segunda tarefa.

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 código a seguir, 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}")

Recupera input_notebook.ipynb o valor do parâmetro received_message, que foi definido na configuração da 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 tarefa

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

Tarefa limpar bloco de anotações de sala

A tarefa de notebook de sala limpa executa um notebook de salas limpas quando o campo clean_rooms_notebook_task está presente. Para obter informações sobre salas limpas, consulte o que são salas limpas do Azure Databricks?.

As chaves a seguir estão disponíveis para uma tarefa de notebook 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 String Obrigatório A sala limpa à qual o bloco de anotações pertence.
etag String Soma de verificação para validar a atualidade do recurso do notebook. Ele pode ser obtido por meio da chamada à operação de obtenção de recursos de sala limpa.
object Map Parâmetros base a serem usados para o trabalho de notebook de sala limpa.
notebook_name String Obrigatório Nome do bloco de anotações que está sendo executado.

Tarefa condicional

O condition_task permite adicionar uma tarefa com a 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 que um cluster seja executado e não dá suporte a 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 chaves a seguir 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 String Obrigatório 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 String Obrigatório O operador a ser usado para comparação. Os valores válidos são: EQUAL_TO, , NOT_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN, . LESS_THAN_OR_EQUAL
right String Obrigatório 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.

Exemplos

O exemplo a seguir contém uma tarefa de condição e uma tarefa de notebook, em que a tarefa do notebook só é executada se o número de reparos 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 controle

Você usa essa tarefa para atualizar um painel e enviar um instantâneo aos assinantes. Para obter mais informações sobre dashboards em conjuntos, consulte o 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 String Obrigatório O identificador do painel a ser atualizado. O painel já deve existir.
subscription Map A configuração de assinatura para o envio da captura de tela do painel. Cada objeto de assinatura pode especificar as configurações de destino para onde enviar instantâneos após a conclusão da atualização do painel. Consulte a assinatura.
warehouse_id String O ID do depósito para executar o painel de controle para o cronograma. Se não for especificado, o warehouse padrão do painel será usado.

Exemplos

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 o dbt, consulte Conectar-se ao 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 String O nome do catálogo a ser usado. O valor do catálogo somente poderá ser especificado se um warehouse_id for especificado. Esse campo requer dbt-databricks >= 1,1,1.
commands Sequence Obrigatório Uma lista de comandos dbt a serem executados em sequência. Cada comando deve ser um comando dbt completo (por exemplo, , dbt deps, dbt seed, dbt run, dbt test). Um máximo de até 10 comandos pode ser fornecido.
profiles_directory String O caminho para o diretório que contém o arquivo dbt profiles.yml. Só poderá ser especificado se não houver warehouse_id especificado. Se nenhum warehouse_id for especificado e essa pasta não for definida, o diretório raiz será usado.
project_directory String O caminho para o diretório que contém o projeto dbt. Se não for especificado, o padrão será a pasta raiz do repositório ou do diretório do espaço de trabalho. Para projetos armazenados no workspace do 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 String O esquema para gravar. Esse parâmetro só é usado quando um warehouse_id também é fornecido. Se não for fornecido, o esquema padrão será usado.
source String O tipo de local do projeto dbt. Os valores válidos são WORKSPACE e GIT. Quando definido como WORKSPACE, o projeto será recuperado do workspace do 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 String O ID do SQL Warehouse a ser usado para executar comandos dbt. Se não for especificado, o warehouse padrão será usado.

Exemplos

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

Para obter a ID de um sql warehouse, abra a página de configurações do SQL Warehouse e copie a ID encontrada entre parênteses após o nome do warehouse no campo Nome na guia Visão Geral .

Dica

Os Pacotes de Ativos do Databricks também incluem um modelo de projeto dbt-sql que define um trabalho com uma tarefa dbt, bem como perfis dbt para trabalhos dbt implantados. Para obter informações sobre modelos de Pacotes de Ativos do Databricks, consulte modelos de pacote padrão.

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

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

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

Key Tipo Description
concurrency Integer O número máximo de iterações de tarefas que podem ser executadas simultaneamente. Se não for especificado, todas as iterações poderão ser executadas em paralelo sujeitas aos limites de cluster e workspace.
inputs String Obrigatório Os dados de entrada do loop. 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 Obrigatório Definição de tarefa aninhada a ser executada para cada entrada. Esse objeto contém a especificação de tarefa completa, incluindo task_key e o tipo de tarefa (por exemplo, , notebook_tasketc python_wheel_task.).

Exemplos

O exemplo a seguir adiciona uma for_each_task a um trabalho, em que 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 referenciar bibliotecas JAR locais ou aquelas em um espaço de trabalho, um volume do Catálogo do Unity ou um local de armazenamento em nuvem externo. Consulte o arquivo JAR (Java ou Scala).

Para obter detalhes sobre como compilar e implantar arquivos JAR do Scala em um cluster habilitado para Catálogo do Unity no modo de acesso padrão, consulte Tutorial: Executar código Scala na 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 String Preterido. O URI do JAR que será executado. Há suporte para DBFS e caminhos de armazenamento em nuvem. Esse campo foi preterido e não deve ser usado. Em vez disso, use o libraries campo para especificar dependências JAR.
main_class_name String Obrigatório 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 do Spark; caso contrário, as execuções do trabalho falharão.
parameters Sequence Os parâmetros passados para o método principal. Use variáveis de parâmetro de tarefa para definir parâmetros que contêm informações sobre execuções de trabalho.

Exemplos

O exemplo a seguir adiciona uma tarefa do JAR a um trabalho. O caminho do JAR leva a um local 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 notebook

Use essa tarefa para executar um notebook. Consulte Tarefa de Notebook para trabalhos.

As chaves a seguir estão disponíveis para uma tarefa de notebook. 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 executar agora 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 contêm informações sobre execuções de trabalho.
  • Se o notebook toma um parâmetro que não é especificado nos parâmetros de base_parameters do trabalho ou nos parâmetros de substituição do run-now, o valor padrão do notebook é usado. Recupere esses parâmetros em um notebook usando dbutils.widgets.get.
notebook_path String Obrigatório O caminho do notebook no workspace do Databricks ou repositório remoto, por exemplo /Users/user.name@databricks.com/notebook_to_run. Para notebooks armazenados no workspace do Databricks, o caminho deve ser absoluto e começar com uma barra. Para notebooks armazenados em um repositório remoto, o caminho deve ser relativo.
source String Tipo de local do notebook. Os valores válidos são WORKSPACE e GIT. Quando definido como WORKSPACE, o notebook será recuperado do workspace local do Databricks. Quando definido como GIT, o notebook será recuperado de um repositório Git definido em git_source. Se o valor estiver vazio, a tarefa usará GIT se git_source estiver definido e WORKSPACE caso contrário.
warehouse_id String A ID do armazém no qual executar o bloco de anotações. Não há suporte para armazéns SQL clássicos. Em vez disso, use armazéns SQL profissionais ou sem servidor. Observe que os sql warehouses dão suporte apenas a células SQL. Se o notebook contiver células não SQL, a execução falhará, portanto, se você precisar usar Python (ou outra) em uma célula, use sem servidor.

Exemplos

O exemplo a seguir adiciona uma tarefa de notebook a um trabalho e define um parâmetro de trabalho chamado my_job_run_id. O caminho para o notebook implantar é relativo ao arquivo de configuração no qual essa tarefa é declarada. A tarefa recebe o notebook do local implantado no workspace 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 do pipeline

Você usa essa tarefa para executar um pipeline. Consulte Pipelines Declarativos do Lakeflow Spark.

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 for true, uma atualização completa do pipeline será disparada, o que recompilará completamente todos os conjuntos de dados no pipeline. Se for falso ou omitido, somente os dados incrementais serão processados. Para obter detalhes, consulte a semântica de atualização do pipeline.
pipeline_id String Obrigatório O ID do pipeline a ser executado. O pipeline já deve existir.

Exemplos

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

Dica

Você pode obter o ID de um pipeline ao abrir o pipeline na área de trabalho e copiando o valor da ID do Pipeline 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 essa tarefa para disparar uma atualização de um modelo semântico do Power BI (anteriormente conhecido como um 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 String Obrigatório O nome da conexão do Catálogo Unity usada para autenticar do Databricks para o Power BI.
power_bi_model String Obrigatório 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 será atualizado após a conclusão da atualização. O padrão é false.
tables Sequence Uma lista de tabelas (cada uma como um mapa) a ser exportada para o Power BI. Consulte tabelas.
warehouse_id String O ID do armazém SQL a ser usado como a origem de dados do Power BI.

Exemplos

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 do 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 em Python

Use essa 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 contêm informações sobre execuções de trabalho.
python_file String Obrigatório O URI do arquivo Python a ser executado, por exemplo /Users/someone@example.com/my-script.py. Para arquivos python armazenados no workspace do Databricks, o caminho deve ser absoluto e começar com /. Para arquivos armazenados em um repositório remoto, o caminho deve ser relativo. Esse campo não dá suporte a referências de valor dinâmico, como variáveis.
source String O tipo de localização do arquivo Python. Os valores válidos são WORKSPACE e GIT. Quando definido como WORKSPACE, o arquivo será recuperado do workspace 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 definido e WORKSPACE caso contrário.

Exemplos

O exemplo a seguir adiciona uma tarefa de script Python a um trabalho. O caminho do arquivo Python para ser implantado é relativo ao arquivo de configuração no qual esta tarefa é declarada. A tarefa obtém o arquivo Python da sua localização implantada 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 wheel em Python

Você usa essa tarefa para executar uma roda do Python. Consulte Criar um arquivo de roda do Python usando pacotes de ativos do Databricks.

As chaves 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 String Obrigatório O ponto de entrada nomeado para execução: função ou classe. Se ele não existir nos metadados do pacote, ele executará a função do pacote diretamente usando $packageName.$entryPoint().
named_parameters Map Os parâmetros nomeados a serem passados para a tarefa de roda do Python também são conhecidos como argumentos de palavra-chave. Um parâmetro nomeado é um par chave-valor com uma chave e um valor do tipo string. Ambos parameters e named_parameters não podem ser especificados. Se named_parameters for especificado, parameters será passado como argumentos de palavra-chave para a função de ponto de entrada.
package_name String Obrigatório 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 conhecida como argumentos posicionais. Cada parâmetro é uma cadeia de caracteres. Se especificado, named_parameters não deve ser especificado.

Exemplos

O exemplo a seguir adiciona uma tarefa de wheel em Python a um trabalho. O caminho para o arquivo wheel do Python implantar é relativo ao arquivo de configuração no qual essa tarefa é declarada. Confira Dependências da biblioteca de Pacotes de Ativos do 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

Executar tarefa de trabalho

Use essa tarefa para executar outro trabalho.

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

Key Tipo Description
job_id Integer Obrigatório O ID do trabalho a ser executado. O trabalho já deve existir no espaço de trabalho.
job_parameters Map Parâmetros de nível de tarefa 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 iniciar uma atualização completa do pipeline.

Exemplos

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

Esse exemplo usa uma substituição para recuperar o identificador da tarefa a ser executada. Para obter a ID de um trabalho na interface do usuário, abra o trabalho no espaço de trabalho e copie a ID do valor da ID do trabalho na guia Detalhes do trabalho na página de 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

Você usa essa tarefa para executar um arquivo SQL, uma consulta ou um 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 (Cadeia de caracteres): Obrigatório. O identificador canônico do alerta SQL a ser executado.
  • pause_subscriptions (Boolean): Se deseja pausar as assinaturas de alerta.
  • subscriptions (Sequência): lista de configurações de assinatura.
dashboard Map Configuração para atualizar um painel do SQL. Contém:
  • dashboard_id (Cadeia de caracteres): Obrigatório. O identificador canônico do painel do SQL a ser atualizado.
  • custom_subject (Cadeia de caracteres): assunto personalizado para o email enviado aos assinantes do painel.
  • pause_subscriptions (Boolean): Se deve pausar assinaturas do dashboard.
  • subscriptions (Sequência): lista de configurações de assinatura.
file Map Configuração para executar um arquivo SQL. Contém:
  • path (Cadeia de caracteres): Obrigatório. O caminho do arquivo SQL no workspace ou repositório remoto. Para arquivos armazenados no workspace do 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 (Cadeia de caracteres): o tipo de localização do arquivo SQL. Os valores válidos são WORKSPACE e GIT.
parameters Map Parâmetros a serem usados para cada execução dessa tarefa. Consultas e arquivos SQL podem usar esses parâmetros referenciando-os com a sintaxe {{parameter_key}}. Use variáveis de parâmetro de tarefa para definir parâmetros que contêm informações sobre execuções de trabalho.
query Map Configuração para executar uma consulta SQL. Contém:
  • query_id (Cadeia de caracteres): Obrigatório. O identificador canônico da consulta SQL a ser executada.
warehouse_id String Obrigatório A ID do SQL Warehouse a ser usada para executar a tarefa SQL. O SQL Warehouse já deve existir.

Exemplos

Dica

Para obter a ID de um sql warehouse, abra a página de configurações do SQL Warehouse e copie a ID encontrada entre parênteses após o nome do warehouse no campo Nome na guia Visão Geral .

O exemplo a seguir adiciona uma tarefa de arquivo SQL a um trabalho. Essa 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. Essa 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. Essa 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 tarefa

As configurações de tarefa a seguir permitem que você configure comportamentos para todas as tarefas. Para obter as definições de objeto da API REST correspondentes, consulte as tarefas.

Key Tipo Description
depends_on Sequence Uma lista opcional de dependências de tarefas. Cada item contém:
  • task_key (Cadeia de caracteres): Obrigatório. A chave da tarefa da qual essa tarefa depende.
  • outcome (Cadeia de caracteres): pode ser especificado apenas para condition_task. Se especificado, a tarefa dependente só será executada se a condição for avaliada para o resultado especificado (ou true ou false).
description String Uma descrição opcional para a tarefa.
disable_auto_optimization booleano Se deseja desabilitar a otimização automática para essa tarefa. Se for true, as otimizações automáticas, como a execução de consulta adaptável, serão desabilitadas.
email_notifications Map Um conjunto opcional de endereços de email 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 email para notificar quando uma execução é iniciada.
  • on_success (Sequência): lista de endereços de email a serem notificados quando uma execução for concluída com êxito.
  • on_failure (Sequência): lista de endereços de email a serem notificados quando uma execução falhar.
  • on_duration_warning_threshold_exceeded (Sequência): lista de endereços de email a serem notificados quando a duração da execução exceder o limite.
  • on_streaming_backlog_suceeded (Sequência): lista de endereços de email a serem notificados quando os limites de atraso de streaming forem excedidos em qualquer fluxo.
environment_key String A chave de um ambiente definido na configuração do trabalho environments. Usado para especificar configurações específicas do ambiente. Esse campo é necessário para script Python, roda python e tarefas dbt ao usar computação sem servidor.
existing_cluster_id String A ID de um cluster existente que será usada para todas as execuções dessa tarefa.
health Map Uma especificação opcional para o monitoramento de integridade dessa tarefa que inclui uma rules chave, que é uma lista de regras de integridade a serem avaliadas.
job_cluster_key String A chave de um cluster de trabalho definido na configuração do job_clusters trabalho.
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, cranou requirements.
max_retries Integer 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 Integer 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 dessa tarefa. Confira cluster.
notification_settings Map Configurações de notificação opcionais para esta tarefa. Cada item contém:
  • no_alert_for_skipped_runs (Boolean): Se verdadeiro, não envie notificações para execuções evitadas.
  • no_alert_for_canceled_runs (Boolean): se verdadeiro, não envie notificações para execuções canceladas.
  • alert_on_last_attempt (Boolean): se for true, envie notificações somente na última tentativa de repetição.
retry_on_timeout booleano Uma configuração opcional para especificar se a tarefa deve ser repetida caso ela atinja o tempo limite. Se não especificado, o padrão é false.
run_if String 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: execute se pelo menos uma dependência for bem-sucedida.
  • NONE_FAILED: executar se nenhuma dependência tiver falhado.
  • ALL_DONE: execute quando todas as dependências forem 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 String Obrigatório Um nome exclusivo para a tarefa. Esse campo é usado para fazer referência a essa tarefa a partir de outras tarefas usando o campo depends_on.
timeout_seconds Integer Um tempo limite opcional aplicado a cada execução dessa tarefa. Um valor de 0 significa que não há tempo limite. Se não for 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 email a serem notificados quando os limites de atraso de streaming forem excedidos em qualquer fluxo.