Adicionar tarefa ao trabalho em Databricks ativo Bundles
Esta página fornece informações sobre como definir tarefa de trabalho em pacotes ativos Databricks . Para obter informações sobre a tarefa do Job, consulte Configurar e editar tarefa no LakeFlow Jobs.
O campo Job git_source
e o campo 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 foi implantado.
Em vez disso, clone o repositório localmente e configure seu projeto de pacote dentro desse repositório, de modo que o código-fonte da tarefa seja o workspace.
Configurar tarefa
Defina tarefa para um Job em um pacote na key tasks
para a definição do Job. Exemplos de configuração de tarefas para os tipos de tarefas disponíveis estão na seção de configurações de tarefas . Para obter informações sobre como definir um Job em um pacote, consulte Job.
Para gerar rapidamente a configuração de recurso para um trabalho existente usando o comando Databricks CLIo senhor pode usar o comando bundle generate job
. Ver comando de pacote.
Para definir valores de tarefa, a maioria dos tipos de tarefa de trabalho tem parâmetros específicos de tarefa, mas você também pode definir parâmetros de tarefa que são passados para tarefa. Referências de valores dinâmicos são suportadas para parâmetros de Job, o que permite passar valores específicos para a execução do Job entre tarefas. Para informações completas sobre como passar valores de tarefa por tipo de tarefa, veja Detalhes por tipo de tarefa.
Você também pode substituir as configurações gerais da tarefa Job pelas configurações de um workspace de destino. Consulte Substituir com configurações de destino.
O exemplo de configuração a seguir define um Job com duas tarefas do 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 seguinte código, que define um valor tarefa para a key message
:
# 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 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 tarefas
Esta seção contém configurações e exemplos para cada tipo de tarefa.
Condição tarefa
O condition_task
permite que você adicione uma tarefa com lógica condicional if/else ao seu Job. A tarefa avalia uma condição que pode ser usada para controlar a execução de outra tarefa. A tarefa de condição não requer um cluster para ser executada e não oferece 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 seguintes chaves estão disponíveis para uma condição tarefa. Para a definição do objeto REST API correspondente, consulte condition_task.
Chave | Tipo | Descrição |
---|---|---|
| String | Obrigatório. O operando esquerdo da condição. Pode ser um valor de strings ou um estado de trabalho ou uma referência de valor dinâmico, como |
| String | Obrigatório. O operador a ser usado para comparação. Os valores válidos são: |
| String | Obrigatório. O operando direito da condição. Pode ser um valor de strings, 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 de Notebook só é executada se o número de reparos de trabalhos 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
Use esta tarefa para refresh um painel e enviar um Snapshot aos assinantes. Para mais informações sobre painéis em pacotes, consulte painel.
As seguintes teclas estão disponíveis para uma tarefa do painel. Para a definição do objeto REST API correspondente, consulte dashboard_task.
Chave | Tipo | Descrição |
---|---|---|
| String | Obrigatório. O identificador do painel a ser atualizado. O painel já deve existir. |
| Mapa | A configuração de inscrição para enviar o Snapshot do painel. Cada objeto de inscrição pode especificar configurações de destino para onde enviar o Snapshot após a conclusão refresh do painel. Veja inscrição. |
| String | O ID do warehouse para executar o painel para o programador. Se não for especificado, o warehouse default do painel será usado. |
Exemplos
O exemplo a seguir adiciona um dashboard tarefa a um Job. Quando o trabalho é executado, o painel com o ID especificado é 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
Você usa esta tarefa para executar um ou mais comandos dbt . Para obter mais informações sobre dbt, consulte Conectar ao dbt Cloud.
As seguintes chaves estão disponíveis para uma tarefadbt. Para a definição de objeto REST API correspondente, consulte dbt_task.
Chave | Tipo | Descrição |
---|---|---|
| String | O nome do catálogo a ser usado. O valor do catálogo só pode ser especificado se um |
| Sequência | Obrigatório. Uma lista de comandos dbt para executar em sequência. Cada comando deve ser um comando dbt completo (por exemplo, |
| String | O caminho para o diretório que contém o arquivo dbt profiles.yml. Só pode ser especificado se nenhum |
| String | O caminho para o diretório que contém o projeto dbt. Se não for especificado, o padrão será a raiz do repositório ou do diretório workspace . Para projetos armazenados no workspace Databricks , o caminho deve ser absoluto e começar com uma barra. Para projetos em um repositório remoto, o caminho deve ser relativo. |
| String | O esquema para escrever. Este parâmetro só é usado quando um |
| String | O tipo de localização do projeto dbt. Os valores válidos são |
| String | O ID do SQL warehouse a ser usado para executar o comando dbt . Se não for especificado, o warehouse default será usado. |
Exemplos
O exemplo a seguir adiciona uma tarefa dbt a um trabalho. Esta dbt tarefa usa o SQL warehouse especificado para executar o dbt comando especificado.
Para obter o ID do SQL warehouse, abra a página de configurações do SQL warehouse e copie o ID encontrado entre parênteses após o nome do depósito no campo Name (Nome) na Visão Geral do tab.
Databricks O ativo Bundles também inclui um padrão de projeto dbt-sql
que define um trabalho com uma tarefa dbt, bem como perfis dbt para o trabalho dbt implantado. Para obter informações sobre Databricks ativo Bundles padrão, consulte default bundle 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
O for_each_task
permite que o senhor adicione uma tarefa com um loop for each ao seu Job. A tarefa executa uma tarefa aninhada para cada entrada fornecida. Para obter mais informações sobre o for_each_task
, consulte Usar uma tarefa For each
para executar outra tarefa em um loop.
As seguintes chaves estão disponíveis para um for_each_task
. Para a definição do objeto REST API correspondente, consulte for_each_task.
Chave | Tipo | Descrição |
---|---|---|
| Integer | O número máximo de iterações de tarefa que podem ser executadas simultaneamente. Se não for especificado, todas as iterações podem ser executadas em paralelo, sujeitas aos limites cluster e workspace . |
| String | Obrigatório. Os dados de entrada para o loop. Pode ser uma string JSON ou uma referência a um parâmetro de matriz. Cada elemento na matriz será passado para uma iteração da tarefa aninhada. |
| Mapa | Obrigatório. A definição de tarefa aninhada a ser executada para cada entrada. Este objeto contém a especificação completa da tarefa, incluindo |
Exemplos
O exemplo a seguir adiciona um for_each_task
a um Job, 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
JAR tarefa
Você usa esta tarefa para executar um JAR. Você pode referenciar bibliotecas JAR locais ou aquelas em um workspace, um volume Unity Catalog ou um local de armazenamento cloud externo. Veja o arquivo JAR (Java ou Scala).
Para obter detalhes sobre como compilar e implantar arquivos Scala JAR em um clustering habilitado para Unity Catalogno modo de acesso padrão, consulte implantar Scala JARs no clustering Unity Catalog.
As seguintes chaves estão disponíveis para um JAR tarefa. Para a definição do objeto REST API correspondente, consulte jar_task.
Chave | Tipo | Descrição |
---|---|---|
| String | Obsoleto. O URI do JAR a ser executado. Caminhos de armazenamento cloud e DBFS são suportados. Este campo está obsoleto e não deve ser usado. Em vez disso, use o campo |
| String | Obrigatório. O nome completo da classe que contém o método principal a ser executado. Esta classe deve estar contida em um JAR fornecido como uma biblioteca. O código deve usar |
| Sequência | Os parâmetros passados para o método principal. Utilize variáveis de parâmetros de tarefa para definir parâmetros contendo informações sobre a execução do Job. |
Exemplos
O exemplo a seguir adiciona uma tarefa JAR a um Job. O caminho para o JAR é para 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
Notebook tarefa
O senhor usa essa tarefa para executar um Notebook. Consulte Notebook tarefa for Job.
As seguintes teclas estão disponíveis para uma tarefa do Notebook. Para a definição de objeto REST API correspondente, consulte notebook_task.
Chave | Tipo | Descrição |
---|---|---|
| Mapa | Os parâmetros base a serem usados para cada execução deste Job.
|
| String | Obrigatório. O caminho do Notebook no workspace Databricks ou no repositório remoto, por exemplo |
| String | Tipo de localização do Notebook. Os valores válidos são |
| String | O ID do warehouse para execução do Notebook. Os armazéns SQL clássicos não são suportados. Em vez disso, use serverless ou o pro SQL warehouse. Observe que SQL Warehouse só oferece suporte a células SQL . Se o Notebook contiver células não SQL, a execução falhará, então se você precisar usar Python (ou outro) em uma célula, use serverless. |
Exemplos
O exemplo a seguir adiciona uma tarefa de Notebook a um Job e define um parâmetro de Job chamado my_job_run_id
. O caminho para o Notebook a ser implantado é relativo ao arquivo de configuração no qual essa tarefa é declarada. A tarefa obtém o Notebook de seu local implantado no site Databricks workspace.
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 oleoduto
O senhor usa essa tarefa para executar a pipeline. Consulte LakeFlow Pipeline declarativo.
As seguintes chaves estão disponíveis para uma tarefapipeline. Para a definição do objeto REST API correspondente, consulte pipeline_task.
Chave | Tipo | Descrição |
---|---|---|
| Booleana | Se verdadeiro, uma refresh completa do pipeline será acionada, o que recalculará completamente todos os conjuntos de dados no pipeline. Se falso ou omitido, somente dados incrementais serão processados. Para obter detalhes, consulte semântica refresh do pipeline. |
| String | Obrigatório. O ID do pipeline para execução. O pipeline já deve existir. |
Exemplos
O exemplo a seguir adiciona uma tarefa pipeline a um trabalho. Esta tarefa executa o pipeline especificado.
O senhor pode obter o ID de um pipeline abrindo o pipeline no workspace e copiando o valor do ID do pipeline nos detalhes do pipeline tab 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
TarefaPower BI
Visualização
O tipo de tarefa do Power BI está em Visualização Pública.
Use esta tarefa para acionar uma refresh de um modelo semântico Power BI (anteriormente conhecido como dataset).
As seguintes chaves estão disponíveis para uma tarefaPower BI. Para a definição do objeto REST API correspondente, consulte power_bi_task.
Chave | Tipo | Descrição |
---|---|---|
| String | Obrigatório. O nome da conexão do Unity Catalog para autenticação do Databricks para Power BI. |
| String | Obrigatório. O nome do modelo semântico Power BI (dataset) a ser atualizado. |
| Booleana | Se o modelo semântico Power BI deve ser refresh após a conclusão da atualização. padrão para falso. |
| Sequência | Uma lista de tabelas (cada uma como um Mapa) a serem exportadas para o Power BI. Consulte tabelas. |
| String | O ID do SQL warehouse a ser usado como fonte de dados 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'
Python tarefa do script
O senhor usa essa tarefa para executar um arquivo Python.
As seguintes chaves estão disponíveis para um scriptPython tarefa. Para a definição do objeto REST API correspondente, consulte python_task.
Chave | Tipo | Descrição |
---|---|---|
| Sequência | Os parâmetros a serem passados para o arquivo Python. Utilize variáveis de parâmetros de tarefa para definir parâmetros contendo informações sobre a execução do Job. |
| String | Obrigatório. O URI do arquivo Python a ser executado, por exemplo |
| String | O tipo de localização do arquivo Python. Os valores válidos são |
Exemplos
O exemplo a seguir adiciona um script Python tarefa a um trabalho. O caminho para o arquivo Python a ser implantado é relativo ao arquivo de configuração no qual essa tarefa é declarada. A tarefa obtém o arquivo Python de seu local implantado no site Databricks workspace.
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
Python wheel tarefa
Você usa esta tarefa para executar uma Python wheel. Veja Construir um arquivo Python wheel usando Databricks ativo Bundles.
As seguintes chaves estão disponíveis para uma tarefaPython wheel. Para a definição do objeto REST API correspondente, consulte python_wheel_task.
Chave | Tipo | Descrição |
---|---|---|
| String | Obrigatório. O ponto de entrada nomeado para executar: função ou classe. Se não existir nos metadados do pacote, ele executa a função diretamente do pacote usando |
| Mapa | Os parâmetros nomeados para passar para a tarefa Python wheel , também conhecidos como argumentos de palavra-chave . Um parâmetro nomeado é uma keypar -valor com uma key de strings e um valor de strings. |
| 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. |
| Sequência | Os parâmetros a serem passados para a tarefa Python wheel , também conhecidos como argumentos posicionais . Cada parâmetro é uma string. Se especificado, |
Exemplos
O exemplo a seguir adiciona uma tarefa Python wheel a um trabalho. O caminho para o arquivo Python wheel a ser implantado é relativo ao arquivo de configuração no qual essa tarefa é declarada. Consulte Databricks ativo Bundles biblioteca dependencies.
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
execução Job tarefa
O senhor usa essa tarefa para executar outro trabalho.
As seguintes chaves estão disponíveis para uma tarefa de execução do Job. Para a definição do objeto REST API correspondente, consulte run_job_task.
Chave | Tipo | Descrição |
---|---|---|
| Integer | Obrigatório. O ID do trabalho a ser executado. O trabalho já deve existir no workspace. |
| Mapa | Parâmetros de nível de Joba serem passados para o trabalho que está sendo executado. Esses parâmetros são acessíveis na tarefa do Job. |
| Mapa | Parâmetros para a tarefa de pipeline. Usado somente se o Job em execução contiver uma tarefa pipeline . Pode incluir |
Exemplos
O exemplo a seguir contém uma tarefa de execução de trabalho no segundo trabalho que executa o primeiro trabalho.
Este exemplo usa uma substituição para recuperar o ID do trabalho a ser executado. Para obter o ID de um trabalho na interface do usuário, abra o trabalho em workspace e copie o ID do valor Job ID em Job details tab da 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}
TarefaSQL
Você usa esta tarefa para executar um arquivo SQL , consulta ou alerta.
As seguintes chaves estão disponíveis para uma tarefaSQL. Para a definição de objeto REST API correspondente, consulte sql_task.
Chave | Tipo | Descrição |
---|---|---|
| Mapa | Configuração para executar um alerta SQL. Contém:
|
| Mapa | Configuração para atualizar um painel SQL. Contém:
|
| Mapa | Configuração para executar um arquivo SQL. Contém:
|
| Mapa | Parâmetros a serem usados para cada execução desta tarefa. Consultas e arquivos SQL podem usar esses parâmetros referenciando-os com a sintaxe |
| Mapa | Configuração para executar uma consulta SQL. Contém:
|
| String | Obrigatório. O ID do SQL warehouse a ser usado para executar a tarefa SQL . O SQL warehouse já deve existir. |
Exemplos
Para obter o ID do SQL warehouse, abra a página de configurações do SQL warehouse e copie o ID encontrado entre parênteses após o nome do depósito no campo Name (Nome) na Visão Geral do tab.
O exemplo a seguir adiciona um arquivo SQL tarefa a um trabalho. Essa tarefa do arquivo SQL usa o arquivo 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 Job. Esta tarefa de alerta SQL usa o SQL warehouse especificado para refresh 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 Job. 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 configurações de tarefas permitem que você configure comportamentos para todas as tarefas. Para as definições de objetos API REST correspondentes, consulte tarefa.
Chave | Tipo | Descrição |
---|---|---|
| String | A key do recurso compute a ser usado para esta tarefa. Se especificado, |
| Sequência | Uma lista opcional de dependências de tarefas. Cada item contém:
|
| String | Uma descrição opcional para a tarefa. |
| Booleana | Se deseja desabilitar a otimização automática para esta tarefa. Se verdadeiro, otimizações automáticas como execução adaptável de consultas serão desabilitadas. |
| Mapa | Um conjunto opcional de endereços email para notificar quando uma execução começa, é concluída ou falha. Cada item contém:
|
| String | A key de um ambiente definido na configuração |
| String | O ID de um cluster existente que será usado para toda a execução desta tarefa. |
| Mapa | Uma especificação opcional para monitoramento de saúde desta tarefa que inclui uma key |
| String | A key de um cluster de Job definido na configuração |
| Sequência | Uma lista opcional de bibliotecas a serem instaladas no cluster que executará a tarefa. Cada biblioteca é especificada como um mapa com chave como |
| 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. |
| Integer | Um intervalo mínimo opcional em milissegundos entre o início da execução com falha e a execução de nova tentativa subsequente. Se não for especificado, o default é 0 (nova tentativa imediata). |
| Mapa | Uma especificação para um novo cluster a ser criado para cada execução desta tarefa. Veja cluster. |
| Mapa | Configurações de notificação opcionais para esta tarefa. Cada item contém:
|
| Booleana | Uma política opcional para especificar se a tarefa deve ser repetida quando o tempo limite for atingido. Se não for especificado, o padrão é falso. |
| String | Um valor opcional que indica a condição sob a qual a tarefa deve ser executada. Os valores válidos são:
|
| String | Obrigatório. Um nome exclusivo para a tarefa. Este campo é usado para se referir a esta tarefa a partir de outra tarefa usando o campo |
| Integer | 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 for definido, o tempo limite default da configuração cluster será usado. |
| Mapa | Um conjunto opcional de destinos do sistema para notificar quando uma execução começa, é concluída ou falha. Cada item contém:
|