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.
Você pode usar o Snowflake CLI para gerenciar projetos dbt com as seguintes operações:
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.
<profile_name>: target: dev outputs: dev: database: <database_name> role: <role_name> schema: <schema_name> type: snowflake
Os exemplos a seguir ilustram como usar o comando snow dbt deploy:
Implante um objeto de projeto dbt chamado
jaffle_shop:snow dbt deploy 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:snow dbt deploy jaffle_shop --source /path/to/dbt/directory --profiles-dir ~/.dbt/ --force
Implante um projeto chamado
jaffle_shopde um diretório especificado usando um diretório de perfis personalizados e habilitando as integrações de acesso externo:snow dbt deploy jaffle_shop --source /path/to/dbt/directory --profiles-dir ~/.dbt/ --default-target dev --external-access-integration dbthub-integration --external-access-integration github-integration --force
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:
snow dbt list
Liste objetos de projeto dbt no
banco de dados de ` produtos cujos nomes começam com :codenowrap:`JAFFLE:snow dbt list --like JAFFLE% --in database product
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`:
snow dbt execute jaffle_shop test
Execute o comando dbt :codenowrap:.`run` de forma assíncrona:
snow dbt execute --run-async jaffle_shop run --select @source:snowplow,tag:nightly models/export
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:
snow dbt describe my_dbt_project
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:
snow dbt drop my_dbt_project
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:- name: Execute Snowflake CLI command run: | snow dbt deploy product_pipeline snow dbt execute product_pipeline run snow dbt execute product_pipeline test