스키마 생성 및 사용자 지정 이해하기

dbt는 기본 매크로 :code:`generate_schema_name`을 사용하여 모델이 빌드되는 위치를 결정합니다.

기본적으로 dbt 환경 또는 프로필에서 지정된 대상 스키마(target.schema)를 사용합니다. dbt Core 동작과 달리, dbt 프로젝트를 성공적으로 컴파일하거나 실행하려면 profiles.yml 파일에 지정된 대상 스키마가 dbt 프로젝트를 만들기 전에 있어야 합니다.

일반적으로 각 개발자에게는 고유한 대상 스키마(예: analytics_dev)가 있습니다. 대규모 프로젝트의 경우 사용자 지정 스키마를 설정하여 모델을 그룹화하고 dbt_project.yml 파일에서 스키마 구성 키를 지정할 수 있습니다. dbt는 이를 대상 스키마(예: <target_schema>_<custom_schema>)에 추가하여 중간 모델과 사용자 사용 모델을 분리합니다.

--Models in `models/tasty_bytes/ will be built in the "*_staging" schema
models:
  tasty_bytes:
      +schema: staging
Copy

모델의 사용자 지정 스키마는 대상 스키마를 대체하지 않습니다. 오히려, dbt는 충돌을 피하기 위해 이러한 스키마를 결합합니다. 예: analytics_dev_staging. dbt가 대상 스키마를 무시하고 사용자 지정 스키마(이 경우 staging)만 사용하는 경우 모든 개발자는 동일한 스키마에 쓰게 되어 서로 덮어쓰기 때문입니다.

다른 동작(예: 사용자 지정 스키마만 사용, 사용자 이름을 앞에 추가, 환경 접두사 추가 등)을 원할 경우 :code:`/macros/`에서 :code:`generate_schema_name`을 재정의하여 최종 스키마 이름이 빌드되는 방식을 변경합니다. 자세한 내용과 예는 dbt 설명서의 `dbt가 스키마 이름을 생성하는 방식 변경<https://docs.getdbt.com/docs/build/custom-schemas#changing-the-way-dbt-generates-a-schema-name>`_을 참조하세요.