Tarefa dbt para jobs
Use a tarefa dbt para configurar e executar projetos dbt no Databricks.
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 CATALOGeUSE SCHEMAno catálogo e esquema de destino, eSELECTouMODIFYnos 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:
-
No menu suspenso Tipo , selecione
dbt. -
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.
-
-
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.
-
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.
-
Especifique um **Catálogo do Warehouse**. Se não definida, o default do workspace é usado.
-
Especifique um **Esquema de Warehouse**. Por padrão, o esquema
defaulté usado. -
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.
-
Especifique uma
dbt-databricksversã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 eAdicione uma biblioteca PyPI para pin uma versão.
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.
-
(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.
-
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 |
|---|---|
|
|
|
|
|
|
|
|
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
- Para um exemplo de como recuperar a saída e os artefatos de uma tarefa dbt após uma execução, veja Acessar saída e artefatos de tarefa dbt.
- Para depurar o SQL que o dbt gera, use a história de consultas do SQL warehouse. Consulte História de consultas.