type
type
type config는 만들고 있는 사용자 정의 함수(UDF)의 타입을 지정해요. 선택 사항이며, 지정하지 않으면 기본값은 scalar예요. dbt v1.11부터 사용할 수 있어요.
출처: 문서
본문
알아두세요: dbt v1.11부터 또는 dbt "v1 Latest" 릴리스 트랙에서 사용할 수 있어요.
functions/.yml
functions:
- name: function_name
config:
type: scalar | aggregate
향후 table 타입 지원을 검토 중이에요. 진행 상황을 추적하고 피드백을 남기려면 이 이슈를 참고하세요.
Definition
type config는 만들려는 UDF의 타입을 지정해요. 선택 사항이며, 지정하지 않으면 scalar로 기본값이 정해져요.
지원되는 함수 타입
다음 함수 타입을 지원해요.
- scalar (기본값)
- aggregate
type 지원 여부는 사용하는 웨어하우스와 언어(SQL 또는 Python)에 따라 달라져요.
scalar (기본값)
스칼라 함수는 각 입력 행에 대해 단일 값을 반환해요. 가장 흔한 UDF 타입이에요.
사용 사례 예시:
- 데이터 검증 (문자열이 패턴과 일치하는지 확인)
- 데이터 변환 (형식 변환, 문자열 정리)
- 커스텀 계산 (복잡한 수학 연산)
functions/schema.yml
functions:
- name: is_positive_int
description: Determines if a string represents a positive integer
config:
type: scalar
arguments:
- name: input_string
data_type: STRING
returns:
data_type: BOOLEAN
aggregate
집계 함수는 여러 행에 대해 동작하고 단일 값을 반환해요. 예를 들어 값의 합을 구하거나 그룹의 평균을 계산하죠. 쿼리에서 GROUP BY 연산에 이 함수들을 사용해요.
집계 함수는 현재 다음에서만 지원돼요.
- Snowflake의 Python 함수
- BigQuery의 SQL 함수
사용 사례 예시:
- 데이터 그룹의 합이나 평균 계산 (예: 고객별 총 매출)
- 시간 경과에 따른 데이터 집계 (예: 일별·월별·연별 합계)
functions/schema.yml
functions:
- name: double_total
description: Sums values and doubles the result
config:
type: aggregate
arguments:
- name: values
data_type: FLOAT
description: A sequence of numbers to aggregate
returns:
data_type: FLOAT
Related documentation
- User-defined functions
- Function properties
- Function configurations
- volatility
- arguments
- returns