dbt Projects on Snowflake에서 지원되는 dbt 버전

dbt Projects on Snowflake에서 지원되는 dbt 버전

Snowflake는 안전하고 예측 가능한 실행 환경을 보장하기 위해 dbt 프로젝트용 관리형 런타임(managed runtimes)을 제공해요. dbt 릴리스는 호환성을 깨는 변경이나 보안 취약점을 도입할 수 있으므로, Snowflake는 각 버전에 대해 체계적인 수명 주기를 따르며, 이를 통해 사용자가 거버넌스와 재현성을 위해 특정 버전을 고정(pin)할 수 있으면서도 필수 마이그레이션에 대한 명확한 일정을 제공해요.

출처: Snowflake 문서

본문

dbt 프로젝트 지원 버전

dbt 버전 Snowflake 지원 수준 dbt Labs 지원
dbt Fusion 2.0.0-preview.186 Active support Active
dbt Fusion 2.0.0-preview.175 Active support Active
dbt Core 1.11.11 Active support Active support until Dec 18, 2026
dbt Core 1.10.15 Active support Deprecated
dbt Core 1.9.4 Active support Deprecated

DBT_VERSION 매개 변수는 아래 표처럼 버전에 따라 실행 엔진을 암시적으로 정의해요.

버전 기반 엔진 매핑

사용자 입력 (DBT_VERSION) 조건 결과 엔진
'1.x' (예: 1.9.4) Version < 2.0 dbt Core (Python 기반)
'2.x' (예: 2.0.0-preview.175) Version >= 2.0 dbt Fusion (Rust 기반)

지원되는 dbt 버전 보기

지원되는 dbt 버전을 보려면 다음 예시처럼 SYSTEM$SUPPORTED_DBT_VERSIONS 시스템 함수를 실행하세요.

SELECT SYSTEM$SUPPORTED_DBT_VERSIONS();
[{"dbt_version":"1.9.4","type":"dbt Core"},{"dbt_version":"1.10.15","type":"dbt Core"},{"dbt_version":"1.11.11","type":"dbt Core"}]

계정 수준 기본 버전 설정

계정 관리자는 DEFAULT_DBT_VERSION 계정 매개 변수를 사용해 기본 dbt 버전을 설정할 수 있어요. 이 매개 변수를 변경해도 기존 dbt 프로젝트 객체에는 영향이 없어요. 명시적인 DBT_VERSION 속성을 지정하지 않을 때 이후에 생성되는 프로젝트에만 적용돼요. 이를 통해 사용자가 모든 CREATE DBT PROJECT 문에 DBT_VERSION을 지정하지 않아도 새 버전에 옵트인할 수 있어요.

ALTER ACCOUNT SET DEFAULT_DBT_VERSION = '1.11.11';

이 기본 버전은 워크스페이스에서 초기 dbt 워크스페이스 런타임 버전을 설정하는 데에도 사용돼요.

개별 dbt 프로젝트 객체는 생성 시 DBT_VERSION을 지정하거나, ALTER DBT PROJECT를 사용하거나, EXECUTE DBT PROJECT로 각 실행 중에 계정 기본값을 재정의할 수 있어요.

dbt 실행 버전 변경

dbt 프로젝트 객체가 실행할 dbt 버전을 변경하려면 다음 예시처럼 ALTER DBT PROJECT 명령을 실행하세요.

ALTER DBT PROJECT my_dbt_project SET DBT_VERSION = '1.11.11';

버전에 고정된 dbt 프로젝트 객체 생성

다음 예시는 1.11.11 dbt 버전에 고정된 dbt 프로젝트 객체를 생성해요.

CREATE OR REPLACE DBT PROJECT my_dbt_project
  FROM '@my_stage/dbt_files'
  DBT_VERSION = '1.11.11';

📌 단일 실행에 대한 dbt 버전을 EXECUTE DBT PROJECT 문에서 DBT_VERSION을 지정해 재정의할 수도 있어요. 자세한 내용과 예시는 CREATE DBT PROJECT 및 ALTER DBT PROJECT 문서를 참조하세요.

dbt Fusion으로 마이그레이션

dbt Fusion 2.0.0-preview.175는 dbt 런타임의 근본부터 다시 작성한 Rust 버전으로, 파싱과 컴파일 시간을 크게 단축하도록 설계됐어요. 이름의 "preview"는 출시 상태가 아니라 dbt Labs의 버전 표기 규칙을 반영한 것이에요. 이 버전은 dbt Platform과 Snowflake 모두에서 일반 공급(GA)됐어요.

dbt Core에서 dbt Fusion으로 마이그레이션하려면 다음 리소스를 사용하세요:

  • dbt-autofix를 통한 자동 수정: 로컬 터미널에서 uvx dbt-autofix를 실행해 Fusion으로 전환하기 전에 dbt Core 지원 중단(deprecation) 경고를 자동으로 해결하고 패키지 호환성을 확인하세요. 설치가 필요 없어요. uvx가 도구를 직접 실행해요. 자세한 내용은 dbt-labs/dbt-autofix를 참조하세요.
  • 공식 업그레이드 가이드: dbt Developer Hub의 dbt Fusion 엔진으로 업그레이드 가이드가 전체 마이그레이션 과정을 다뤄요.
  • AI 지원 마이그레이션: 공개적으로 제공되는 dbt Core to Fusion 마이그레이션 스킬을 Cortex Code 같은 AI 코딩 에이전트가 사용해 마이그레이션 작업을 안내할 수 있어요.

지원 중단(deprecation)과 폐기(decommissioning) 동작 방식

  • Snowflake 지원 버전: 이 버전들은 모든 신규 및 기존 프로젝트에 사용할 수 있어요. Snowflake는 보안 패치를 포함한 전체 기술 지원을 제공해요.
  • Snowflake 지원 중단 버전: 이 버전들은 활성 개발 주기가 끝났어요. 기존 프로젝트에서는 완전히 작동하지만, 지원 중단된 버전으로 새 프로젝트를 시작하는 것은 권장되지 않아요.
  • Snowflake 폐기 버전: 이 버전들은 Snowflake 환경에서 공식적으로 제거됐어요. 이 단계에서 폐기된 버전에 고정된 모든 프로젝트는 현재 지원 버전으로 업데이트할 때까지 실행에 실패해요.
  • dbt Core와 dbt Fusion 지원 수준: dbt Labs의 기준에 따라 버전이 Critical Support, Deprecated, 또는 End of Life 상태에 도달하더라도 Snowflake에서는 계속 지원돼요. 즉, 즉시 업그레이드할 필요가 없으며 원하는 기간 동안 기존 환경을 유지할 수 있어요.

더 알아보기 (Learn more)