Snowsight에서 데이터 품질 체크 모니터링하기
Snowsight에서 데이터 품질 체크 모니터링하기
Snowsight 페이지 하나로 테이블이나 뷰의 데이터 품질을 모니터링할 수 있어요. 이 페이지는 객체에 연결된 데이터 메트릭 함수(DMF)들을 대화형 뷰로 보여주고, 그 DMF 결과에 대한 인사이트도 함께 제공해요.
출처: Snowflake User Guide - Monitor quality checks in Snowsight
본문
시작하기
객체의 데이터 품질에 대한 인사이트를 얻으려면:
- Snowsight에 로그인해요.
- 탐색 메뉴에서 Catalog » Explorer를 선택하고 객체를 선택해요.
- Data Quality 탭을 선택해요.
- Monitoring을 선택해요.
- 다음 중 하나를 수행해요:
- DMF를 아직 연결한 적이 없다면 Set up을 선택해요. 스케줄 설정, 커스텀 DMF 생성, 객체에 DMF 연결을 시작하는 데 도움이 되는 값이 채워진 Worksheet가 열려요.
- 이미 DMF가 연결되어 있다면 바로 탐색해요. 적절한 접근 제어 권한이 있을 때만 DMF를 볼 수 있어요.
실행 중인 DMF 이해하기
객체에 연결된 DMF는 Quality Dimensions 아래에 나열돼요. DMF는 다음과 같이 그룹화돼요.
- 시스템 DMF는 카테고리별로 그룹화돼요. 예를 들어
NULL_COUNT와BLANK_COUNTDMF는 Accuracy 카테고리로 묶여요. 카테고리에 시스템 DMF가 하나뿐이면(예: Volume 카테고리의ROW_COUNTDMF) DMF 이름은 생략돼요. - 객체에 연결된 모든 커스텀 DMF는 Custom 아래에 그룹화돼요.
DMF마다 DMF와 객체 사이의 연결(association)별로 행이 하나씩 있어요. 컬럼 인자가 다르면 같은 DMF를 같은 객체에 여러 번 연결할 수 있다는 점을 기억해 두세요. 행이 여러 개라면 특정 컬럼 행을 선택해 그 컬럼을 인자로 실행한 DMF 결과를 볼 수 있어요.
예를 들어 NULL_COUNT DMF가 다음 SQL로 테이블 t1에 연결됐다고 가정해 볼게요.
ALTER TABLE t1
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.NULL_COUNT ON (c1);
컬럼 c1을 포함한 행이 이 DMF 실행 결과를 보여줘요.
Run Schedule 위젯은 DMF가 실행되는 빈도를 표시해요. 이는 객체의 DATA_METRIC_SCHEDULE 파라미터에 설정된 값에 해당해요.
실패한 품질 체크 조사하기
데이터 품질 체크는 기대(expectation)가 있는 DMF 연결로 구성돼요. 기대를 사용하면 DMF가 수행하는 데이터 품질 체크를 데이터가 통과하는지의 기준을 정의할 수 있어요. DMF가 값을 반환하면 그 값이 기대의 기준과 비교되어 데이터가 체크를 통과했는지 실패했는지 판단해요.
다음 과정으로 실패한 품질 체크를 조사할 수 있어요.
1단계 — 실패한 품질 체크가 있었나요? Monitoring 페이지 상단에 객체에 연결된 모든 DMF의 실패한 품질 체크 수가 표시돼요.
2단계 — 어떤 DMF 카테고리가 실패했나요? Monitoring 페이지의 Checks by dimension 위젯으로 각 DMF 그룹의 상태를 확인해요. 빨간색은 그룹 안의 최소 하나의 DMF가 품질 체크를 실패했음을 나타내요.
3단계 — 어떤 DMF 연결이 실패했나요? 카테고리에 실패한 품질 체크가 하나 이상 있다면 카테고리 위젯을 펼치고, Quality Checks 컬럼을 훑어 모든 체크가 통과되지 않은 행을 찾아요.
4단계 — 품질 체크가 무엇인가요? 조사 중인 품질 체크를 더 잘 이해하려면:
- 데이터 품질 체크를 실패한 DMF 연결을 선택해요. 측면 패널이 열려요.
- Quality Checks 섹션에서 Status 컬럼을 확인해 어떤 품질 체크가 실패했는지 판단해요. 이는 위반된 기대에 해당해요.
- 실패한 각 품질 체크에 대해 Expression 컬럼으로 품질 체크가 DMF에 반환하길 기대한 값을 확인해요. 이는 기대의 표현식에 해당해요.
5단계 — 품질 문제가 어떤 자산에 영향을 주나요? 측면 패널이 열려 있으면 Impacted Assets 섹션을 찾아 품질 문제가 다른 어떤 객체에 영향을 줄지 판단해요.
6단계 — 어떤 레코드가 품질 체크를 위반했나요? (시스템 DMF만)
측면 패널이 열려 있으면 View failed records를 선택해요. 사전 채워진 쿼리를 실행해 품질 체크를 실패한 레코드를 확인해요. 이 쿼리는 SYSTEM$DATA_METRIC_SCAN 함수를 호출해요.
DMF 결과 드릴다운하기
Quality Dimensions 아래의 각 행은 DMF의 가장 최근 결과와 7일 추세를 보여줘요. 이 결과로 드릴다운하려면 행을 선택해 측면 패널을 열어요. 이 측면 패널의 요소들은 다음과 같아요.
- View Lineage 버튼 — DMF를 선택하면 그 DMF와 연결된 객체의 계보(lineage)를 볼 수 있어요.
- View failed records 버튼 (시스템 DMF만) — DMF가 0보다 큰 값을 반환했다면 품질 문제로 표시된 레코드를 확인할 수 있어요. 예를 들어
NULL_COUNTDMF가 5를 반환했다면 NULL 값을 포함한 다섯 개의 레코드가 무엇인지 확인할 수 있죠. View failed records를 선택하면SYSTEM$DATA_METRIC_SCAN함수를 호출하는 쿼리로 미리 채워진 worksheet가 열려요. 이 쿼리를 실행해 DMF 결과에 포함된 레코드를 반환해요. - Arguments 섹션 (다중 인자 DMF만) — 커스텀 DMF가 여러 컬럼을 인자로 받는다면 이 컬럼들이 나열돼요. 컬럼을 선택해 그 컬럼을 포함한 객체의 Columns 탭으로 이동할 수 있어요.
- Quality Checks 섹션 — DMF와 객체 사이의 연결에 추가된 기대들을 나열해요. 각 기대는 데이터 품질 체크 하나를 구현해요. 이 섹션은 다음 컬럼을 포함해요.
- Name — 기대의 이름
- Expression — 기대의 표현식
- Status — 마지막으로 DMF가 실행됐을 때 기대가 위반됐는지 여부
- Impacted Assets 섹션 — DMF가 연결된 객체의 계보에서 하위(downstream)에 있는 객체들을 표시해요. 데이터 품질 문제가 있다면 다른 어떤 객체가 영향을 받을 수 있는지 판단할 수 있어요. 섹션 내용은 DMF가 단일 인자(시스템 DMF처럼)를 받는지 다중 인자를 받는지에 따라 달라져요.
- DMF가 컬럼 하나를 인자로 받는다면 Snowflake는 하위 객체가 그 컬럼의 데이터를 포함하는지 확인해요. 예를 들어
NULL_COUNTDMF가 테이블t1의name컬럼에서 NULL 값을 식별한다면,t1에서 만들어진 하위 뷰는name컬럼의 데이터를 포함할 때만 영향 받은 자산 목록에 나타나요. - DMF가 여러 컬럼을 인자로 받으면, 컬럼 데이터가 하위 객체에 없더라도 모든 하위 객체가 나타나요.
- DMF가 컬럼 하나를 인자로 받는다면 Snowflake는 하위 객체가 그 컬럼의 데이터를 포함하는지 확인해요. 예를 들어
- Run History 섹션 — 시간에 따른 DMF 결과를 그래픽으로 표시해 추세를 파악하게 해 줘요.
참고: 데이터 품질 모니터링은 Enterprise Edition 기능이에요. 업그레이드를 문의하려면 Snowflake 지원에 연락해 주세요.