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-start와 on-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는 사용자·그룹 권한 부여나 임시 객체 정리 같은 운영 작업을 자동화할 때 유용해요.