사용자 설정
사용자 설정 (User settings)
~/.dbt/user_settings.yml은 개인 dbt 취향을 위한 사용자 범위 구성 파일이에요. 항상 ~/.dbt/에 위치해 내 머신의 모든 프로젝트에 전역으로 적용돼요. 주로 dbt login이 dbt State를 로컬에서 설정(manage_state)하기 위해 작성해요.
출처: 문서
본문
~/.dbt/user_settings.yml은 개인 dbt 취향을 위한 사용자 범위 구성 파일이에요. 항상 ~/.dbt/에 위치하므로 프로젝트를 무엇을 실행하든 profiles.yml이 어디에 있든 내 머신의 모든 프로젝트에 전역으로 적용돼요.
현재 user_settings.yml은 주로 dbt login이 dbt State를 로컬에서 구성(manage_state)하기 위해 작성해요. dbt는 시간이 지나면서 이 파일에 다른 사용자 범위 플래그를 추가할 수도 있어요.
이 파일의 설정은 프로젝트 레벨 구성(dbt_project.yml) 및 연결 구성(profiles.yml)과 별개예요. 환경 변수를 설정하거나 .env 파일을 채우는 대안으로, 프로젝트가 아니라 나에게 속하는 취향에 이 파일을 사용해요.
~/.dbt/user_settings.yml
flags:
manage_state: true
일부 dbt 명령은 이 파일에 자동으로 기록해요. 직접 편집할 수도 있어요.
dbt login을 실행하면 dbt가 user_settings.yml에 기록해요:
- dbt 플랫폼 계정으로 로그인합니다.
- dbt v2에서 CLI는 user_settings.yml에 기록하기 전에 먼저 프롬프트를 표시해요.
manage_state: true를 설정하면 모든 dbt run 또는 dbt build에서 dbt State를 로컬로 활성화해요.
user_settings.yml에 이미 값이 있으면 dbt login은 덮어쓰기 전에 프롬프트를 표시해요.
설정 우선순위 (Config precedence)
user_settings.yml은 dbt의 플래그 계층에서 가장 낮은 우선순위 레벨이에요. 더 구체적인 설정이 항상 이를 덮어써요. 플래그 우선순위에 대한 자세한 내용은 About flags (global configs)를 참고하세요.
- CLI 옵션 (최고)
- 환경 변수
- 프로젝트 범위 (dbt_project.yml)
- 사용자 범위 (~/.dbt/user_settings.yml) (최저)
예를 들어 user_settings.yml에 manage_state: true가 설정되어 있어도 dbt run --no-manage-state를 실행하면 CLI 플래그가 우선해서 dbt는 그 실행에서 dbt State를 비활성화해요.
dbt State가 로컬에는 활성화되어 있는데 dbt 플랫폼에는 없을 때
user_settings.yml에 manage_state: true가 설정되어 있는데 dbt 플랫폼 계정에서 dbt State가 활성화되어 있지 않으면, 다음 dbt run 또는 dbt build에서 dbt가 오류와 함께 실패해요. 해결하려면 다음 중 하나를 해요:
- dbt 플랫폼 계정에서 dbt State를 활성화하기
- user_settings.yml에서
manage_state: false를 설정하거나dbt run --no-manage-state를 실행해 dbt State를 로컬로 비활성화하기
더 알아보기 (Learn more)
- About flags (global configs) — 플래그 우선순위
- dbt State — 관리형 상태 기능