지원되는 dbt 명령과 플래그

지원되는 dbt 명령과 플래그

다음 표는 dbt Projects on Snowflake에서 지원되는 dbt 명령을 보여줘요. 여기에 나열되지 않은 dbt 명령은 지원되지 않아요.

📌 이 페이지에서 설명하는 일부 기능은 가변 live 버전을 사용하는 dbt 프로젝트 객체가 필요해요. live 버전 객체를 얻으려면 2026_06 동작 변경 번들에 옵트인하거나, Snowflake 계정 담당자에게 별도의 단일 live 버전 기능을 활성화하도록 요청하세요. 그런 다음 객체를 생성하거나 교체하고, 기존 버전 객체는 SYSTEM$MIGRATE_DBT_PROJECT로 마이그레이션하세요. 자세한 내용은 dbt 프로젝트 객체의 단일 가변 live 버전으로의 마이그레이션 문서를 참조하세요.

출처: Snowflake 문서

본문

실행 방법별 지원되는 dbt 명령

dbt 명령 Workspaces EXECUTE DBT PROJECT snow dbt execute (CLI)
build ✔ ✔ ✔
clean [3] ✔ ✔ ✔
compile ✔ ✔ ✔
deps [1] ✔ ✔ ✔
docs generate [2] ✔ ✔ ❌
list ✔ ✔ ✔
parse ❌ ✔ ✔
run ✔ ✔ ✔
retry [3] ✔ ✔ ✔
run-operation ✔ ✔ ✔
seed ✔ ✔ ✔
show ✔ ✔ ✔
snapshot ✔ ✔ ✔
source freshness [3] ✔ ✔ ✔
test ✔ ✔ ✔
  • [1] AUTO_COMPILE=TRUE면 배포 중에 Snowflake가 dbt compile을 실행해요. 외부 접근 통합(access integration)이 구성되면 Snowflake가 먼저 dbt deps를 실행한 다음 dbt compile을 실행해요. AUTO_COMPILE=FALSE로 설정하면 두 명령을 모두 건너뛰어요.
  • [2] dbt Projects on Snowflake는 dbt docs serve를 지원하지 않아요. 프로젝트 문서를 보려면 Snowsight의 dbt 프로젝트 객체 세부 정보 페이지를 사용하거나 dbt docs generate --static으로 정적 사이트를 생성하세요. 자세한 내용은 dbt 프로젝트 문서와 아티팩트 접근 문서를 참조하세요.
  • [3] 가변 live 버전을 사용하는 dbt 프로젝트 객체가 필요해요.

플래그에 대해

dbt Core에서는 명령(예: dbt build)을 실행하고 플래그로 동작을 수정해요. 플래그는 명령 동작을 수정하는 구성 옵션이며, 일부는 명령별, 일부는 전역이에요. 자세한 내용은 플래그 문서를 참조하세요.

항상 명령을 실행하고, 범위를 지정하거나 변경하기 위해 플래그를 붙여요. 예를 들어 증분 모델만 실행하고 다시 빌드하려면 다음 명령과 플래그를 실행해요:

dbt run --select config.materialized:incremental --full-refresh;

--log-level-file 플래그는 지원되며, Snowsight UI가 사용하는 dbt.log의 상세 수준을 제어해요. 기본값은 debug이므로 더 조용한 출력을 원하면 --log-level-file info를 전달하세요.

다음 플래그는 dbt Projects on Snowflake에서 지원되지 않아요:

  • --profiles-dir
  • --project-dir
  • --log-format
  • --log-format-file

--target-path와 --log-path로 지정한 경로는 프로젝트 안의 디렉터리를 가리켜야 해요. Snowflake는 실행 결과와 함께 관련 없는 프로젝트 파일이 업로드되는 것을 피하기 위해 전용 하위 디렉터리를 가리키는 것을 권장해요.

WRITEBACK 설정은 실행이 target 및 log 아티팩트를 live 버전에 기록할지 여부를 제어해요. writeback이 활성화된 동시 실행의 경우 서로 겹치지 않는 별도의 target 및 log 디렉터리를 사용하세요. 자세한 내용은 별도의 target 및 log 경로 사용 문서를 참조하세요.

dbt 프로젝트 객체 정리(clean)

clean 명령은 live 버전에서 선택한 target 디렉터리를 제거해요. 정리는 전부 아니면 전무(all or nothing) 방식이에요. Snowflake가 보호된 경로를 감지하거나 정리 실행 중 파일이 변경되면 중단하고 아무것도 제거하지 않은 채 오류를 반환해요.

clean이 선택하는 경로는 dbt 런타임과 구성에 따라 달라져요:

  • clean-targets가 구성되어 있고 --target-path를 전달하지 않으면 dbt는 구성된 경로를 정리해요.
  • clean-targets가 구성되지 않으면 dbt는 기본 clean target을 사용하며 --target-path로 전달된 경로를 포함해요.
  • clean-targets와 --target-path가 모두 설정되면 dbt Core는 clean-targets의 경로만 정리해요. dbt Fusion은 clean-targets와 --target-path의 합집합을 정리해요.

WRITEBACK=FALSE로 clean을 실행하면 이 명령은 live 버전의 파일을 업데이트하지 않아요. 사실상 아무 작업도 하지 않는 것과 같아요. clean으로 제거된 파일은 복구할 수 없어요.

더 알아보기 (Learn more)