커맨드라인 옵션
커맨드라인 옵션 (Command line options)
일관성을 위해 CLI(커맨드라인 인터페이스) 플래그는 dbt 접두어와 서브커맨드 바로 뒤에 와야 해요. 여기에는 모든 명령에서 지원되는 "글로벌" 플래그도 포함돼요. 설정되면 CLI 플래그는 환경 변수와 프로젝트 플래그를 덮어써요.
출처: 문서
본문
일관성을 위해 CLI 플래그는 dbt 접두어와 그 서브커맨드 바로 뒤에 와야 해요. 여기에는 모든 명령에서 지원되는 "글로벌" 플래그도 포함돼요. dbt v1 또는 dbt v2의 글로벌 CLI 옵션 전체 목록은 (선택한 문서 버전에 따라) Available flags를 참고하세요. 설정되면 CLI 플래그는 환경 변수와 프로젝트 플래그를 덮어써요.
예를 들어 다음과 같이 쓰는 대신:
dbt --no-populate-cache run
이렇게 써야 해요:
dbt run --no-populate-cache
역사적으로 서브커맨드 앞에 플래그("글로벌 플래그" 같은)를 전달하는 것은 dbt Labs가 언제든 제거할 수 있는 레거시 기능이에요. 서브커맨드 앞뒤에 같은 플래그를 함께 쓰는 것은 지원하지 않아요.
불리언/비불리언 플래그 사용
불리언 플래그로 켜거나 끄거나, 특정 값을(예: 문자열) 사용하는 비불리언 플래그로 명령을 구성할 수 있어요.
비불리언 구성 — <SUBCOMMAND>를 이 구성이 적용되는 명령으로, <THIS-CONFIG>를 켜거나 끄는 구성으로, <SETTING>을 구성의 새 설정으로 바꿔요:
CLI flags
<SUBCOMMAND> --<THIS-CONFIG>=<SETTING>
예시
CLI flags
dbt run --printer-width=80
dbt test --indirect-selection=eager
불리언 구성을 켜거나 끄려면 — <SUBCOMMAND>(이 구성이 적용되는 명령) 뒤에 --<THIS-CONFIG>(켜기) 또는 --no-<THIS-CONFIG>(끄기)를 붙여요:
CLI flags
dbt <SUBCOMMAND> --<THIS-CONFIG>
dbt <SUBCOMMAND> --no-<THIS-CONFIG>
예시
CLI flags
dbt run --version-check
dbt run --no-version-check
구성 우선순위
플래그를 설정하는 방법은 여러 가지이며, 사용 사례에 따라 달라요:
- CLI 옵션: 이번 호출에 특화된 동작을 정의해요. 모든 dbt 명령에서 지원돼요.
- 환경 변수: 런타임 환경마다 다른 동작(개발 vs. 프로덕션 vs. 지속적 통합)을 정의하고, 개발 환경에서 사용자별(개인 선호에 따라) 다른 동작을 정의해요.
dbt_project.yml의 프로젝트 레벨flags: 이 프로젝트를 실행하는 모든 사람을 위한 버전 관리된 기본값을 정의해요. 또한 레거시 기능에서 마이그레이션을 관리하기 위해 동작 변경에 옵트인/아웃해요.- 사용자 설정 (
~/.dbt/user_settings.yml): 이 머신의 모든 프로젝트에 걸쳐 적용되는 개인 선호를 정의해요.dbt login이 자동으로 기록해요.
가장 구체적인 설정이 "이겨요". CLI 옵션이 최우선이고, 그다음 환경 변수, 그다음 dbt_project.yml, 마지막으로 user_settings.yml이에요. 어느 곳에도 설정하지 않으면 dbt 내부에 정의된 기본값을 사용해요.
대부분의 플래그는 세 곳 모두에서 설정할 수 있어요:
# dbt_project.yml
flags:
# set default for running this project -- anywhere, anytime, by anyone
fail_fast: true
(dbt v1.11 이상에 적용)
# set this environment variable to 'True' (bash syntax)
export DBT_ENGINE_FAIL_FAST=1
dbt run
dbt run --fail-fast # set to True for this specific invocation
dbt run --no-fail-fast # set to False
두 가지 예외 범주가 있어요:
- 파일 경로를 설정하는 플래그: 런타임 실행과 관련된 파일 경로 플래그(예:
--log-path또는--state)는dbt_project.yml에서 설정할 수 없어요. 기본값을 덮어쓰려면 CLI 옵션을 전달하거나 환경 변수((dbt v1.11 이상)DBT_ENGINE_LOG_PATH와DBT_ENGINE_STATE)를 설정해요. 프로젝트 리소스를 어디서 찾을지 알려주는 플래그(예:model-paths)는dbt_project.yml에서 설정하지만flags사전 밖의 최상위 키로 설정해요; 이런 구성은 완전히 정적이고 명령이나 실행 환경에 따라 변하지 않을 것으로 기대돼요. - 옵트인 플래그: 동작 변경에 옵트인/아웃하는 플래그는
dbt_project.yml에서 만 정의할 수 있어요. 버전 관리에 넣고 pull/merge 요청으로 마이그레이션하도록 의도됐어요. 그 값은 호출, 환경, 사용자에 걸쳐 무한정 분기하면 안 돼요.
더 알아보기 (Learn more)
- 플래그(글로벌 구성) 소개 — 글로벌 플래그 전체 목록
- 환경 변수 구성
- 프로젝트 플래그