Compartilhar via


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.