Pular para o conteúdo principal

Tarefa dbt para jobs

Use a tarefa dbt para configurar e executar projetos dbt no Databricks.

importante

Quando as tarefas dbt executam, a Databricks injeta o DBT_ACCESS_TOKEN para o principal configurado no campo **Executar como**.

Requisitos

O principal configurado no campo **Execução como** deve ter:

  • PODE USAR no SQL warehouse que faz a execução de SQL gerado pelo dbt.
  • Os privilégios do Unity Catalog que seus modelos dbt exigem. Por exemplo, USE CATALOG e USE SCHEMA no catálogo e esquema de destino, e SELECT ou MODIFY nos objetos que os modelos leem e escrevem.

Configure uma tarefa dbt

Adicione uma dbt tarefa na **tab** **Tarefas** na interface de usuário de Jobs, fazendo o seguinte:

  1. No menu suspenso Tipo , selecione dbt.

  2. No menu suspenso Source , você pode selecionar Workspace para usar um projeto dbt localizado em uma pasta de workspace do Databricks ou Git provider para um projeto localizado em um repositório Git remoto.

    • Se você selecionar **Workspace**, use o navegador de arquivos fornecido para selecionar o **Diretório do projeto**.

    • Se você selecionar **provedor Git**, clique em **Editar** para inserir as informações do Git para o repositório do projeto. Veja Usar Git com Jobs do Lakeflow.

      Se seu projeto não estiver no diretório raiz do repo, use o campo **Diretório do projeto** para especificar o caminho até ele.

  3. As caixas de texto dos comandos dbt usam como default os comandos dbt deps , dbt seed e dbt execução. Os comandos fornecidos são executados em ordem sequencial. Adicionar, remover ou editar esses campos conforme necessário para o seu fluxo de trabalho. Consulte comandos dbt.

  4. Em **SQL warehouse**, selecione um SQL warehouse para executar o SQL gerado pelo dbt. O menu suspenso **SQL warehouse** mostra apenas SQL warehouses serverless e pro.

  5. Especifique um **Catálogo do Warehouse**. Se não definida, o default do workspace é usado.

  6. Especifique um **Esquema de Warehouse**. Por padrão, o esquema default é usado.

  7. Escolha compute da CLI do dbt para executar o dbt Core. A Databricks recomenda usar o compute de jobs configurado com um cluster de nó único.

  8. Especifique uma dbt-databricks versão para a tarefa no campo **Bibliotecas dependentes**.

    Por default, o campo Bibliotecas dependentes é preenchido com dbt-databricks>=1.0.0,<2.0.0. Exclua esta configuração e Ícone de mais. Adicione uma biblioteca PyPI para pin uma versão.

nota

A Databricks recomenda fixar suas tarefas dbt a uma versão específica do pacote dbt-databricks para garantir que a mesma versão seja usada para execuções de desenvolvimento e produção. A Databricks recomenda a versão 1.6.0 ou superior do pacote dbt-databricks.

  1. (Opcional) Para configurar novas tentativas, duração da execução ou limites de backlog de transmissão, ou notificações, consulte Configurações avançadas de tarefa.

  2. Clique em Salvar tarefa .

Para editar, clonar, desativar ou excluir esta tarefa, consulte Configurar e editar tarefas em Lakeflow Jobs.

comandos dbt

O campo **comandos dbt** permite especificar comandos para executar usando a interface de linha de comando (CLI) do dbt. Para detalhes completos sobre a CLI do dbt, consulte a documentação do dbt.

Consulte a documentação do dbt para comandos compatíveis com a versão especificada do dbt.

Passe opções para comandos dbt

A sintaxe de seleção de nó dbt permite que você especifique recursos a serem incluídos ou excluídos em uma execução específica. Comandos como run e build aceitam sinalizadores, incluindo --select e --exclude. Consulte os documentos de visão geral da sintaxe dbt para obter uma descrição completa.

Sinalizadores de configuração adicionais controlam como o dbt executa seu projeto. Consulte a coluna **Opções de linha de comando** na documentação oficial do dbt para obter uma lista de flags disponíveis.

Algumas flags aceitam argumentos posicionais. Alguns argumentos para flags são strings. Consulte a documentação do dbt para exemplos e explicações.

Passar variáveis para comandos dbt

Use o --vars sinalizador para passar valores estáticos ou dinâmicos para comandos nos campos **comandos dbt**.

Você passa um JSON delimitado por aspas simples para --vars. Todas as chaves e valores no JSON devem ser delimitados por aspas duplas, como no exemplo a seguir:

dbt run --vars '{"volume_path": "/Volumes/path/to/data", "date": "2024/08/16"}'

Exemplos de comandos dbt parametrizados

É possível referenciar valores de tarefa, parâmetros de Job e parâmetros de Job dinâmicos ao trabalhar com dbt. Os valores são substituídos como texto sem formatação no campo **comandos dbt** antes da execução do comando. Para obter informações sobre a passagem de valores entre tarefas ou referenciar metadados de Jobs, consulte Parametrizar Jobs.

Estes exemplos presumem que os seguintes parâmetros de job foram configurados:

Nome do parâmetro

Valor de parâmetro

volume_path

/Volumes/path/to/data

table_name

my_table

select_clause

--select "tag:nightly"

dbt_refresh

--full-refresh

Nome do parâmetro

Valor de parâmetro

volume_path

/Volumes/path/to/data

table_name

my_table

select_clause

--select "tag:nightly"

dbt_refresh

--full-refresh

Os exemplos a seguir mostram maneiras válidas de referenciar estes parâmetros:

dbt run '{"volume_path": "{{job.parameters.volume_path}}"}'
dbt run --select "{{job.parameters.table_name}}"
dbt run {{job.parameters.select_clause}}
dbt run {{job.parameters.dbt_refresh}}
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}' {{job.parameters.dbt_refresh}}

Você também pode fazer referência a parâmetros dinâmicos e valores de tarefa, como nos exemplos a seguir:

dbt run --vars '{"date": "{{job.start_time.iso_date}}"}'
dbt run --vars '{"sales_count": "{{tasks.sales_task.values.sales_count}}"}'

Recursos adicionais