Snowflake에서 dbt 프로젝트 실행 예약¶
Snowflake 작업</user-guide/tasks-intro>`을 사용하여 :doc:/sql-reference/sql/execute-dbt-project` 명령으로 |sf-dbt|의 실행을 예약할 수 있습니다. |sf-dbt|를 위한 작업 공간을 사용하여 사용자 관리 작업을 빠르게 생성하고 예약할 수 있습니다. SQL 명령을 사용하여 작업을 생성할 수도 있습니다. 작업 공간이 dbt 프로젝트 오브젝트에 연결된 경우, 작업 공간 내에서 해당 프로젝트에 대해 EXECUTE DBT PROJECT 명령을 실행하는 모든 작업을 볼 수 있습니다.
dbt 프로젝트 오브젝트와 동일한 데이터베이스 및 스키마에서 EXECUTE DBT PROJECT 명령을 실행하는 작업을 생성해야 합니다.
작업 공간 내에서 작업 만들기¶
|sf-dbt|용 작업 공간 내에서 일정을 생성하는 경우, Snowflake는 dbt 프로젝트 오브젝트와 동일한 데이터베이스 및 스키마에 저장되는 사용자 관리 작업을 생성하여 일정을 생성합니다. 작업은 작업 소유자의 권한으로 실행되지만, 작업 실행은 사용자와 연결되지 않습니다.
작업 공간 내에서 dbt 프로젝트 오브젝트의 실행을 예약하는 작업을 생성하려면:
작업 공간 편집기의 오른쪽 상단에 있는 dbt 프로젝트 메뉴의 :ui:`Scheduled runs`에서 :ui:`Create schedule`를 선택합니다.
Schedule a dbt run 대화 상자에서 다음을 수행합니다.
:ui:`Schedule name`에 작업의 이름을 입력합니다.
Frequency`에 :ui:`at 한정자를 사용하여 Hourly`~:ui:`Monthly 범위의 빈도를 선택하거나 Custom`을 선택하고 Cron 표현식을 입력합니다. 작업 예약에 대한 자세한 내용은 CREATE TASK 명령 참조의 :ref:`label-create_task_schedule 섹션을 참조하세요.
dbt properties 아래에서:
Create 를 선택합니다.
Snowflake는 사용자가 지정하는 매개 변수를 사용하는 EXECUTE DBT PROJECT 명령을 실행하는 작업을 생성합니다.
작업 공간 내에서 작업 보기¶
|sf-dbt|용 작업 공간 내에서 작업 공간에 연결된 dbt 프로젝트 오브젝트에 대해 EXECUTE DBT PROJECT가 수행된 데이터베이스 및 스키마의 모든 작업을 볼 수 있습니다. 작업을 선택하여 오브젝트 탐색기에서 작업 정의, 작업의 실행 기록, 작업 그래프 등 세부 정보를 볼 수 있습니다.
작업 영역 내에서 dbt 프로젝트 오브젝트와 연결된 작업을 보려면:
dbt 프로젝트 메뉴에서 :ui:`View schedules`를 선택한 다음, 목록에서 일정(작업)을 선택합니다.
작업의 :ui:`Task Details`가 오브젝트 탐색기에서 열립니다. 작업 세부 정보, 작업 정의를 구성하는 SQL 문, 작업 오브젝트에 부여된 권한이 표시됩니다.
Run History 탭을 선택하여 작업 실행 기록을 보거나, Task Graph 탭을 선택하여 :doc:`작업 그래프</user-guide/tasks-graphs>`에서 이 작업과 다른 작업의 관계를 봅니다(해당되는 경우).
자세한 내용은 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';