Schedule execution of dbt project objects on Snowflake¶
You can use Snowflake tasks to schedule execution of a dbt project object with the EXECUTE DBT PROJECT command. From a workspace, you can quickly create and schedule a user-managed task to execute a connected dbt project object. You can also use SQL commands to create a task directly. If a workspace is connected to a dbt project object, you can view all tasks that run the EXECUTE DBT PROJECT command for that object.
Você deve criar uma tarefa que executa o comando EXECUTE DBT PROJECT no mesmo banco de dados e esquema que o objeto de projeto dbt.
Nota
Serverless tasks can’t be used to execute dbt project objects. You must specify a user-managed warehouse when creating a task that executes the EXECUTE DBT PROJECT command.
Criação de uma tarefa de dentro de um espaço de trabalho¶
When you create a schedule from within a workspace, Snowflake creates a user-managed task in the same database and schema as the dbt project object. The task runs with the privileges of the task owner, but task runs are not associated with a user.
Para criar uma tarefa que agenda a execução de um objeto de projeto dbt de dentro de um espaço de trabalho:
From the dbt project menu on the right side of the project pane, under Scheduled runs, choose Create schedule.
Na caixa de diálogo Schedule a dbt run, faça o seguinte:
Em Schedule name, insira um nome para a tarefa.
Em Frequency, escolha uma frequência que varie de Hourly a Monthly, com um qualificador at, ou selecione Custom e insira uma expressão Cron. Para obter mais informações sobre como agendar tarefas, consulte SCHEDULE = ... na referência do comando CREATE TASK.
Em dbt properties:
Em Operation, selecione o comando do dbt que você quer executar em um cronograma. Para ver a lista dos comandos permitidos, consulte Comandos e sinalizadores do dbt permitidos.
Em Profile, selecione um dos perfis definidos no arquivo
profiles.ymldo projeto dbt.Em Additional flags, insira qualquer opção de linha de comando para o comando do dbt.
Escolha Create.
O Snowflake cria uma tarefa que executa o comando EXECUTE DBT PROJECT usando os parâmetros que você especifica.
Visualização de tarefa de dentro de um espaço de trabalho¶
From within a workspace, you can view all tasks in the database and schema that execute the connected dbt project object. You can choose a task to view its details in the object explorer, including the task definition, the run history of the task, and the task graph.
Para visualizar tarefas associadas a um objeto de projeto dbt de dentro de um espaço de trabalho:
No menu do projeto dbt, selecione View schedules e escolha o cronograma (tarefa) na lista.
A tela Task Details é aberta no explorador de objetos. Os detalhes da tarefa, a instrução SQL que inclui a definição da tarefa e os privilégios concedidos no objeto da tarefa são mostrados.
Escolha a guia Run History para visualizar o histórico de execuções da tarefa ou escolha a guia Task Graph para visualizar o relacionamento desta tarefa com outras tarefas em um gráfico de tarefas, se aplicável.
Para obter mais informações, consulte View tasks and task graphs in Snowsight.
Criação de tarefa usando SQL¶
Você pode usar o comando CREATE TASK para criar tarefas que executam o comando EXECUTE DBT PROJECT. O uso do SQL para criar tarefas que executam diferentes comandos do dbt com opções de CLI distintas do dbt é uma maneira poderosa de orquestrar implantações de dbt no Snowflake.
O exemplo de SQL a seguir cria uma tarefa para um destino dbt de produção que executa um comando run do dbt em um intervalo de seis horas.
Depois disso, o SQL abaixo cria uma tarefa que executa o comando test do dbt após a conclusão de cada tarefa run_dbt_project anterior.