Snowsight로 데이터 품질 체크 설정하기
Snowsight로 데이터 품질 체크 설정하기
이 주제는 Snowsight로 데이터 품질 체크를 설정하는 방법을 설명해요. 품질 체크를 설정하는 방법은 크게 두 가지예요.
출처: Snowflake User Guide - Set up quality checks in Snowsight
본문
데이터 품질 체크를 설정하는 전략:
- AI 사용 — 데이터의 특성과 사용 패턴을 바탕으로 AI가 데이터 품질 체크를 지능적으로 추천해요. (Cortex Data Quality로 품질 체크 설정하기 참고)
- 수동 정의 — 데이터 메트릭 함수(DMF)가 반환하길 기대하는 값을 직접 정의해요. (수동으로 품질 체크 설정하기 참고)
데이터 품질 체크의 개념 소개는 데이터 품질 체크의 핵심 개념을 참고해요.
Cortex Data Quality로 품질 체크 설정하기
Cortex Data Quality는 메타데이터의 특성을 바탕으로 AI를 사용해 데이터 품질 체크를 추천해요. 추천을 수락하면 Snowflake가 정기적으로 데이터의 품질 문제를 검사해 식별해 줘요.
Cortex Data Quality는 Snowflake Cortex의 AI_COMPLETE 함수를 활용해 데이터 품질 체크를 지능적으로 추천해요. Snowflake Cortex 내부에서 안전하게 실행되므로 엔터프라이즈 데이터와 메타데이터가 항상 Snowflake 안에 머물러요. 또한 Cortex Data Quality는 Snowflake 접근 제어를 완전히 준수하며, 접근할 수 있는 데이터만을 바탕으로 추천을 제공해요.
Cortex Data Quality로 품질 체크를 설정하려면:
- Snowsight에 로그인해요.
- 탐색 메뉴에서 Catalog » Explorer를 선택하고 객체를 선택해요.
- Data Quality 탭을 선택해요.
- Monitoring을 선택해요.
- 다음 중 하나를 수행해요:
- 품질 체크를 처음 설정하는 경우 Get started를 선택해요.
- 추가 품질 체크를 설정하는 경우 Add quality check를 선택한 뒤 Suggested quality checks를 선택해요.
- 추천된 데이터 품질 체크를 검토해요. 데이터가 품질 체크를 통과하는지 판단하는 기준을 바꾸려면 What should the result be? 컬럼의 내용을 편집해요.
- 구현하려는 품질 체크를 선택한 뒤 Apply를 선택해요.
Cortex Data Quality에 대한 더 자세한 내용은 Cortex Data Quality에 대해 더 알아보기 섹션을 참고해요.
수동으로 품질 체크 설정하기
데이터에 대한 지식을 바탕으로 데이터 품질 체크를 만들려면:
- Snowsight에 로그인해요.
- 탐색 메뉴에서 Catalog » Explorer를 선택하고 객체를 선택해요.
- Data Quality 탭을 선택해요.
- Monitoring을 선택해요.
- 다음 중 하나를 수행해요:
- 처음 설정하는 경우 Start manually를 선택해요.
- 추가로 설정하는 경우 Add quality check를 선택한 뒤 Build checks manually를 선택해요.
- Set up a quality check 대화상자에서 만들려는 체크 유형을 선택해요.
- 데이터가 품질 체크를 통과하는지 판단하는 기준을 구성한 뒤 Save를 선택해요.
팁: Snowflake가 데이터의 과거 용량·신선도를 바탕으로 데이터 품질 문제를 자동 감지하도록 이상 감지(anomaly detection)를 켜고 싶다면, Cortex Data Quality를 사용해 이상 감지 추천을 수락하거나 이상 감지를 수동으로 설정해요.
품질 체크 실행 빈도 조정하기
테이블이나 뷰의 스케줄은 데이터 품질 체크를 구동하는 DMF가 실행되는 빈도를 결정해요. 스케줄은 시간 기반이거나 테이블 갱신 기반일 수 있어요.
참고: 품질 체크를 하나 이상 추가한 뒤에야 Snowsight로 스케줄을 조정할 수 있어요. 테이블·뷰의 스케줄은 언제든
ALTER <object>명령으로 설정할 수 있어요.
- Snowsight에 로그인해요.
- 탐색 메뉴에서 Catalog » Explorer를 선택하고 객체를 선택해요.
- Data Quality 탭을 선택해요.
- Monitoring을 선택해요.
- Settings를 선택해요.
- DMF 실행 빈도를 지정해요:
- 하루 이하의 정기 간격으로 실행: Interval-based timing을 선택하고 드롭다운에서 간격을 선택해요.
- 커스텀 스케줄: Select schedule을 선택하고 스케줄을 설정해요.
- 테이블에 DML 변경이 있을 때(예: 행 추가) 실행: Trigger-based execution을 선택해요.
Cortex Data Quality에 대해 더 알아보기
필요한 LLM:
CORTEX_MODELS_ALLOWLIST 계정 파라미터가 계정 안에서 mistral-7b와 llama3.1-8b 모델을 허용하지 않으면 Cortex Data Quality는 동작하지 않아요. 기본적으로 두 모델 모두 허용돼요.
접근 제어 요건:
ACCOUNTADMIN 역할을 가진 관리자는 Cortex로 데이터 품질 체크를 추천하는 데 필요한 모든 권한을 가져요. 그 외 사용자는 다음 권한과 역할이 필요해요.
- 테이블에 대한
OWNERSHIP권한 - 계정에 대한
EXECUTE DATA METRIC FUNCTION권한 SNOWFLAKE.DATA_METRIC_USER데이터베이스 역할SNOWFLAKE.CORTEX_USER데이터베이스 역할
접근 제한하기:
기본적으로 CORTEX_USER 데이터베이스 역할은 PUBLIC 역할에 부여되어 모든 사용자가 갖게 돼요. 모든 사용자가 Snowflake Cortex 기능을 쓰길 원하지 않는다면 이 데이터베이스 역할을 PUBLIC 역할에서 회수하고 특정 역할에 부여하면 돼요.
CORTEX_USER 데이터베이스 역할을 PUBLIC 역할에서 회수해 사용자가 Cortex로 품질 체크를 추천하지 못하게 하려면 다음 명령을 실행해요. ACCOUNTADMIN 역할을 사용해야 해요.
USE ROLE ACCOUNTADMIN;
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM ROLE PUBLIC;
이제 CORTEX_USER 데이터베이스 역할을 특정 역할에 부여해 선택적으로 접근 권한을 줄 수 있어요. 다음 예시는 ACCOUNTADMIN 역할을 사용해, 이 목적으로 만든 계정 역할 cortex_access_role을 통해 사용자 some_user에게 CORTEX_USER 데이터베이스 역할을 부여해요.
USE ROLE ACCOUNTADMIN;
CREATE ROLE cortex_access_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE cortex_access_role;
GRANT ROLE cortex_access_role TO USER some_user;
기존 역할에 CORTEX_USER 데이터베이스 역할을 부여할 수도 있어요.
비용 고려 사항:
Cortex Data Quality 사용 비용은 다음으로 구성돼요.
COMPLETE (SNOWFLAKE.CORTEX)함수와 관련된 비용. 이 비용은 Snowflake Cortex의 모든 사용을 포함하는 AI-Services로 청구서에 표시돼요.- Snowsight를 실행하는 기본 웨어하우스의 컴퓨팅 비용.
법적 고지:
Cortex Data Quality는 이 페이지에서 설명한 대로 타사 모델·서비스를 활용해요. 입력과 출력의 데이터 분류는 다음 표와 같아요.
| 입력 데이터 분류 | 출력 데이터 분류 | 지정 |
|---|---|---|
| 사용 데이터(Usage Data) | 사용 데이터 | Preview AI 기능[1] |
[1] AI 약관 및 허용 가능한 사용 정책에서 정의된 용어를 나타내요. AI 사용에 대한 추가 정보는 Snowflake AI and ML을 참고해요.