Adicionar tarefas a trabalhos em Databricks Asset Bundles
Este artigo fornece exemplos de vários tipos de tarefas que você pode adicionar aos trabalhos do Azure Databricks em Pacotes de ativos do Databricks. Veja que são pacotes de ativos do Databricks?.
A maioria dos tipos de tarefas de trabalho tem parâmetros específicos de tarefa entre suas configurações suportadas, mas você também pode definir parâmetros de trabalho que são passados para tarefas. As referências de valores dinâmicos são suportadas para parâmetros de trabalho, que permitem a passagem de valores específicos para a execução do trabalho entre tarefas. Confira O que é uma referência de valor dinâmico?.
Observação
Você pode substituir as configurações de tarefa do trabalho. Veja Substituir configurações de tarefas de trabalho em Databricks Asset Bundles.
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 do pacote.
Tarefa do notebook
Use essa tarefa para executar um notebook.
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. (As reticências indicam conteúdo omitido, por questões brevidade.)
# ...
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}}"
# ...
# ...
Para mapeamentos adicionais que você pode definir para essa tarefa, confira tasks > notebook_task
dentro do conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML. Confira Tarefa de notebook para trabalhos.
Tarefa de script do Python
Use essa tarefa para executar um arquivo Python.
O exemplo a seguir adiciona uma tarefa de script Python a um trabalho. O caminho para o arquivo do Python implantar é relativo ao arquivo de configuração no qual essa tarefa é declarada. A tarefa recebe o arquivo Python do local implantado no workspace do Azure Databricks. (As reticências indicam conteúdo omitido, por questões brevidade.)
# ...
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
# ...
# ...
Para mapeamentos adicionais que você pode definir para essa tarefa, confira tasks > spark_python_task
dentro do conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML. Confira também Tarefa de script Python para trabalhos.
Tarefa de wheel em Python
Você usa essa tarefa para executar um arquivo wheel Python.
O exemplo a seguir adiciona uma tarefa de wheel 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. (As reticências indicam conteúdo omitido, por questões brevidade.)
# ...
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
# ...
# ...
Para mapeamentos adicionais que você pode definir para essa tarefa, confira tasks > python_wheel_task
dentro do conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML. Confira também Desenvolver um arquivo wheel do Python usando Databricks Asset Bundles e Tarefa de wheel do Python para trabalhos.
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. Confira Dependências da biblioteca de Pacotes de Ativos do Databricks.
O exemplo a seguir adiciona uma tarefa do JAR a um trabalho. O caminho para o JAR é para o local do volume especificado. (As reticências indicam conteúdo omitido, por questões brevidade.)
# ...
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
# ...
# ...
Para mapeamentos adicionais que você pode definir para essa tarefa, confira tasks > spark_jar_task
dentro do conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML. Confira Tarefa JAR para trabalhos.
Tarefa de arquivo SQL
Essa tarefa é usada para executar um arquivo SQL localizado em um espaço de trabalho ou em um repositório Git remoto.
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. (As reticências indicam conteúdo omitido, por questões brevidade.)
# ...
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
# ...
# ...
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.
Para mapeamentos adicionais que você pode definir para essa tarefa, confira tasks > sql_task > file
dentro do conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML. Confira Tarefa SQL para trabalhos.
Tarefa de pipelines do Delta Live Tables
Use essa tarefa para executar um pipeline do Delta Live Tables. ConsulteO que é o Delta Live Tables?.
O exemplo a seguir adiciona uma tarefa de pipeline do Delta Live Tables a um trabalho. Essa tarefa de pipeline do Delta Live Tables executa o pipeline especificado. (As reticências indicam conteúdo omitido, por questões brevidade.)
# ...
resources:
jobs:
my-pipeline-job:
name: my-pipeline-job
# ...
tasks:
- task_key: my-pipeline-task
pipeline_task:
pipeline_id: 11111111-1111-1111-1111-111111111111
# ...
# ...
É possível obter a ID de um pipeline abrindo o pipeline no espaço de trabalho e copiando o valor da ID do Pipeline na guia detalhes do Pipeline da página de configurações do pipeline.
Para mapeamentos adicionais que você pode definir para essa tarefa, confira tasks > pipeline_task
dentro do conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML. Confira Tarefa de pipelines do Delta Live Tables para trabalhos.
Tarefa dbt
Use essa tarefa para executar um ou mais comandos dbt. Consulte Conectar-se ao dbt Cloud.
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.
# ...
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 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.
Para mapeamentos adicionais que você pode definir para essa tarefa, confira tasks > dbt_task
dentro do conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML. Confira Tarefa do dbt para trabalhos.
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 Usar um modelo de pacote padrão.
Executar tarefa de trabalho
Use essa tarefa para executar outro trabalho.
O exemplo a seguir contém uma tarefa de trabalho de execução no segundo trabalho que executa o primeiro 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}
# ...
Esse exemplo usa uma substituição para recuperar a ID do trabalho a ser executado. Para obter a ID de um trabalho da interface do usuário, abra o trabalho no workspace e copie a ID do valor da ID do trabalho na guia Detalhes do trabalho da página de configurações dos trabalhos.
Para mapeamentos adicionais que você pode definir para essa tarefa, confira tasks > run_job_task
dentro do conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML.