on-run-start & on-run-end

on-run-start & on-run-end

dbt build, dbt compile, dbt docs generate, dbt run, dbt seed, dbt snapshot, dbt test 등 특정 명령의 시작이나 끝에 실행할 SQL 문(또는 SQL 문 목록)을 지정하는 설정이에요. SQL을 반환하는 매크로도 호출할 수 있어요.

출처: 문서

본문

dbt_project.yml:

on-run-start: sql-statement | [sql-statement]
on-run-end: sql-statement | [sql-statement]

정의 (Definition)

다음 명령 중 하나의 시작 또는 끝에 실행할 SQL 문(또는 SQL 문 목록)이에요: dbt build, dbt compile, dbt docs generate, dbt run, dbt seed, dbt snapshot, dbt test. on-run-starton-run-end 후크는 SQL 문을 반환하는 매크로도 호출할 수 있어요.

사용 참고 (Usage notes)

on-run-end 후크에는 컨텍스트에서 사용 가능한 추가 Jinja 변수가 있어요. 자세한 내용은 공식 문서를 확인하세요.

예시 (Examples)

실행이 끝날 때 dbt가 사용하는 모든 스키마에 권한 부여

on-run-end 후크에서만 사용할 수 있는 schemas 변수를 활용해요.

dbt_project.yml:

on-run-end:
  - "{% for schema in schemas %}grant usage on schema {{ schema }} to group reporter; {% endfor %}"

매크로를 호출해 권한 부여

dbt_project.yml:

on-run-end: "{{ grant_select(schemas) }}"

추가 예시 (Additional examples)

더 깊이 있는 예시는 공식 문서에 정리되어 있어요.

더 알아보기 (Learn more)

  • 프로젝트 설정(dbt_project.yml)의 전체 목록은 Project configurations 문서를 참고하세요.
  • on-run-start/on-run-end는 사용자·그룹 권한 부여나 임시 객체 정리 같은 운영 작업을 자동화할 때 유용해요.