arguments

arguments (마크로용)

arguments 속성은 리소스가 받을 수 있는 파라미터를 정의해요. 각 인자는 name, type 필드와 선택적 description을 가질 수 있어요. 마크로에서는 이 속성을 추가해 마크로가 어떤 입력을 요구하는지 문서화하고 이해하는 데 도움을 줘요.

출처: 문서

본문

macros/.yml

macros:
  - name: <macro name>
    arguments:
      - name: <arg name>
        type: <string>
        description: <markdown_string>

Definition

arguments 속성은 리소스가 받을 수 있는 파라미터를 정의하는 데 쓰여요. 각 인자는 name, type 필드와 선택적 description을 가질 수 있어요.

마크로의 경우, arguments를 마크로 속성에 추가하면 마크로를 문서화하고 어떤 입력이 필요한지 이해하는 데 도움이 돼요.

type

(dbt v1.10 이상 적용)

인자의 데이터 타입이에요. validate_macro_argstrue로 설정하면 문서화된 마크로 인자 이름이 마크로 정의의 인자 이름과 일치하는지 확인하고, 지원되는 타입과 형식이 맞는지 검증해요. false로 설정하면 type은 문서화 목적으로만 쓰이고, 지정할 수 있는 값에 제약이 없어요.

팁: dbt v1.10부터 validate_macro_args 동작 변경 플래그로 마크로 문서에 정의한 인자 검증을 선택(opt-in)할 수 있어요. 활성화하면 dbt는 다음을 수행해요.

  • 마크로에서 인자를 추론해, 문서화된 인자가 없으면 manifest.json 파일에 포함해요.
  • 문서화된 인자 이름이 마크로 정의와 일치하지 않으면 경고를 냅니다.
  • type 필드가 지원 형식을 따르지 않으면 경고를 냅니다.

마크로 인자 검증에 대해 자세히 알아보세요.

macros/.yml

macros:
  - name: <macro name>
    arguments:
      - name: <arg name>
        type: <string>

지원되는 타입

dbt v1.10부터 validate_macro_args 플래그를 쓰면 마크로 인자에 대해 다음 타입을 지원해요.

  • string 또는 str
  • boolean 또는 bool
  • integer 또는 int
  • float
  • any
  • list[] — 예: list[string]
  • dict[, ] — 예: dict[str, list[int]]
  • optional[] — 예: optional[integer]
  • relation
  • column

타입은 Python 스타일을 따르지만 문서화·검증 목적으로만 쓰이며, 실제 Python 타입은 아니라는 점에 유의하세요.

Examples

macros/cents_to_dollars.sql

{% macro cents_to_dollars(column_name, scale=2) %}
    ({{ column_name }} / 100)::numeric(16, {{ scale }})
{% endmacro %}

macros/cents_to_dollars.yml

macros:
  - name: cents_to_dollars
    arguments:
      - name: column_name
        type: column
        description: "The name of a column"
      - name: scale
        type: integer
        description: "The number of decimal places to round to. Default is 2."