ACCEPTED_VALUES

ACCEPTED_VALUES (시스템 데이터 메트릭 함수)

열의 값이 Boolean 표현식과 일치하지 않는 레코드 수를 반환해요.

Enterprise Edition 기능

데이터 품질 모니터링에는 Enterprise Edition이 필요해요. 업그레이드에 대해 문의하려면 Snowflake Support에 연락해주세요.

출처: Snowflake SQL Reference - ACCEPTED_VALUES

본문

구문

SNOWFLAKE.CORE.ACCEPTED_VALUES ON ( <column>, <lambda-expression> )

인자

column

lambda-expression의 Boolean 표현식과 비교되는 값을 포함하는 열을 지정해요.

lambda-expression

다음 구문으로 구성된 람다 표현식을 지정해요: column -> expression.

함수는 열의 값이 Boolean 표현식과 일치하지 않는 레코드 수를 반환해요. 이 표현식은 다음 연산과 함수를 사용할 수 있어요:

  • 비교 연산자
  • 논리 연산자
  • [ NOT ] LIKE
  • [ NOT ] IN
  • IS [ NOT ] NULL

람다 표현식의 열은 항상 column 인자와 일치해요.

허용되는 데이터 타입

column 및 lambda-expression 인자에 지정된 열은 다음 데이터 타입 중 하나를 포함할 수 있어요:

  • DATE
  • FLOAT
  • NUMBER
  • TIMESTAMP_LTZ
  • TIMESTAMP_NTZ
  • TIMESTAMP_TZ
  • VARCHAR

반환 값

함수는 NUMBER 값을 반환해요.

사용상 주의사항

  • 이 함수를 직접 호출할 수 없어요. 정기적인 간격으로 실행되도록 함수를 테이블 또는 뷰와 연결하는 방법을 배우려면 Associate a DMF를 참고해요. SYSTEM$DATA_METRIC_SCAN 함수를 사용해 연결하지 않고 테이블에 대해 ACCEPTED_VALUES 함수를 실행할 수 있어요.
  • 같은 열에 이 함수를 두 번 이상 연결할 수 없어요.
  • ACCEPTED_VALUES 함수에 지정된 열의 이름을 바꾸면 함수와 열의 테이블 또는 뷰 사이의 연결이 끊어져요. 열 이름을 바꾸면 함수를 테이블 또는 뷰에 다시 연결해야 해요.

예시

age 열의 값이 5와 같지 않은 레코드 수를 반환하도록 함수를 테이블 t1에 연결해요:

ALTER TABLE t1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (age, age -> age = 5);

order_status 열의 값이 문자열 Pending, Dispatched, Delivered 목록에 없는 레코드 수를 반환하도록 함수를 뷰 order_details에 연결해요:

ALTER VIEW order_details
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (
    order_status,
    order_status -> order_status IN ('Pending', 'Dispatched', 'Delivered'));

더 알아보기