Pular para o conteúdo principal

Adicionar tarefa ao trabalho em Databricks ativo Bundles

Este artigo fornece exemplos de vários tipos de tarefas que o senhor pode adicionar ao Databricks Job em Databricks ativo Bundles. Veja o que são Databricks ativo Bundles?

A maioria dos tipos de tarefa de trabalho tem parâmetros específicos de tarefa entre suas configurações suportadas, mas o senhor também pode definir parâmetros de trabalho que são passados para a tarefa. As referências de valores dinâmicos são suportadas para os parâmetros do trabalho, o que permite passar valores específicos para a execução do trabalho entre as tarefas. Consulte O que é uma referência de valor dinâmico?.

nota

O senhor pode substituir as configurações de tarefa do trabalho. Consulte Substituir configurações de tarefa de trabalho em Databricks ativo Bundles.

dica

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.

Notebook tarefa

O senhor usa essa tarefa para executar um Notebook.

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.

YAML
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 obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > notebook_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML. Consulte Notebook tarefa for Job.

Tarefa de condição if/else

O site condition_task permite que o senhor 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 condição tarefa não requer um clustering para ser executada e não oferece suporte a novas tentativas ou notificações. Para obter mais informações sobre a tarefa if/else, consulte Adicionar lógica de ramificação a um trabalho com a tarefa If/else.

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.

YAML
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

Para obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > condition_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML.

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.

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.

YAML
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

Para obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > for_each_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML.

Python tarefa do script

O senhor usa essa tarefa para executar um arquivo Python.

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.

YAML
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 obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > spark_python_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML. Consulte também Python script tarefa for Job.

Python wheel tarefa

O senhor usa essa tarefa para executar um arquivo Python wheel.

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.

YAML
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 obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > python_wheel_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML. Consulte também Desenvolver um arquivo Python wheel usando Databricks ativo Bundles e Python wheel tarefa for Job.

JAR tarefa

O senhor usa essa tarefa para executar a JAR. O senhor pode fazer referência a uma biblioteca local JAR ou a uma biblioteca em workspace, a um volume Unity Catalog ou a um local de armazenamento em nuvem externo. Consulte Databricks ativo Bundles biblioteca dependencies.

O exemplo a seguir adiciona uma tarefa JAR a um trabalho. O caminho para o JAR é para o local do volume especificado.

YAML
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 obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > spark_jar_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML. Consulte JAR tarefa for Job.

SQL arquivo tarefa

O senhor usa essa tarefa para executar um arquivo SQL localizado em um repositório workspace ou em um repositório Git remoto.

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.

YAML
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 o ID do SQL warehouse, abra a página de configurações do SQL warehousee copie o ID encontrado entre parênteses após o nome do depósito no campo Name (Nome) na Visão geral do tab.

Para obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > sql_task > file no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML. Consulte SQL tarefa for Job.

DLT pipeline tarefa

O senhor usa essa tarefa para executar um DLT pipeline. Consulte O que é DLT? .

O exemplo a seguir adiciona um DLT pipeline tarefa a um trabalho. Este DLT pipeline tarefa executar o pipeline especificado.

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

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.

Para obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > pipeline_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML. Consulte DLT pipeline tarefa for Job.

tarefa dbt

O senhor usa essa tarefa para executar um ou mais dbt comandos. Consulte Conectar-se ao dbt Cloud.

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.

YAML
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 o ID do SQL warehouse, abra a página de configurações do SQL warehousee copie o ID encontrado entre parênteses após o nome do depósito no campo Name (Nome) na Visão geral do tab.

Para obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > dbt_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML. Consulte dbt tarefa for Job.

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.

execução Job tarefa

O senhor usa essa tarefa para executar outro trabalho.

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

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

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.

Para obter mapeamentos adicionais que o senhor pode definir para essa tarefa, consulte tasks > run_job_task no payload da solicitação da operação create Job, conforme definido em POST /api/2.1/Job/create na referência REST API , expresso no formato YAML.