이 문서에서는 데이터 품질을 정의하고 측정할 수 있는 Dataplex 자동 데이터 품질을 설명합니다. 데이터 스캔을 자동화하고 정의된 규칙에 따라 데이터를 검증하며 데이터가 품질 요구사항을 충족하지 않으면 알림을 로깅할 수 있습니다. 데이터 품질 규칙 및 배포를 코드로 관리하여 데이터 프로덕션 파이프라인의 무결성을 향상시킬 수 있습니다.
Dataplex 데이터 프로파일링 규칙 권장사항을 사용하거나 Google Cloud 콘솔에서 커스텀 규칙을 빌드하여 시작할 수 있습니다. Dataplex는 Dataplex 자동 데이터 품질과 통합된 모니터링, 문제 해결, Cloud Logging 알림을 제공합니다.
개념 모델
데이터 스캔은 BigQuery 및 Cloud Storage에서 데이터를 샘플링하고 다양한 유형의 메타데이터를 추론하는 Dataplex 작업입니다. 자동 데이터 품질을 사용하여 테이블의 품질을 측정하려면 data quality
유형의 DataScan
객체를 만듭니다. 스캔은 하나의 BigQuery 테이블에서만 실행됩니다. 스캔은 Google 테넌트 프로젝트의 리소스를 사용하므로 자체 인프라를 설정할 필요가 없습니다.
데이터 품질 스캔을 만들고 사용하는 단계는 다음과 같습니다.
- 규칙 정의
- 규칙 실행
- 모니터링 및 알림
- 문제 해결
규칙 정의
데이터 품질 스캔과 관련된 데이터 품질 규칙은 데이터 기대치를 정의합니다. 다음과 같은 방법으로 데이터 품질 규칙을 만들 수 있습니다.
- Dataplex 데이터 프로파일링의 권장사항 사용
- 사전 정의된 규칙 사용
- 커스텀 SQL 규칙 만들기
사전 정의된 규칙
Dataplex는 행 수준 또는 집계의 두 가지 사전 정의된 규칙 카테고리를 지원합니다.
- 행 수준
행 수준 카테고리 규칙의 경우 각 데이터 행에 대해 예측이 적용됩니다. 각 행은 조건을 독립적으로 통과하거나 실패합니다. 예를 들면
column_A_value < 1
입니다.행 수준 확인을 수행하려면 통과 기준을 지정해야 합니다. 규칙을 통과하는 행의 비율이 기준 값 아래로 떨어지면 규칙은 실패합니다.
- 집계
집계 규칙의 경우 예측은 전체 데이터에서 집계된 단일 값에 적용됩니다. 예를 들면
Avg(someCol) >= 10
입니다. 통과하려면 검사가 불리언true
로 평가되어야 합니다. 집계 규칙은 각 행에 대해 독립적인 통과 또는 실패 수를 제공하지 않습니다.
두 규칙 카테고리 모두에서 다음 매개변수를 설정할 수 있습니다.
- 규칙이 적용되는 열
- 사전 정의된 측정기준 집합에서 가져온 측정기준
다음 표에는 지원되는 행 수준 및 집계 규칙 유형이 나열되어 있습니다.
규칙 유형 (Google Cloud 콘솔에서의 이름) |
행 수준 또는 집계 규칙 | 설명 | 지원되는 열 유형 | 규칙별 매개변수 |
---|---|---|---|---|
RangeExpectation (범위 확인) |
행 수준 | 값이 최솟값과 최댓값 사이인지 확인합니다. | 모든 숫자, 날짜, 타임스탬프 유형 열 | 필수:
|
NonNullExpectation (null 확인) |
행 수준 | 열 값이 NULL이 아닌지 확인합니다. | 지원되는 모든 열 유형 | 필수:
|
SetExpectation (설정 확인) |
행 수준 | 열의 값이 세트에 지정된 값 중 하나인지 확인합니다. | 지원되는 모든 열 유형(Record 및 Struct 제외) |
필수:
|
RegexExpectation (정규 표현식 확인) |
행 수준 | 지정된 정규 표현식으로 값을 다시 확인합니다. | 문자열 | 필수:
|
Uniqueness (고유성 확인) |
집계 | 열의 모든 값이 고유한지 확인합니다. | 지원되는 모든 열 유형(Record 및 Struct 제외) |
필수:
|
StatisticRangeExpectation (통계 확인) |
집계 | 제공된 통계 측정이 예상 범위와 일치하는지 확인합니다. | 지원되는 모든 숫자 열 유형입니다. | 필수:
|
지원되는 커스텀 SQL 규칙 유형
SQL 규칙은 커스텀 로직으로 검증을 확장할 수 있는 유연성을 제공합니다. 이러한 규칙은 두 가지 유형으로 제공됩니다.
규칙 유형 | 행 수준 또는 집계 규칙 | 설명 | 지원되는 열 유형 | 규칙별 매개변수 | 예시 |
---|---|---|---|---|---|
행 조건 | 행 수준 | where 절에 SQL 표현식을 정의하여 모든 행에서 예측을 지정할 수 있습니다. SQL 표현식은 행당 true (통과) 또는 false (실패)로 평가되어야 합니다.
Dataplex는 이 기대치를 통과하는 행의 비율을 계산하고 통과 기준 비율과 비교하여 규칙의 성공 또는 실패를 결정합니다. 예를 들어 참조 무결성 검사를 만들기 위해 다른 테이블에 대한 참조를 포함할 수 있습니다. |
모든 열 | 필수:
|
grossWeight <= netWeight |
집계 SQL 표현식 | 집계 | 이러한 규칙은 테이블당 한 번 실행됩니다. 불리언 true (통과) 또는 false (실패)로 평가되는 SQL 표현식을 제공합니다.SQL 표현식에는 표현식 서브 쿼리를 사용하여 다른 테이블에 대한 참조를 포함할 수 있습니다. |
모든 열 | 필수:
|
간단한 집계 예시:avg(price) > 100 표현식 서브 쿼리를 사용하여 서로 다른 테이블 값 비교: (SELECT COUNT(*) FROM `example_project.example_dataset.different-table`) < COUNT(*) |
규칙의 예시는 자동 데이터 품질 샘플 규칙을 참조하세요.
지원되는 SQL 함수는 GoogleSQL 참조를 확인하세요.
측정기준
측정기준을 사용하면 모니터링 및 알림에 사용되는 여러 데이터 품질 규칙의 결과를 집계할 수 있습니다. 모든 데이터 품질 규칙을 측정기준과 연결해야 합니다. Dataplex는 다음 측정기준을 지원합니다.
- 최신 상태
- 볼륨
- 완료도
- 유효성
- 일관성
- 정확성
- 고유성
규칙에 입력된 입력
모든 값의 매개변수는 문자열 값으로 API에 전달됩니다. Dataplex를 사용하려면 BigQuery 지정 형식을 따르기 위한 입력이 필요합니다.
바이너리 유형 매개변수는 base64로 인코딩된 문자열로 전달될 수 있습니다.
유형 | 지원되는 형식 | 예시 |
---|---|---|
바이너리 | Base64로 인코딩된 값 | YXBwbGU= |
타임스탬프 | YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]] [time_zone] 또는 YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset] |
2014-09-27 12:30:00.45-08 |
날짜 | YYYY-M[M]-D[D] | 2014-09-27 |
시간 | [H]H:[M]M:[S]S[.DDDDDD] | 12:30:00.45 |
DateTime | YYYY-[M]M-[D]D [[H]H:[M]M:[S]S[.DDDDDD]] | 2014-09-27 12:30:00.45 |
규칙 실행
데이터 품질 스캔이 특정 간격으로 실행되도록 예약하거나 요청 시 스캔을 실행할 수 있습니다. 데이터 품질 스캔을 관리하려면 API 또는 Google Cloud 콘솔을 사용하면 됩니다.
데이터 품질 스캔을 실행하면 Dataplex가 작업을 만듭니다. 데이터 품질 스캔 사양의 일부로 작업 범위를 다음 중 하나로 지정할 수 있습니다.
- 전체 테이블
- 각 작업은 전체 테이블을 검증합니다.
- 증분
- 각 작업은 증분 데이터를 검증합니다. 증분을 결정하려면 마커로 사용할 수 있는
Date
/Timestamp
열을 테이블에 제공합니다. 일반적으로 이 테이블은 테이블의 파티션을 나눈 열입니다.
데이터 필터링
Dataplex는 행 필터를 사용하여 데이터 품질을 위해 스캔할 데이터를 필터링할 수 있습니다. 행 필터를 만들면 특정 기간 또는 특정 리전과 같은 특정 세그먼트 내의 데이터에 집중할 수 있습니다. 필터를 사용하면 예를 들어 특정 날짜 이전의 타임스탬프가 있는 데이터를 필터링하여 실행 시간과 비용을 줄일 수 있습니다.
샘플 데이터
Dataplex를 사용하면 데이터 품질 스캔을 실행하기 위해 데이터에서 샘플링할 레코드의 비율을 지정할 수 있습니다. 소량의 데이터 샘플에 데이터 품질 스캔을 만들면 실행 시간과 전체 데이터 세트의 쿼리 비용이 절약됩니다.
모니터링 및 알림
추가 분석을 위해 스캔 결과를 BigQuery 테이블로 내보낼 수 있습니다. 보고를 맞춤설정하려면 BigQuery 테이블 데이터를 Looker 대시보드에 연결하면 됩니다. 여러 스캔에서 동일한 결과 테이블을 사용하여 집계 보고서를 빌드할 수 있습니다.
로그 탐색기에서 data_scan
및 data_quality_scan_rule_result
로그를 사용하여 데이터 품질 작업을 모니터링할 수 있습니다.
각 데이터 품질 작업에 대해 data_scan_type
필드가 DATA_QUALITY
로 설정된 data_scan
로그에 다음 정보가 포함됩니다.
- 데이터 스캔에 사용되는 데이터 소스입니다.
- 생성 시간, 시작 시간, 종료 시간, 작업 상태와 같은 작업 실행 세부정보
- 데이터 품질 작업의 결과: 성공 또는 실패
- 측정기준 수준 통과 또는 실패
성공한 모든 작업에는 해당 작업의 각 규칙에 대한 다음 세부정보가 포함된 data_quality_scan_rule_result
로그가 포함됩니다.
- 규칙 이름, 규칙 유형, 평가 유형, 측정기준 등의 구성 정보
- 성공 또는 실패, 총 행 수, 통과한 행 수, null 행 수, 평가된 행 수와 같은 결과 정보
로그의 정보는 API 및 Google Cloud Console을 통해 제공됩니다. 이 정보를 사용하여 알림을 설정할 수 있습니다. 자세한 내용은 Cloud Logging에서 알림 설정을 참조하세요.
문제 해결 실패
규칙이 실패하면 Dataplex가 실패한 열뿐만 아니라 테이블의 모든 열을 반환하는 쿼리를 생성합니다.
제한사항
- 데이터 품질 스캔 결과는 Data Catalog에 태그로 게시되지 않습니다.
- 규칙 권장사항은 Google Cloud 콘솔에서만 지원됩니다.
- 측정기준 선택은 사전 정의된 7가지 측정기준 중 하나로 고정되어 있습니다.
- 데이터 품질 스캔당 규칙 수는 1,000개로 제한됩니다.
가격 책정
Dataplex는 프리미엄 처리 SKU를 사용하여 자동 데이터 품질에 대한 요금을 청구합니다. 자세한 내용은 Dataplex 가격 책정을 참조하세요.
자동 데이터 품질 결과를 카탈로그에 게시하는 기능은 아직 제공되지 않습니다. 사용할 수 있게 되면 카탈로그 메타데이터 스토리지 가격 책정과 동일한 요금이 부과됩니다. 자세한 내용은 가격 책정을 참조하세요.
자동 데이터 품질을 위한 Dataplex 프리미엄 처리는 1분을 최소로 해서 초 단위로 요금이 청구됩니다.
실패한 데이터 품질 스캔에는 요금이 부과되지 않습니다.
요금은 행 수, 열 수, 스캔한 데이터 양, 데이터 품질 규칙 구성, 테이블의 파티션 나누기 및 클러스터링 설정, 스캔 빈도에 따라 달라집니다.
자동 데이터 품질 스캔 비용을 줄일 수 있는 다음과 같은 몇 가지 옵션이 있습니다.
데이터 품질 요금을 Dataplex 프리미엄 처리 SKU의 다른 요금과 분리하고
goog-dataplex-workload-type
라벨에DATA_QUALITY
값을 사용합니다.집계 요금을 필터링합니다. 다음 라벨을 사용합니다.
goog-dataplex-datascan-data-source-dataplex-entity
goog-dataplex-datascan-data-source-dataplex-lake
goog-dataplex-datascan-data-source-dataplex-zone
goog-dataplex-datascan-data-source-project
goog-dataplex-datascan-data-source-region
goog-dataplex-datascan-id
goog-dataplex-datascan-job-id
다음 단계
- 자동 데이터 품질 사용 방법 알아보기
- 데이터 프로파일링 알아보기
- 데이터 프로파일링 사용 방법 알아보기