카테고리:

데이터 메트릭 함수

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

열의 값이 부울 식과 일치하지 않는 레코드 수를 반환합니다.

구문

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

인자

column

lambda-expression 의 부울 식과 비교되는 값이 포함된 열을 지정합니다.

lambda-expression

column -> expression 구문으로 구성된 람다 식을 지정합니다.

이 함수는 column 값이 부울 식과 일치하지 않는 레코드 수를 반환합니다. 이 식은 다음 연산과 함수를 사용할 수 있습니다.

람다 식의 column 은 항상 column 인자와 일치합니다.

허용되는 데이터 타입

columnlambda-expression 인자에 지정된 열은 다음 데이터 타입 중 하나를 포함할 수 있습니다.

  • DATE

  • FLOAT

  • NUMBER

  • TIMESTAMP_LTZ

  • TIMESTAMP_NTZ

  • TIMESTAMP_TZ

  • VARCHAR

반환

이 함수는 NUMBER 값을 반환합니다.

액세스 제어 요구 사항

시스템 DMF를 사용하려면 다음 액세스 제어 접근법 중 하나를 선택합니다.

  • 테이블에 대한 OWNERSHIP 권한이 있는 역할인 테이블 소유자 역할에 DATA_METRIC_USER 데이터베이스 역할을 부여합니다. 이 데이터베이스 역할에는 SNOWFLAKE.CORE 스키마에 대한 USAGE 권한과 SNOWFLAKE.CORE 스키마의 모든 시스템 DMFs에 대한 USAGE 권한이 있습니다.

    또한 테이블 소유자 역할에 다음 권한을 부여합니다.

    권한

    오브젝트

    참고

    EXECUTE DATA METRIC FUNCTION

    계정

    이 권한을 사용하면 시스템 DMF를 호출할 수 있는 서버리스 컴퓨팅 리소스에 액세스할 수 있는 역할을 제어할 수 있습니다.

    USAGE

    데이터베이스, 스키마

    이러한 오브젝트는 DMF가 연결된 table.referenced 테이블이 포함된 데이터베이스 및 스키마입니다.

  • 테이블 소유자 역할에 SNOWFLAKE 데이터베이스에 대한 IMPORTED PRIVILEGES 권한을 부여합니다. 자세한 내용은 SNOWFLAKE 데이터베이스의 스키마를 사용할 다른 역할 활성화 섹션을 참조하십시오.

  • ACCOUNTADMIN 역할을 사용합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 사용자는 이 함수를 직접 호출할 수 없습니다. 함수를 테이블 또는 뷰와 연결하여 규칙적인 간격으로 실행되도록 하는 방법을 알아보려면 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);
Copy

order_status 의 값이 문자열 목록 Pending, DispatchedDelivered 의 목록에 없는 레코드 수를 반환하도록 함수를 뷰 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'));
Copy