awslabs/deequ

Deequ is a library built on top of Apache Spark for defining "unit tests for data", which measure data quality in large datasets.

해결하는 문제

Deequ는 대규모 데이터셋을 "단위 테스트"할 수 있는 방법을 제공하여, 손상되거나 잘못된 데이터가 소비 시스템이나 머신러닝 알고리즘에 도달하는 것을 조기에 방지합니다. 개발자는 데이터에 대한 가정(예: 특정 컬럼에 null 값이 없음)을 명시적으로 기술하고, 대규모에서 검증할 수 있습니다.

작동 방식

Apache Spark 위에 구축된 Deequ는 테이블 형식 데이터(CSV, 데이터베이스 테이블, 로그 등)를 처리하며, 정의된 제약 조건을 Spark 작업 시리즈로 변환하여 메트릭을 계산합니다. Scala/Java API 또는 선언형 언어인 DQDL(Data Quality Definition Language)을 사용하여 완전성, 고유성, 범위 검사와 같은 규칙을 정의할 수 있습니다. 또한 행 수준 평가를 지원하여 특정 규칙에 실패한 정확한 레코드를 식별할 수 있습니다.

대상 사용자

대규모 데이터셋(십억 개 이상의 행)을 분산 파일 시스템이나 데이터 웨어하우스에서 다루며 데이터 품질과 일관성을 보장해야 하는 데이터 엔지니어 및 ML 전문가.

주요 특징

  • 스케일링 가능한 검증: Apache Spark를 활용해 십억 개 이상의 행에 대해 설계됨.
  • 선언형 규칙: 읽기 쉬운 간단한 규칙 정의를 가능하게 하는 DQDL 지원.
  • 코드 기반 제약 조건: 사분위수, URL 패턴, 크기 제약 조건과 같은 복잡한 검사를 정의할 수 있는 유연한 API.
  • 고급 분석: 데이터 프로파일링, 시간에 따른 메트릭 이상 탐지, 자동 제약 조건 제안 기능 포함.
  • 행 수준 추적: 품질 검사에 실패한 특정 행을 식별할 수 있는 기능.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트