리소스 유형

리소스 유형 (Resource type)

--resource-type--exclude-resource-type 플래그는 dbt build, dbt clone, dbt test, dbt list 명령에서 리소스 유형을 포함하거나 제외해요. 특정 리소스가 아니라 리소스 유형 전체를 대상으로 할 때 유용해요.

출처: 문서

본문

(dbt v1.9 이상) --resource-type--exclude-resource-type 플래그는 dbt build, dbt clone, dbt test, dbt list 명령에서 리소스 유형을 포함하거나 제외해요.

dbt test로 테스트 유형 필터링

test_type 셀렉터를 사용해 dbt test로 테스트 유형을 필터링할 수 있어요 — 이 방식은 모든 엔진에서 동작해요:

  • dbt test --select test_type:unit — 단위 테스트만 실행
  • dbt test --select test_type:data — 데이터 테스트만 실행

dbt v1.9+를 사용 중이라면 --resource-type도 사용할 수 있어요:

  • dbt test --resource-type unit_test — 단위 테스트만 실행
  • dbt test --resource-type test — 데이터 테스트만 실행

더 많은 예시는 test selection examples를 참고하세요.

이 플래그들은 특정 리소스를 대상으로 하는 대신, 명령을 실행할 때 포함하거나 제외할 리소스 유형을 지정할 수 있게 해줘요.

참고--exclude-resource-type 플래그는 dbt 버전 1.8 이상에서만 사용할 수 있어요. 이전 버전을 사용 중이라면 이 플래그를 사용할 수 없어요.

사용 가능한 리소스 유형은 다음과 같아요 (dbt v1.11 이상):

  • analysis
  • exposure
  • function
  • metric
  • model
  • saved_query
  • seed
  • semantic_model
  • snapshot
  • source
  • test
  • unit_test

긍정 필터 vs 부정 필터 (Positive vs negative filters)

  • --resource-type은 긍정 필터예요 — dbt는 명령에서 선택한 리소스 유형만 실행하고 나머지 유형은 암시적으로 건너뛰어요.
  • --exclude-resource-type은 부정 필터예요 — dbt는 전체 리소스 유형 카탈로그에서 시작해 명령에서 선택한 유형을 제외해요. dbt는 그 리소스 유형들을 제외한 모든 것을 실행해요.

한 명령에서 두 플래그를 모두 사용할 수 있어요. dbt는 먼저 긍정 필터(--resource-type)를 적용한 다음 부정 필터(--exclude-resource-type)에 나열된 유형을 제거해요. 예를 들어:

dbt build --resource-type model test snapshot --exclude-resource-type snapshot

dbt 리소스 유형 목록은 상호 배타적이면서 집합적으로 완전한(MECE) 목록이에요. 즉, 어떤 --resource-type 선택도 --exclude-resource-type으로 다른 리소스 유형을 제외함으로써 동일하게 달성할 수 있고, 그 반대도 마찬가지예요.

예시 (Examples)

특정 리소스를 대상으로 하는 대신 --resource-type 또는 --exclude-resource-type 플래그를 사용해 특정 유형의 모든 리소스를 대상으로 해요: dbt build --resource-type RESOURCE_TYPE, 여기서 RESOURCE_TYPE을 포함하려는 리소스 유형으로 바꿔요.

다음은 리소스 유형을 포함하거나 제외하는 샘플 명령들이에요. --exclude-resource-type 플래그는 dbt 버전 1.8 이상에서만 사용할 수 있음을 참고하세요.

리소스 유형 포함 (Include resource types)

여러 리소스 유형 포함 — 데이터 테스트와 모델 같은 여러 리소스 유형을 빌드 프로세스에 포함하려면:

Usage

dbt build --resource-type test model

모든 스냅샷 포함 — dbt build 프로세스에 스냅샷만 포함하려면:

Usage

dbt build --resource-type snapshot

모든 저장된 쿼리 포함--resource-type 플래그로 저장된 쿼리만 포함하려면:

Usage

dbt build --resource-type saved_query

모든 데이터 테스트 포함 — 빌드 프로세스에 데이터 테스트만 포함하려면:

Usage

dbt build --resource-type test

테스트 중 데이터 테스트만 포함 (dbt v1.9 이상) — dbt test 사용 시 단위 테스트를 제외하고 데이터 테스트만 실행하려면 test_type 셀렉터를 사용해요:

Usage

dbt test --select test_type:data  -- dbt v1 and dbt v2
dbt test --resource-type test  -- dbt v1 only

리소스 유형 제외 (Exclude resource types)

여러 리소스 유형 제외 — 빌드 프로세스에서 데이터 테스트와 모델 같은 여러 리소스 유형을 제외하려면:

Usage

dbt build --exclude-resource-type test model

모든 단위 테스트 제외 — dbt build 프로세스에서 단위 테스트를 제외하려면:

Usage

dbt build --exclude-resource-type unit_test

테스트 중 단위 테스트 제외 (dbt v1.9 이상) — dbt test 사용 시 단위 테스트를 제외하려면 test_type 셀렉터로 데이터 테스트만 실행해요:

Usage

dbt test --select test_type:data  -- dbt v1 and dbt v2
dbt test --exclude-resource-type unit_test  -- dbt v1 only

더 알아보기 (Learn more)