alias

alias

모델, 데이터 테스트, 스냅샷, seed에 사용자 정의 별칭을 지정해 데이터베이스에서 더 친숙한 이름을 부여하는 설정이에요.

출처: 문서

본문

모델, 데이터 테스트, 스냅샷, seed에 사용자 정의 별칭을 지정해 데이터베이스에서 더 친숙한 이름을 부여해요.

모델 별칭 (Models)

프로젝트 YAML 파일(dbt_project.yml), property YAML 파일(예: models/properties.yml) config, 또는 SQL 파일 config 블록에서 모델의 사용자 정의 별칭을 지정해요.

예를 들어 sales_total을 계산하는 모델이 있고 더 친숙한 별칭을 주고 싶다면 다음 예시처럼 별칭을 지정할 수 있어요.

프로젝트 레벨에서 sales_total 모델의 기본 별칭을 설정하는 dbt_project.yml 예시:

dbt_project.yml:

models:
  your_project:
    sales_total:
      +alias: sales_dashboard

중앙 집중식 구성에 유용한 models/properties.yml 파일 메타데이터에 별칭을 지정하는 예시:

models/properties.yml:

models:
  - name: sales_total
    config:
      alias: sales_dashboard

models/sales_total.sql 파일에서 직접 별칭을 지정하는 예시:

models/sales_total.sql:

{{ config(
    alias = "sales_dashboard"
) }}

그러면 데이터베이스에서 기본값 analytics.finance.sales_total 대신 analytics.finance.sales_dashboard가 반환돼요.

Seed 별칭 (Seeds)

프로젝트 파일(dbt_project.yml)이나 property 파일 config(예: seeds/properties.yml)에서 seed의 별칭을 구성해요. product_categories라는 seed를 categories_data로 별칭 지정하는 예시예요.

프로젝트 레벨 dbt_project.yml에서:

dbt_project.yml:

seeds:
  your_project:
    product_categories:
      +alias: categories_data

seeds/properties.yml 파일에서:

seeds/properties.yml:

seeds:
  - name: product_categories
    config:
      alias: categories_data

이렇게 하면 데이터베이스에서 analytics.finance.categories_data라는 이름이 반환돼요.

두 번째 예시로, seeds/country_codes.csv에 있는 seed는 country_mappings라는 이름의 테이블로 빌드돼요.

dbt_project.yml:

seeds:
  jaffle_shop:
    country_codes:
      +alias: country_mappings

스냅샷 별칭 (Snapshots)

프로젝트 YAML 파일(dbt_project.yml), property YAML 파일(예: snapshots/snapshot_name.yml), 또는 모델 SQL 파일 config 블록에서 스냅샷의 별칭을 구성해요. your_snapshot이라는 스냅샷을 the_best_snapshot으로 별칭 지정하는 예시예요.

프로젝트 레벨 dbt_project.yml에서:

dbt_project.yml:

snapshots:
  your_project:
    your_snapshot:
      +alias: the_best_snapshot

snapshots/snapshot_name.yml 파일에서:

snapshots/snapshot_name.yml:

snapshots:
  - name: your_snapshot_name
    config:
      alias: the_best_snapshot

snapshots/your_snapshot.sql 파일에서:

snapshots/your_snapshot.sql:

{{ config(
    alias = "the_best_snapshot"
) }}

이렇게 하면 데이터베이스에서 analytics.finance.the_best_snapshot으로 스냅샷이 빌드돼요.

데이터 테스트 별칭 (Data tests)

프로젝트 YAML 파일(dbt_project.yml), property YAML 파일(예: models/properties.yml), 또는 모델 SQL 파일 config 블록에서 데이터 테스트의 별칭을 구성해요. order_id라는 unique 데이터 테스트를 unique_order_id_test로 별칭 지정하는 예시예요.

available in v1.10.5 and higher. Older versions can set the <argument_name> as the top-level property.

tests/unique_order_id_test.sql 파일에서:

tests/unique_order_id_test.sql:

{{ config(
    alias = "unique_order_id_test",
    severity = "error"
) }}

store_failures_as를 사용하면 데이터베이스에서 analytics.dbt_test__audit.orders_order_id_unique_order_id_test라는 이름이 반환돼요.

정의 (Definition)

모델, 데이터 테스트, 스냅샷, seed에 사용자 정의 별칭을 선택 사항으로 지정해요. dbt가 데이터베이스에 relation(table/view)을 만들 때 {{ database }}.{{ schema }}.{{ identifier }} 형태, 예를 들어 analytics.finance.payments로 생성해요.

dbt의 기본 동작은 다음과 같아요:

  • 사용자 정의 별칭이 지정되지 않으면 relation의 identifier는 리소스 이름(즉 파일 이름)이 돼요.
  • 사용자 정의 별칭이 지정되면 relation의 identifier는 {{ alias }} 값이 돼요.

참고: ephemeral 모델에서는 dbt가 항상 CTE identifier에 __dbt__cte__ 접두사를 적용해요. 즉 ephemeral 모델에 별칭이 설정되면 CTE identifier는 __dbt__cte__{{ alias }}가 되고, 별칭이 없으면 __dbt__cte__{{ filename }}이 돼요.

더 알아보기 (Learn more)

  • relation의 identifier 생성 방식을 변경하는 방법에 대한 자세한 내용은 Using Aliases 문서를 참고하세요.
  • 리소스 설정 전체 목록은 Resource configurations 문서를 참고하세요.