리소스 경로

리소스 경로 (Resource path)

<resource-path> 표기는 문서에서 dbt_project.yml 파일로 모델, 시드, 스냅샷, 테스트, 소스 같은 리소스 유형을 구성하는 방법을 설명할 때 쓰여요. 중첩된 딕셔너리 키로, 그 리소스 유형의 디렉터리나 이름으로 된 단일 인스턴스에 이르는 경로를 나타내요.

출처: dbt 공식 문서

본문

이 표기는 그 리소스 유형의 디렉터리 또는 이름으로 된 그 리소스 유형의 단일 인스턴스에 이르는 경로를 제공하는 중첩된 딕셔너리 키들이에요.

resource_type:
  project_name:
    directory_name:
      subdirectory_name:
        instance_of_resource_type (by name):
          ...

예시

다음 예시들은 대부분 모델과 소스에 대한 것이지만, 같은 개념이 시드, 스냅샷, 테스트, 소스와 다른 리소스 유형에도 적용돼요.

모든 모델에 설정 적용

모든 모델에 설정을 적용하려면 <resource-path>를 사용하지 마세요.

dbt_project.yml

models:
  +enabled: false # this will disable all models (not a thing you probably want to do)

여러분 프로젝트의 모든 모델에 설정 적용

여러분 프로젝트의 모든 모델에만 설정을 적용하려면 프로젝트 이름<resource-path>로 사용해요.

dbt_project.yml

name: jaffle_shop

models:
  jaffle_shop:
    +enabled: false # this will apply to all models in your project, but not any installed packages

서브디렉터리의 모든 모델에 설정 적용

프로젝트의 서브디렉터리(예: staging)의 모든 모델에 설정을 적용하려면, 프로젝트 이름 아래에 디렉터리를 중첩해요.

dbt_project.yml

name: jaffle_shop

models:
  jaffle_shop:
    staging:
      +enabled: false # this will apply to all models in the `staging/` directory of your project

다음 프로젝트에서는 이 설정이 staging/ 디렉터리의 모델에 적용되지만 marts/ 디렉터리에는 적용되지 않아요.

.
├── dbt_project.yml
└── models
    ├── marts
    └── staging

특정 모델에 설정 적용

특정 모델에 설정을 적용하려면 프로젝트 이름 아래에 전체 경로를 중첩해요. /staging/stripe/payments.sql에 있는 모델의 경우:

dbt_project.yml

name: jaffle_shop

models:
  jaffle_shop:
    staging:
      stripe:
        payments:
          +enabled: false # this will apply to only one model

다음 프로젝트에서는 이 설정이 payments 모델에만 적용돼요.

.
├── dbt_project.yml
└── models
    ├── marts
    │   └── core
    │       ├── dim_customers.sql
    │       └── fct_orders.sql
    └── staging
        ├── jaffle_shop
        │   ├── customers.sql
        │   └── orders.sql
        └── stripe
            └── payments.sql

서브폴더에 중첩된 소스에 설정 적용

서브폴더의 YAML 파일에 중첩된 소스 테이블을 비활성화하려면, dbt_project.yml 파일에서 해당 YAML 파일로 가는 경로 안의 서브폴더(들), 소스 이름, 그리고 테이블 이름을 모두 제공해야 해요.

다음 예시는 서브폴더의 YAML 파일에 중첩된 소스 테이블을 비활성화하는 방법을 보여줘요.

dbt_project.yml

sources:
  your_project_name:
    subdirectory_name:
      source_name:
        source_table_name:
          +enabled: false

더 알아보기 (Learn more)