고급 설정 사용법

고급 설정 사용법

dbt 모델 안에서 설정(config)을 지정할 때, 일반적인 config 구문으로 처리할 수 없는 특수한 상황이 있어요. 특히 하이픈(-)처럼 Jinja 인자로 파싱되지 않는 문자가 포함된 설정을 다룰 때 유용한 대체 구문을 살펴봐요.

출처: 문서

본문

SQL 파일에서의 대체 config 구문

일부 설정에는 Jinja 인자로 파싱할 수 없는 문자(예: 하이픈)가 포함될 수 있어요. 예를 들어 다음은 오류를 반환할 거예요:

{{ config(
    post-hook="grant select on {{ this }} to role reporter",
    materialized='table'
) }}

select ...

dbt는 핵심(core) 설정마다 별칭(alias)을 제공하지만(예: config 블록 안에서는 pre-hook 대신 pre_hook을 써야 해요), 여러분의 dbt 프로젝트에는 별칭이 없는 커스텀 설정이 있을 수 있어요.

이런 설정을 모델 안에서 지정하고 싶다면, 아래처럼 대체 config 블록 구문을 사용하면 돼요:

models/events/base/base_events.sql

{{
  config({
    "post-hook": "grant select on {{ this }} to role reporter",
    "materialized": "table"
  })
}}

select ...