dispatch
dispatch (config)
특정 네임스페이스의 매크로에 대해 dispatch 검색 위치를 재정의하는 설정이에요. 지정하지 않으면 기본적으로 루트 프로젝트에서 먼저 찾고, 그다음 macro_namespace로 명명된 패키지의 구현을 찾아요.
출처: 문서
본문
dbt_project.yml:
dispatch:
- macro_namespace: packagename
search_order: [packagename]
- macro_namespace: packagename
search_order: [packagename]
정의 (Definition)
특정 네임스페이스의 매크로에 대해 dispatch 검색 위치를 선택 사항으로 재정의해요. 지정하지 않으면 dispatch는 기본적으로 루트 프로젝트에서 먼저 찾고, 그다음 macro_namespace로 명명된 패키지의 구현을 찾아요.
예시 (Examples)
dbt_utils 패키지를 spark_utils 호환성 패키지로 "shim" 처리하고 싶어요.
dbt_project.yml:
dispatch:
- macro_namespace: dbt_utils
search_order: ['spark_utils', 'dbt_utils']
dbt_utils 패키지의 특정 매크로를 루트 프로젝트(my_root_project)에서 재구현했고, 내 버전이 우선 적용되길 원해요. 그렇지 않으면 dbt_utils의 버전으로 대체돼요.
참고: 이것이 기본 동작이에요. 그 검색 순서를 명시적으로 표현하고 싶으면 다음과 같이 작성할 수도 있어요.
dbt_project.yml:
dispatch:
- macro_namespace: dbt_utils
search_order: ['my_root_project', 'dbt_utils']
더 알아보기 (Learn more)
- 프로젝트 설정(
dbt_project.yml)의 전체 목록은 Project configurations 문서를 참고하세요. dispatch는 어댑터 간 호환성 매크로를 정리할 때 자주 쓰이고,spark_utils와 같은 호환성 패키지로 패키지를 shim 처리할 때 특히 유용해요.