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