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.

dbt 프로젝트 오브젝트와 동일한 데이터베이스 및 스키마에서 EXECUTE DBT PROJECT 명령을 실행하는 작업을 생성해야 합니다.

참고

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.

작업 공간 내에서 작업 만들기

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.

작업 공간 내에서 dbt 프로젝트 오브젝트의 실행을 예약하는 작업을 생성하려면:

  1. From the dbt project menu on the right side of the project pane, under Scheduled runs, choose Create schedule.

  2. Schedule a dbt run 대화 상자에서 다음을 수행합니다.

    • :ui:`Schedule name`에 작업의 이름을 입력합니다.

    • Frequency`에 :ui:`at 한정자를 사용하여 Hourly`~:ui:`Monthly 범위의 빈도를 선택하거나 Custom`을 선택하고 Cron 표현식을 입력합니다. 작업 예약에 대한 자세한 내용은 CREATE TASK 명령 참조의 :ref:`label-create_task_schedule 섹션을 참조하세요.

    • dbt properties 아래에서:

      • Operation`에서 일정에 따라 실행할 dbt 명령을 선택합니다. 지원되는 명령 목록은 :doc:/user-guide/data-engineering/dbt-projects-on-snowflake-supported-commands` 섹션을 참조하세요.

      • Profile`에서 dbt 프로젝트의 :file:`profiles.yml 파일에 정의된 프로필 중 하나를 선택합니다.

      • :ui:`Additional flags`에서 dbt 명령에 대한 추가 `명령줄 옵션`_을 입력합니다.

  3. Create 를 선택합니다.

    Snowflake는 사용자가 지정하는 매개 변수를 사용하는 EXECUTE DBT PROJECT 명령을 실행하는 작업을 생성합니다.

작업 공간 내에서 작업 보기

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.

작업 영역 내에서 dbt 프로젝트 오브젝트와 연결된 작업을 보려면:

  • dbt 프로젝트 메뉴에서 :ui:`View schedules`를 선택한 다음, 목록에서 일정(작업)을 선택합니다.

    작업의 :ui:`Task Details`가 오브젝트 탐색기에서 열립니다. 작업 세부 정보, 작업 정의를 구성하는 SQL 문, 작업 오브젝트에 부여된 권한이 표시됩니다.

    Run History 탭을 선택하여 작업 실행 기록을 보거나, Task Graph 탭을 선택하여 :doc:`작업 그래프</user-guide/tasks-graphs>`에서 이 작업과 다른 작업의 관계를 봅니다(해당되는 경우).

    자세한 내용은 View tasks and task graphs in Snowsight 섹션을 참조하십시오.

SQL을 사용하여 작업 만들기

CREATE TASK 명령을 사용하여 EXECUTE DBT PROJECT 명령을 실행하는 작업을 만들 수 있습니다. SQL을 사용하여 다양한 dbt CLI 옵션으로 다양한 dbt 명령을 실행하는 작업을 생성하면 Snowflake에서 dbt 배포를 오케스트레이션하는 강력한 방법을 제공합니다.

다음 SQL 예에서는 6시간 간격으로 dbt run 명령을 실행하는 프로덕션 dbt 대상에 대한 작업을 생성합니다.

CREATE OR ALTER TASK my_database.my_schema.run_dbt_project
  WAREHOUSE = my_warehouse
  SCHEDULE = '6 hours'
AS
  EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project args='run --target prod';

그런 다음, 다음 SQL은 이전 run_dbt_project 작업 각각이 완료된 후 dbt test 명령을 실행하는 작업을 생성합니다.

CREATE OR ALTER TASK change_this.public.test_dbt_project
        WAREHOUSE = my_warehouse
        AFTER run_dbt_project
AS
  EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project args='test --target prod';