카테고리:

시스템 함수, 테이블 함수

SYSTEM$DATA_METRIC_SCAN

데이터 품질 메트릭 을 통해 데이터 품질 검사에 실패한 데이터가 포함된 것으로 식별된 행을 반환합니다. 예를 들어, NULL_COUNT 데이터 메트릭 함수를 인자로 사용하는 경우 이 함수는 특정 열의 NULL 값을 포함하는 테이블의 행을 반환합니다.

구문

SYSTEM$DATA_METRIC_SCAN(
  REF_ENTITY_NAME  => '<object>'
  , METRIC_NAME  => '<data_metric_function>'
  , ARGUMENT_NAME => '<column>'
  [ , ARGUMENT_EXPRESSION => '<boolean-expression>' ]
  [ , AT_TIMESTAMP => '<timestamp>' ] )
Copy

인자

필수:

REF_ENTITY_NAME => 'object'

지정된 데이터 메트릭 함수가 실행될 테이블 또는 뷰의 이름입니다. 함수는 이 오브젝트에서 행을 반환합니다.

METRIC_NAME => 'data_metric_function'

지정된 테이블이나 뷰를 평가하기 위해 실행하려는 시스템 데이터 메트릭의 이름입니다. 다음 시스템 함수만 지원됩니다.

  • SNOWFLAKE.CORE.ACCEPTED_VALUES

  • SNOWFLAKE.CORE.BLANK_COUNT

  • SNOWFLAKE.CORE.BLANK_PERCENT

  • SNOWFLAKE.CORE.DUPLICATE_COUNT

  • SNOWFLAKE.CORE.NULL_COUNT

  • SNOWFLAKE.CORE.NULL_PERCENT

ARGUMENT_NAME => 'column'

지정된 데이터 메트릭 함수에 인자로 전달되는 지정된 테이블이나 뷰의 열 이름입니다.

선택 사항:

ARGUMENT_EXPRESSION => 'boolean-expression'

지정된 데이터 메트릭 함수가 ALLOWED_VALUES 인 경우 필수입니다. 기타 모든 DMFs에는 허용되지 않습니다.

레코드가 ALLOWED_VALUES 데이터 품질 검사를 통과하는지 또는 실패하는지를 평가하는 데 사용되는 부울 식을 지정합니다. SYSTEM$DATA_METRIC_SCAN 함수는 부울 식과 일치하지 않는 레코드를 반환합니다. 식은 다음 연산자와 함수를 포함할 수 있습니다.

부울 식의 열은 ARGUMENT_NAME 인자에 지정된 열과 동일해야 합니다.

ALLOWED_VALUES DMF가 REF_ENTITY_NAME으로 지정된 오브젝트와 연결된 경우 SYSTEM$DATA_METRIC_SCAN 함수는 ALLOWED_VALUES가 오브젝트와 연결되었을 때 지정된 부울 식을 무시합니다.

AT_TIMESTAMP => 'timestamp'

과거 테이블이나 뷰의 DMF 평가 결과를 확인하기 위해 인자로 전달되는 타임스탬프입니다.

반환

지정된 테이블이나 뷰의 행.

액세스 제어 권한

이 함수를 실행하려면 다음 권한이 필요합니다.

  • 지정된 테이블에 대한 SELECT.

  • 지정된 데이터 메트릭 함수에 대한 USAGE.

사용법 노트

  • 이 함수는 사용자 정의 메트릭을 지원하지 않습니다.

  • 지정된 테이블이 마스킹 정책이나 행 액세스 정책과 같은 정책으로 보호되는 경우, 함수 실행 시의 사용자 역할에 따라 결과가 달라지므로 함수는 예기치 않은 데이터나 불완전한 데이터를 반환할 수 있습니다.

SNOWFLAKE.CORE.NULL_COUNT 시스템 메트릭이 특정 열에 있는 NULL 값의 총 개수를 반환하는 경우 다음은 SSN 열에 NULL 값이 있는 employeesTable 테이블의 행을 반환합니다.

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.null_count',
    ARGUMENT_NAME => 'SSN'
  ));
Copy

SNOWFLAKE.CORE.BLANK_COUNT 시스템 메트릭이 열에 있는 값 중 공백인 값의 수를 반환하는 경우 다음은 과거 특정 시간에 존재했던 테이블 버전의 name 열에 비어 있는 값이 있었던 employeesTable 테이블의 행을 반환합니다.

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.blank_count',
    ARGUMENT_NAME => 'name',
    AT_TIMESTAMP => '2024-08-28 02:00:00 -0700'
  ));
Copy

age 열의 값이 5와 같지 않은 행을 반환합니다(즉, ARGUMENT_EXPRESSION로 지정된 조건과 일치하지 않은 행).

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.accepted_values',
    ARGUMENT_NAME => 'age',
    ARGUMENT_EXPRESSION => 'age = 5'
  ));
Copy