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_args를 true로 설정하면 문서화된 마크로 인자 이름이 마크로 정의의 인자 이름과 일치하는지 확인하고, 지원되는 타입과 형식이 맞는지 검증해요. 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또는strboolean또는boolinteger또는intfloatanylist[]— 예:list[string]dict[, ]— 예:dict[str, list[int]]optional[]— 예:optional[integer]relationcolumn
타입은 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."
Related documentation
- Macro properties
- Arguments (for functions) — 함수용 arguments 속성.