파싱

파싱 (Parsing)

dbt가 프로젝트를 파싱하는 방식(부분 파싱, 정적 파서, v2 파서)을 제어하는 설정들을 다뤄요. 특히 dbt v2에서 변경된 부분 파싱 동작과 더 빠른 Rust 기반 v2 파서 사용법을 정리해 드릴게요.

출처: 문서

본문

부분 파싱 (Partial Parsing)

(dbt v2.0 이상) dbt v2와 부분 파싱

dbt v2 작업 실행은 더 이상 --partial-parse--no-partial-parse CLI 플래그를 지원하지 않아요. 이를 전달하면(예: dbt v1 명령이나 스크립트에서) dbt는 deprecation 경고 dbt1700을 기록해요. dbt v2 작업 명령에서 이 플래그들을 제거하세요. 자세한 내용은 dbt v2 업그레이드 가이드의 Deprecated flags를 참고하세요.

PARTIAL_PARSE 플래그는 프로젝트에서 부분 파싱을 켜거나 끌 수 있어요. 자세한 내용은 parsing 문서를 참고하세요.

dbt_project.yml

flags:
  partial_parse: true

Usage

dbt run --no-partial-parse

정적 파서 (Static parser)

STATIC_PARSER 설정은 정적 파서의 사용을 활성화하거나 비활성화할 수 있어요. 자세한 내용은 parsing 문서를 참고하세요.

profiles.yml

config:
  static_parser: true

옵트인 v2 파서 (Opt-in v2 parser)

(dbt v1.12 이상) dbt v1 플래그

v2 파서 플래그는 dbt v1.12 이상의 1.x 버전에만 적용돼요. 이미 v2를 사용 중이라면 이 플래그는 영향이 없어요.

use_v2_parser 플래그는 파싱을 v2 파서에 위임해요. 이는 옵트인 플래그예요. v2 파서는 dbt v2의 Rust 기반 파서예요. 특히 대규모 프로젝트에서 v1 Python 파서보다 훨씬 빠르며, 5–10배까지 빠를 수 있어요. 이를 활성화하면 개발 워크플로를 가속화하고 작업 시작 시간을 줄일 수 있어요. v2.0에서 사용하는 파서에 위임하기 때문에, dbt v1.12 안에서 v2와의 호환성을 테스트하는 저위험 방법이기도 해요.

v2 파서를 세 가지 방법으로 활성화할 수 있어요:

  • CLI 플래그: --use-v2-parser
  • 환경 변수: DBT_ENGINE_USE_V2_PARSER=true
  • dbt_project.yml의 flags: 아래:

dbt_project.yml

flags:
  use_v2_parser: true

참고: --use-v2-parser가 설정되면 부분 파싱이 비활성화돼요. 이전 실행의 낡은 partial_parse.msgpack은 자동으로 제거돼요.

이 플래그는 프로젝트 파싱에만 영향을 주기 때문에 v2 파싱 호환성을 확인하는 가장 빠른 방법은 dbt parse예요. 다른 명령에도 --use-v2-parser를 사용할 수 있어요.

Usage

# Test v2 parser compatibility without running models (recommended)
dbt parse --use-v2-parser
# Or use it with any command
dbt run --use-v2-parser

Plugin authors

get_nodes 플러그인 훅은 --use-v2-parser가 활성화되면 지원되지 않아요.

더 알아보기 (Learn more)