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 처리할 때 특히 유용해요.