자동 데이터 품질 개요

이 문서에서는 데이터 품질을 정의하고 측정할 수 있는 Dataplex 자동 데이터 품질을 설명합니다. 데이터 스캔을 자동화하고 정의된 규칙에 따라 데이터를 검증하며 데이터가 품질 요구사항을 충족하지 않으면 알림을 로깅할 수 있습니다. 데이터 품질 규칙 및 배포를 코드로 관리하여 데이터 프로덕션 파이프라인의 무결성을 향상시킬 수 있습니다.

Dataplex 데이터 프로파일링 규칙 권장사항을 사용하거나 Google Cloud 콘솔에서 커스텀 규칙을 빌드하여 시작할 수 있습니다. Dataplex는 Dataplex 자동 데이터 품질과 통합된 모니터링, 문제 해결, Cloud Logging 알림을 제공합니다.

개념 모델

데이터 품질 스캔은 테이블 데이터에 품질 규칙을 적용하여 결과를 보고합니다.

데이터 스캔은 BigQuery 및 Cloud Storage에서 데이터를 샘플링하고 다양한 유형의 메타데이터를 추론하는 Dataplex 작업입니다. 자동 데이터 품질을 사용하여 테이블의 품질을 측정하려면 data quality 유형의 DataScan 객체를 만듭니다. 스캔은 하나의 BigQuery 테이블에서만 실행됩니다. 스캔은 Google 테넌트 프로젝트의 리소스를 사용하므로 자체 인프라를 설정할 필요가 없습니다.

데이터 품질 스캔을 만들고 사용하는 단계는 다음과 같습니다.

  1. 규칙 정의
  2. 규칙 실행
  3. 모니터링 및 알림
  4. 문제 해결

규칙 정의

데이터 품질 스캔과 관련된 데이터 품질 규칙은 데이터 기대치를 정의합니다. 다음과 같은 방법으로 데이터 품질 규칙을 만들 수 있습니다.

사전 정의된 규칙

Dataplex는 행 수준 또는 집계의 두 가지 사전 정의된 규칙 카테고리를 지원합니다.

행 수준

행 수준 카테고리 규칙의 경우 각 데이터 행에 대해 예측이 적용됩니다. 각 행은 조건을 독립적으로 통과하거나 실패합니다. 예를 들면 column_A_value < 1입니다.

행 수준 확인을 수행하려면 통과 기준을 지정해야 합니다. 규칙을 통과하는 행의 비율이 기준 값 아래로 떨어지면 규칙은 실패합니다.

집계

집계 규칙의 경우 예측은 전체 데이터에서 집계된 단일 값에 적용됩니다. 예를 들면 Avg(someCol) >= 10입니다. 통과하려면 검사가 불리언 true로 평가되어야 합니다. 집계 규칙은 각 행에 대해 독립적인 통과 또는 실패 수를 제공하지 않습니다.

두 규칙 카테고리 모두에서 다음 매개변수를 설정할 수 있습니다.

  • 규칙이 적용되는 열
  • 사전 정의된 측정기준 집합에서 가져온 측정기준

다음 표에는 지원되는 행 수준 및 집계 규칙 유형이 나열되어 있습니다.

규칙 유형
(Google Cloud 콘솔에서의 이름)
행 수준 또는 집계 규칙 설명 지원되는 열 유형 규칙별 매개변수
RangeExpectation
(범위 확인)
행 수준 값이 최솟값과 최댓값 사이인지 확인합니다. 모든 숫자, 날짜, 타임스탬프 유형 열 필수:
  • 통과 기준 비율
  • mean, min 또는 max 값: 값을 최소 하나 이상 지정합니다.
선택사항:
  • strict min 사용 설정: 사용 설정하면 규칙 검사에서 '>=' 대신 '>'를 사용합니다.
  • strict max 사용 설정: 사용 설정하면 규칙 검사에서 '<=' 대신 '<'를 사용합니다.
  • ignore null 사용 설정: 사용 설정하면 규칙 검사에서 null 값이 무시됩니다.
NonNullExpectation
(null 확인)
행 수준 열 값이 NULL이 아닌지 확인합니다. 지원되는 모든 열 유형 필수:
  • 통과 기준의 비율
SetExpectation
(설정 확인)
행 수준 열의 값이 세트에 지정된 값 중 하나인지 확인합니다. 지원되는 모든 열 유형(RecordStruct 제외) 필수:
  • 확인할 문자열 값의 집합입니다.
  • 통과 기준의 비율
선택사항:
  • ignore null 사용 설정: 사용 설정하면 규칙 검사에서 null 값이 무시됩니다.
RegexExpectation
(정규 표현식 확인)
행 수준 지정된 정규 표현식으로 값을 다시 확인합니다. 문자열 필수:
  • 확인에 사용되는 정규 표현식 패턴입니다.
  • 통과 기준의 비율
  • 참고: Cloud 표준 SQL은 re2 라이브러리를 사용하여 정규 표현식을 지원합니다. 정규 표현식 문법은 해당 문서를 참조하세요.
선택사항:
  • ignore null 사용 설정: 사용 설정하면 규칙 검사에서 null 값이 무시됩니다.
Uniqueness
(고유성 확인)
집계 열의 모든 값이 고유한지 확인합니다. 지원되는 모든 열 유형(RecordStruct 제외) 필수:
  • 지원되는 매개변수의 열 및 측정기준입니다.
선택사항:
  • ignore null 사용 설정: 사용 설정하면 규칙 검사에서 null 값이 무시됩니다.
StatisticRangeExpectation
(통계 확인)
집계 제공된 통계 측정이 예상 범위와 일치하는지 확인합니다. 지원되는 모든 숫자 열 유형입니다. 필수:
  • mean, min 또는 max 값: 값을 최소 하나 이상 지정합니다.
선택사항:
  • strict min 사용 설정: 사용 설정하면 규칙 검사에서 '>=' 대신 '>'를 사용합니다.
  • strict max 사용 설정: 사용 설정하면 규칙 검사에서 '<=' 대신 '<'를 사용합니다.

지원되는 커스텀 SQL 규칙 유형

SQL 규칙은 커스텀 로직으로 검증을 확장할 수 있는 유연성을 제공합니다. 이러한 규칙은 두 가지 유형으로 제공됩니다.

규칙 유형 행 수준 또는 집계 규칙 설명 지원되는 열 유형 규칙별 매개변수 예시
행 조건 행 수준 where 절에 SQL 표현식을 정의하여 모든 행에서 예측을 지정할 수 있습니다. SQL 표현식은 행당 true(통과) 또는 false(실패)로 평가되어야 합니다.
Dataplex는 이 기대치를 통과하는 행의 비율을 계산하고 통과 기준 비율과 비교하여 규칙의 성공 또는 실패를 결정합니다.
예를 들어 참조 무결성 검사를 만들기 위해 다른 테이블에 대한 참조를 포함할 수 있습니다.
모든 열 필수:
  • 사용할 SQL 조건
  • 통과 기준 비율
  • 측정기준
선택사항:
  • 이 규칙을 연결할 열입니다.
grossWeight <= netWeight
집계 SQL 표현식 집계 이러한 규칙은 테이블당 한 번 실행됩니다. 불리언 true(통과) 또는 false(실패)로 평가되는 SQL 표현식을 제공합니다.
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_scandata_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

다음 단계