Gerenciar dbt Projects on Snowflake usando Snowflake CLI¶
Nota
Os recursos de dbt Projects on Snowflake no Snowflake CLI estão disponíveis apenas na versão 3.13.0 ou posterior.
You can use Snowflake CLI to manage dbt project objects with the following operations:
Implantação de um objeto de projeto dbt¶
O comando snow dbt deploy carrega arquivos locais para uma área de preparação temporária e cria um novo objeto de projeto dbt, atualiza-o criando uma nova versão ou recria-o por completo. Um projeto dbt válido deve conter dois arquivos:
dbt_project.yml: Um arquivo de configuração dbt padrão que especifica o perfil a ser utilizado.profiles.yml: Uma definição de perfil de conexão dbt referenciada emdbt_project.yml.profiles.yamldeve definir o banco de dados, a função, o esquema e o tipo.Por padrão, dbt Projects on Snowflake usa o esquema de destino (
target.schema) especificado em seu perfil ou ambiente dbt. Ao contrário do comportamento do dbt Core, o esquema de destino especificado no arquivoprofiles.ymldeve existir antes de você criar o projeto dbt para que ele seja compilado ou executado com sucesso.
Os exemplos a seguir ilustram como usar o comando snow dbt deploy:
Implante um objeto de projeto dbt chamado
jaffle_shop:Implante um projeto chamado
jaffle_shopde um diretório especificado e crie ou adicione uma nova versão, dependendo se o objeto de projeto dbt já existe ou não:Deploy a project named
jaffle_shopfrom a specified directory using a custom profiles directory, a specific dbt version, and enabling external access integrations:Deploy a project named
jaffle_shopand set a specific version for the dbt project object:
Listar todos os objetos de projeto dbt disponíveis¶
O comando snow dbt list lista todos os objetos de projeto dbt disponíveis no Snowflake.
Os exemplos a seguir ilustram como usar o comando snow dbt list:
Listar todos os objetos de projeto dbt disponíveis:
Liste objetos de projeto dbt no
banco de dados de ` produtos cujos nomes começam com :codenowrap:`JAFFLE:
Execução de um comando de objeto de projeto dbt¶
O comando snow dbt execute executa um dos seguintes comandos dbt em um objeto de projeto dbt do Snowflake:
Para obter mais informações sobre o uso dos comandos dbt, consulte a Referência de comandos dbt.
Os exemplos a seguir ilustram como usar o comando snow dbt execute:
Execute o comando dbt :codenowrap:.`test`:
Execute o comando dbt :codenowrap:.`run` de forma assíncrona:
Execute the
rundbt command with a specific dbt version:
Descrição de um objeto de projeto dbt¶
O comando snow dbt describe descreve um objeto de projeto dbt no Snowflake.
O exemplo a seguir descreve o objeto de projeto dbt chamado my_dbt_project no Snowflake:
Descarte de um objeto de projeto dbt¶
O comando snow dbt drop exclui um objeto de projeto dbt no Snowflake.
O exemplo a seguir exclui o objeto de projeto dbt chamado my_dbt_project no Snowflake:
Use os comandos snow dbt em um fluxo de trabalho CI/CD¶
Nota
Ao criar fluxos de trabalho de CI/CD, você só precisa do seu servidor git, como Github e Snowflake CLI. Um objeto de repositório Git não é necessário.
Você pode executar comandos dbt com Snowflake CLI para construir pipelines CI/CD. Esses pipelines são comumente usados para testar novo código, como novas solicitações de pull, ou para atualizar aplicativos de produção sempre que algo é fundido na ramificação principal.
Para criar um fluxo de trabalho CI/CD com comandos dbt snow, siga estes passos:
Prepare seu projeto dbt:
Baixe seu projeto dbt ou inicie um novo.
Certifique-se de que o diretório principal do projeto contenha os arquivos
dbt_project.ymleprofiles.yml.Verifique se o nome do perfil referenciado em
dbt_project.ymlé definido emprofiles.yml.Nota
Os objetos dbt project do Snowflake não precisam de senhas, portanto, se
profiles.ymlcontiver qualquer uma, a implantação será interrompida até que elas sejam removidas.
Configuração de ação de CLI GitHub do Snowflake
Siga as orientações para configuração de Ação do GitHub para a CLI do Snowflake e verificação de sua conexão para o Snowflake.
Defina seu fluxo de trabalho.
Determine quais comandos seu fluxo de trabalho precisa executar com base nas necessidades de sua organização. O exemplo a seguir ilustra um fluxo de trabalho CI que atualiza a versão do objeto de projeto dbt denominado
product_pipelinecom novos arquivos, executa as transformações e, finalmente, executa testes: