데이터 메트릭 함수를 사용하여 데이터 품질 검사 수행¶
이 항목에서는 데이터 메트릭 함수(DMF)를 테이블 또는 뷰에 연결하여 정기적으로 데이터 품질 검사를 수행하는 방법에 대해 설명합니다. 예를 들어, DMF 를 테이블이나 뷰에 연결하기 전에 테스트하려는 경우 DMF 를 직접 호출하는 방법에 대해서도 설명합니다.
DMF 를 연결하여 데이터 품질 검사 자동화하기¶
DMF 를 테이블 또는 뷰와 연결하여 일정한 간격으로 자동으로 호출할 수 있습니다. DMF 를 연결할 때 DMF 에 인자로 전달할 열을 지정합니다.
DMF 를 테이블 또는 뷰와 연결하여 데이터 품질 검사를 자동화하는 프로세스는 두 단계로 수행됩니다.
테이블 또는 뷰에서 DMFs 가 실행될 빈도를 결정하는 일정을 설정 합니다. DMF 를 테이블 또는 뷰와 연결하기 전에 예약을 설정해야 합니다.
DMF 를 테이블 또는 뷰에 연결합니다.
DMF 실행 예약하기¶
DMFs 를 예약하여 테이블에서 데이터 품질 측정을 자동화하도록 실행할 수 있습니다.
Snowflake는 테이블에 대한 OWNERSHIP 권한이 있는 역할인 테이블 소유자 역할을 사용하여 예약된 DMF를 호출합니다. 테이블 소유자 역할에는 다음과 같은 권한이 있어야 합니다.
사용자 정의 DMF에 대한 USAGE 권한과 사용자 정의 DMF를 저장하는 데이터베이스 및 스키마에 대한 USAGE 권한.
DMF가 시스템 DMF인 경우 DATA_METRIC_USER 데이터베이스 역할.
계정에 대한 EXECUTE DATA METRIC FUNCTION 권한.
테이블, 뷰 또는 구체화된 뷰의 DATA_METRIC_SCHEDULE 오브젝트 매개 변수를 사용하면 DMFs의 실행 시점을 예약할 수 있습니다. 테이블이나 뷰의 모든 데이터 메트릭 함수는 동일한 일정을 따릅니다.
DMF의 실행 일정을 예약하는 방법은 다음의 세 가지입니다.
지정된 시간(분) 후에 실행되도록 DMF를 설정합니다.
특정 빈도로 실행되도록 DMF를 예약하려면 cron 식을 사용합니다.
트리거 이벤트를 사용하여 테이블에 새 행을 삽입하는 등 테이블에 DML 변경 이 있을 때 DMF가 실행되도록 예약합니다. 하지만:
테이블을 재클러스터링 해도 DMF가 실행되지는 않습니다.
트리거 방식은 특정 종류의 테이블에만 사용할 수 있습니다. 자세한 내용은 ALTER TABLE … SET DATA_METRIC_SCHEDULE 섹션을 참조하십시오.
예:
데이터 메트릭 함수 일정을 5분마다 실행되도록 설정합니다.
ALTER TABLE hr.tables.empl_info SET DATA_METRIC_SCHEDULE = '5 MINUTE';
데이터 메트릭 함수 일정을 매일 AM 8:00에 실행되도록 설정합니다.
ALTER TABLE hr.tables.empl_info SET DATA_METRIC_SCHEDULE = 'USING CRON 0 8 * * * UTC';
데이터 메트릭 함수 일정을 평일 AM 8:00에만 실행되도록 설정합니다.
ALTER TABLE hr.tables.empl_info SET DATA_METRIC_SCHEDULE = 'USING CRON 0 8 * * MON,TUE,WED,THU,FRI UTC';
데이터 메트릭 함수 일정을 매일 UTC 0600, 1200, 1800에 3회 실행되도록 설정합니다.
ALTER TABLE hr.tables.empl_info SET DATA_METRIC_SCHEDULE = 'USING CRON 0 6,12,18 * * * UTC';
새 행 삽입과 같은 일반 DML 작업으로 테이블이 수정될 때 데이터 메트릭 함수가 실행되도록 설정합니다.
ALTER TABLE hr.tables.empl_info SET DATA_METRIC_SCHEDULE = 'TRIGGER_ON_CHANGES';
SHOW PARAMETERS 명령을 사용하여 지원되는 테이블 오브젝트에 대한 DMF 일정을 볼 수 있습니다.
SHOW PARAMETERS LIKE 'DATA_METRIC_SCHEDULE' IN TABLE hr.tables.empl_info;+----------------------+--------------------------------+---------+-------+------------------------------------------------------------------------------------------------------------------------------+--------+ | key | value | default | level | description | type | +----------------------+--------------------------------+---------+-------+------------------------------------------------------------------------------------------------------------------------------+--------+ | DATA_METRIC_SCHEDULE | USING CRON 0 6,12,18 * * * UTC | | TABLE | Specify the schedule that data metric functions associated to the table must be executed in order to be used for evaluation. | STRING | +----------------------+--------------------------------+---------+-------+------------------------------------------------------------------------------------------------------------------------------+--------+
뷰 및 구체화된 뷰 오브젝트의 경우 TABLE
을 오브젝트 도메인으로 지정하고 다음과 같이 일정을 확인할 수 있습니다.
SHOW PARAMETERS LIKE 'DATA_METRIC_SCHEDULE' IN TABLE mydb.public.my_view;
참고
테이블에서 DMF를 수정하면 테이블에 할당된 이전 DMFs에 일정 변경 사항이 적용되기까지 10분의 지연 시간이 있습니다. 단, 테이블에 새로 DMF를 할당하는 경우에는 10분 지연이 적용되지 않습니다. 예상되는 DMF 비용 에 맞춰 DMF 스케줄링 및 DMF 설정 취소 작업을 신중하게 계획해야 합니다.
또한 DATA_QUALITY_MONITORING_RESULTS 뷰를 쿼리하는 등 DMF 결과를 평가할 때는 쿼리에서 measurement_time
열을 평가의 기준으로 지정합니다. DMF 평가를 시작하는 내부 프로세스가 있으며, 예약된 시간과 측정 시간 사이에 INSERT 연산과 같은 테이블 업데이트가 발생할 수 있습니다. measurement_time
열을 사용하면 측정 시간이 DMF의 평가 시간을 나타내므로 DMF 결과를 더 정확하게 평가할 수 있습니다.
DMF 를 테이블에 연결¶
ALTER TABLE 또는 ALTER VIEW 명령을 사용하여 DMF 를 연결하고 인자로 전달할 열을 지정합니다. 예를 들어, 다음 명령은 시스템 DMF NULL_COUNT
를 테이블 t
와 연결합니다. DMF 가 실행되면 c1
열의 NULL 값 개수가 반환됩니다.
ALTER TABLE t
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.NULL_COUNT
ON (c1);
참고
ALTER VIEW 명령을 사용하여 구체화된 뷰 열에 DMF를 추가하거나 구체화된 뷰 열에서 DMF를 삭제합니다.
오브젝트에서 DMF 삭제하기¶
ALTER TABLE 또는 ALTER VIEW 명령을 사용하여 DMF 를 삭제할 수 있습니다. 예:
ALTER TABLE t DROP DATA METRIC FUNCTION governance.dmfs.count_positive_numbers ON (c1, c2, c3);
수동으로 DMF 호출하기¶
DMF 를 직접 호출하면 테이블이나 뷰에 연결하기 전에 DMF 의 출력을 테스트하는 데 유용할 수 있습니다.
다음 구문을 사용하여 DMF를 호출합니다.
SELECT <data_metric_function>(<query>)
여기서
data_metric_function
시스템 DMF 또는 사용자 정의 DMF를 지정합니다.
query
테이블 또는 뷰에 SQL 쿼리를 지정합니다.
쿼리가 프로젝션하는 열은 DMF 서명의 열 인자와 일치해야 합니다.
참고
다음 시스템 DMFs 는 인자를 사용하지 않으므로 이 구문을 따르지 않습니다.
예를 들어, 세 개의 열을 인자로 받는 사용자 정의 DMF count_positive_numbers
를 호출하려면 다음을 실행합니다.
SELECT governance.dmfs.count_positive_numbers(
SELECT c1, c2, c3
FROM t);
예를 들어, NULL_COUNT(시스템 데이터 메트릭 함수) 시스템 DMF 를 호출하여 ssn
열에 있는 NULL 값의 수를 보려면 다음을 실행합니다.
SELECT SNOWFLAKE.CORE.NULL_COUNT(
SELECT ssn
FROM hr.tables.empl_info);