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:
Deploying a dbt project object¶
The snow dbt deploy command uploads local files to a temporary stage and creates a new dbt project object, updates it by making a new version, or completely recreates it. A valid dbt project must contain two files:
dbt_project.yml: A standard dbt configuration file that specifies the profile to use.profiles.yml: A dbt connection profile definition referenced indbt_project.yml.profiles.yamlmust define the database, role, schema, and type.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
Deploy a project named
jaffle_shopfrom a specified directory and create or add a new version depending on whether the dbt project object already exists: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
Listing all available dbt project objects¶
The snow dbt list command lists all available dbt project objects on 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
Executing a dbt project object command¶
The snow dbt execute command executes one of the following dbt commands on a Snowflake dbt project object:
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
Describing a dbt project object¶
The snow dbt describe command describes a dbt project object on Snowflake.
O exemplo a seguir descreve o objeto de projeto dbt chamado my_dbt_project no Snowflake:
snow dbt describe my_dbt_project
Dropping a dbt project object¶
The snow dbt drop command deletes a dbt project object on Snowflake.
O exemplo a seguir exclui o objeto de projeto dbt chamado my_dbt_project no Snowflake:
snow dbt drop my_dbt_project
Use snow dbt commands in a CI/CD workflow¶
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