EXECUTE DBT PROJECT¶
Executa o objeto de projeto dbt especificado ou o projeto dbt em um espaço de trabalho do Snowflake usando o comando dbt e as opções de linha de comando especificadas.
- Consulte também:
CREATE DBT PROJECT, ALTER DBT PROJECT, DESCRIBE DBT PROJECT, DROP DBT PROJECT, SHOW DBT PROJECTS
Sintaxe¶
Executa o objeto de projeto dbt com o nome especificado.
Sintaxe da variante¶
Executa o projeto dbt que é salvo em um espaço de trabalho com o nome do espaço de trabalho especificado. O usuário proprietário do espaço de trabalho deve ser o usuário que executa esta variante de comando.
Parâmetros obrigatórios¶
nameAo executar um objeto de projeto dbt, especifica o nome do objeto de projeto dbt a ser executado.
Ao executar um projeto dbt usando a opção FROM WORKSPACE, especifica o nome do espaço de trabalho como dbt Projects on Snowflake. O nome do espaço de trabalho é sempre especificado em referência ao esquema
publicno banco de dados pessoal do usuário, que é indicado poruser$.Recomendamos colocar o nome do espaço de trabalho entre aspas duplas porque os nomes do espaço de trabalho diferenciam maiúsculas de minúsculas e podem conter caracteres especiais.
O exemplo a seguir mostra uma referência de nome de espaço de trabalho:
user$.public."My dbt Project Workspace"
Parâmetros opcionais¶
ARGS = '[ dbt_command ] [ --dbt_cli_option option_value_1 [ ... ] [ ... ] ]'Specifies the dbt command and supported command-line options to use when the dbt project object executes. This is a literal string that must conform to the syntax and requirements of dbt CLI commands.
If no value is specified, the dbt project object executes with the dbt command and command-line options specified in the dbt project object definition. If you specify dbt CLI options without specifying a dbt command, the dbt
runcommand executes by default.Padrão: sem valor
DBT_VERSION = 'version_number'Specifies a version for the dbt project object.
Default: When you execute a dbt project object, the system uses the default version you specified when creating the dbt project object. If none was specified, the system uses
1.9.4by default.Para obter mais informações, consulte Versões do dbt Core compatíveis com o dbt Projects on Snowflake.
PROJECT_ROOT = 'subdirectory_path'Especifica o caminho do subdiretório para o arquivo
dbt_project.ymldentro do objeto de projeto dbt ou espaço de trabalho. Esse parâmetro só é suportado ao executar um projeto dbt usando a opção FROM WORKSPACE.If no value is specified, the dbt project object executes with the
dbt_project.ymlfile in the root directory of the dbt project object.Se não existir um arquivo
dbt_project.ymlno diretório raiz ou no subdiretório PROJECT_ROOT, ocorrerá um erro.Padrão: sem valor
Saída¶
Coluna |
Descrição |
|---|---|
|
|
|
Any exception message returned by the dbt project execution. If the dbt project object executes successfully, the string |
|
A saída padrão retornada pela execução do projeto dbt. |
|
O URL do arquivo de saída que contém os arquivos de saída da execução do projeto dbt. Isso inclui arquivos de log e artefatos que o dbt grava no diretório |
Requisitos de controle de acesso¶
Uma função usada para executar esse comando SQL deve ter pelo menos um dos seguintes privilégios, no mínimo:
Privilégio |
Objeto |
|---|---|
USAGE |
Projeto dbt |
A operação em um objeto de esquema requer pelo menos um privilégio no banco de dados pai e um privilégio no esquema pai.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Nota
O comando do dbt especificado em EXECUTE DBT PROJECT é executado com os privilégios da role especificada no bloco outputs do arquivo profiles.yml dos projetos. As operações são mais restritas apenas aos privilégios concedidos ao usuário Snowflake que chama EXECUTE DBT PROJECT. Tanto o usuário quanto a função especificados devem ter os privilégios necessários para usar o warehouse, realizar operações no database e no schema especificados no arquivo :file:`profiles.yml`do projeto e executar operações em qualquer outro objeto Snowflake especificado pelo modelo dbt.
Exemplos¶
Comando de execução padrão com destino e modelos especificados
Comando de teste explícito com destino e modelos especificados
Comando de execução explícito com modelos downstream especificados
Comando de execução padrão com destino e modelos especificados¶
Execução de um comando run do dbt visando o perfil dev no arquivo dbt_project.yml no diretório raiz do objeto de projeto dbt e selecionando três modelos do projeto DAG. Nenhum comando run está especificado explicitamente e é executado por padrão.
Comando de teste explícito com destino e modelos especificados¶
Execução de um comando test do dbt direcionado ao perfil prod no arquivo dbt_project.yml no diretório raiz do objeto do projeto dbt e selecionando três modelos do projeto DAG.
Comando de execução explícito com modelos downstream especificados¶
Execução de um comando run do dbt direcionado ao perfil dev no arquivo dbt_project.yml e selecionando todos os modelos downstream do modelo simple_customers usando a notação + do dbt.
Execute and test dbt project objects using production tasks¶
Criação de uma tarefa para um destino de dbt de produção que executa um comando run do dbt em um intervalo de seis horas. Em seguida, crie uma tarefa que execute o comando test do dbt após cada tarefa run do dbt ser concluída. O comando EXECUTE DBT PROJECT para cada tarefa tem como alvo o perfil prod no arquivo dbt_project.yml no diretório raiz do objeto de projeto dbt.
Substituir a versão fixada do projeto no momento da execução para testes ou necessidades temporárias¶
my_dbt_project is pinned to 1.9.4. This execution overrides the dbt project object’s default 1.9.4 version: