SYSTEM$DATA_METRIC_SCAN
SYSTEM$DATA_METRIC_SCAN
엔터프라이즈 에디션 기능. 데이터 품질 모니터링(Data Quality Monitoring)은 엔터프라이즈 에디션이 필요해요. 업그레이드 문의는 Snowflake 지원팀에 문의하세요.
데이터 품질 검사를 실패한 데이터를 포함하는 것으로 데이터 품질 메트릭이 식별한 행들을 반환해요. 예를 들어 NULL_COUNT 데이터 메트릭 함수를 인자로 사용하면, 특정 컬럼에 NULL 값이 포함된 테이블의 행들을 함수가 반환해요.
본문
구문 (Syntax)
SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => ''
, METRIC_NAME => ''
, ARGUMENT_NAME => ' [ , ... ]'
[ , ARGUMENT_EXPRESSION => '' ]
[ , AT_TIMESTAMP => '' ]
[ , WITHIN_GROUP_VALUES => '' ]
)
인자 (Arguments)
필수:
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 [ , column ... ]'— 지정된 데이터 메트릭 함수에 인자로 전달되는 지정된 테이블 또는 뷰의 컬럼 이름이에요.
선택:
-
ARGUMENT_EXPRESSION => 'boolean-expression'— 지정된 데이터 메트릭 함수가 ACCEPTED_VALUES인 경우 필요해요. 그 외 모든 DMF에서는 허용되지 않아요. 레코드가 ACCEPTED_VALUES 데이터 품질 검사를 통과하는지 실패하는지를 평가하는 데 사용되는 부울 표현식을 지정해요. SYSTEM$DATA_METRIC_SCAN 함수는 부울 표현식과 일치하지 않는 레코드를 반환해요. 표현식에는 다음 연산자와 함수를 포함할 수 있어요:- 비교 연산자 (Comparison operators)
- 논리 연산자 (Logical operators)
- [ NOT ] LIKE
- [ NOT ] IN
- IS [ NOT ] NULL
부울 표현식의 컬럼은 ARGUMENT_NAME 인자에 지정된 것과 동일한 컬럼이어야 해요. ACCEPTED_VALUES DMF가 REF_ENTITY_NAME에 지정된 객체와 연결된 경우, SYSTEM$DATA_METRIC_SCAN 함수는 ACCEPTED_VALUES가 객체와 연결될 때 지정된 부울 표현식을 무시해요.
-
AT_TIMESTAMP => 'timestamp'— 과거의 테이블 또는 뷰에서 DMF 평가 결과를 확인하기 위해 인자로 전달되는 타임스탬프예요. -
WITHIN_GROUP_VALUES => 'json_object'— WITHIN GROUP 절로 생성된 연결의 경우, 그룹화 컬럼 이름을 스캔할 특정 그룹 값에 매핑하는 JSON 객체예요. 예:'{"REGION": "US", "PRODUCT_CATEGORY": "Electronics"}'. 이 인자를 생략하면 스캔은 그룹에 관계없이 모든 행을 반환해요. JSON 객체에서는 문자열과 숫자 값만 지원돼요. 자세한 내용은 그룹별 데이터 품질 검사 적용(Apply data quality checks by group) 문서를 참고해요.
반환 값 (Returns)
지정된 테이블 또는 뷰의 행들이에요.
액세스 제어 권한 (Access Control Privileges)
이 함수를 실행하려면 다음 권한이 필요해요:
- 지정된 테이블에 대한 SELECT
- 지정된 데이터 메트릭 함수에 대한 USAGE
사용 노트 (Usage Notes)
- 이 함수는 사용자 정의 메트릭을 지원하지 않아요.
- 지정된 테이블이 마스킹 정책 또는 행 액세스 정책과 같은 정책으로 보호되면, 결과가 함수를 실행할 때의 사용자 역할에 따라 달라지므로 함수는 예기치 않거나 불완전한 데이터를 반환할 수 있어요.
예제 (Examples)
SNOWFLAKE.CORE.NULL_COUNT 시스템 메트릭이 특정 컬럼의 NULL 값 총 수를 반환한다는 점을 고려할 때, 다음은 employeesTable 테이블의 SSN 컬럼에 NULL 값이 있는 행들을 반환해요:
SELECT *
FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => 'governance.sch.employeesTable',
METRIC_NAME => 'snowflake.core.null_count',
ARGUMENT_NAME => 'SSN'
));
SNOWFLAKE.CORE.DUPLICATE_COUNT 시스템 메트릭이 중복 값의 개수를 반환한다는 점을 고려할 때, 다음은 employeesTable 테이블에서 first_name과 last_name 컬럼 모두에 중복 값이 있는 행들을 반환해요:
SELECT *
FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => 'governance.sch.employeesTable',
METRIC_NAME => 'snowflake.core.duplicate_count',
ARGUMENT_NAME => 'first_name, last_name'
));
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'
));
WITHIN GROUP 절로 생성된 연결의 경우, 특정 그룹(US 지역)에 대해 name 컬럼의 NULL 행만 반환:
SELECT *
FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => 'governance.sch.customer_data',
METRIC_NAME => 'snowflake.core.null_count',
ARGUMENT_NAME => 'name',
WITHIN_GROUP_VALUES => '{"REGION": "US"}'
));
자세한 내용은 그룹별 데이터 품질 검사 적용 문서를 참고해요.
더 알아보기
- Snowflake 데이터 메트릭 함수 — 관련 데이터 메트릭 함수 전체 목록