Projetos dbt no Snowflake

dbt Core é uma ferramenta e estrutura de transformação de dados de código aberto que você pode usar para definir, testar e implantar transformações SQL.

Com o dbt Projects on Snowflake, você pode usar os recursos familiares do Snowflake para criar, editar, testar, executar e gerenciar os projetos dbt Core; em geral, da seguinte maneira:

  1. Iniciar com um projeto dbt válido: (com dbt_project.yml, profile.yml, /models/...) Ele é armazenado em um espaço de trabalho no Snowsight ou um repositório Git que você conectou ao Snowflake. Prepare um banco de dados, esquema e warehouse com uma função que tenha os privilégios necessários.

  2. Instalar as dependências: execute o comando dbt deps em um espaço de trabalho do Snowflake, na máquina local ou no orquestrador git para preencher a pasta dbt_packages do projeto dbt.

    Para obter mais informações, consulte Compreensão das dependências de projetos dbt no Snowflake.

  3. Implantar o objeto de PROJECT DBT: crie um objeto de PROJECT DBT no nível do esquema copiando os arquivos do projeto para uma nova versão desse objeto. Para fazer isso, você pode usar o comando CREATE OR REPLACE DBT PROJECT … FROM <source> ou snow dbt deploy Snowflake CLI.

    Para obter mais informações, consulte Implantação de objetos de projeto dbt.

  4. Executar o projeto dbt no Snowflake: execute um projeto dbt Core em um objeto de projeto dbt usando o comando EXECUTE DBT PROJECT ou snow dbt execute Snowflake CLI. Para executar um projeto dbt, invoque os comandos do dbt Core para criar ou testar modelos, que são os que você agenda e orquestra.

    For more information, see EXECUTE DBT PROJECT.

  5. Agendar com tarefas do Snowflake: use as tarefas do Snowflake para agendar e orquestrar execuções de projetos dbt.

    Para obter mais informações, consulte Cronograma de execuções de projetos dbt no Snowflake.

  6. Configurar integrações de CI/CD: use os comandos da Snowflake CLI para integrar a implantação e execução aos fluxos de trabalho de CI/CD.

    Os objetos de projeto dbt oferecem suporte a comandos do Snowflake CLI que você pode usar para criar e gerenciar projetos dbt da linha de comando. Isso é útil para integrar projetos dbt aos fluxos de trabalho de engenharia de dados e pipelines CI/CD. Para obter mais informações, consulte Snowflake CLI, Integração de CI/CD com Snowflake CLI e Comandos snow dbt.

  7. Monitorar o projeto dbt: use os recursos de monitoramento do Snowflake para inspecionar, gerenciar e ajustar a execução de projetos dbt, quer você execute um objeto de projeto dbt manualmente ou use tarefas para executar objetos de projeto dbt de acordo com um cronograma.

    Para obter mais informações, consulte Monitoramento de projetos dbt no Snowflake.

Principais conceitos

  • dbt project objects: A dbt project is a directory that contains a dbt_project.yml file and a set of files that define dbt assets, such as models and sources. A DBT PROJECT is a schema-level object that contains versioned source files for your dbt project in Snowflake. You can connect a dbt project object to a workspace, or you can create and manage the object independent of a workspace. You can CREATE, ALTER, and DROP dbt project objects like other schema-level objects in Snowflake.

    Normalmente, um objeto de projeto dbt é baseado em um diretório de projeto dbt que contém um arquivo dbt-project.yml. Esse é o padrão que o Snowflake usa quando você implanta (cria) um objeto de projeto dbt de dentro de um espaço de trabalho.

    Para obter mais informações, consulte Explicação dos objetos de projeto dbt.

  • Personalização do esquema: o dbt usa a macro padrão generate_schema_name para decidir onde um modelo é criado. Você pode personalizar como o dbt cria seus modelos, sementes, instantâneos e tabelas de teste.

    Para obter mais informações, consulte Explicação sobre geração e personalização de esquemas.

  • Espaços de trabalho: os espaços de trabalho na interface da Web do Snowflake são um IDE da Web conectado ao Git, no qual você pode visualizar, testar, executar e montar um ou vários projetos dbt, vinculá-los a um objeto de projeto dbt do Snowflake para criá-lo/atualizá-lo e editar outros códigos do Snowflake em um só lugar.

    Para obter mais informações, consulte Uso de espaços de trabalho para dbt Projects on Snowflake.

  • Controle de versão: cada objeto de projeto dbt tem controle de versão. As versões residem em snow://dbt/<db>.<schema>.<project>/versions/....

    Para obter mais informações, consulte Controle de versão para objetos e arquivos de projeto dbt.