Data Quality (2) - Great Expectations 개요

jihunnit·2025년 10월 15일
0

데이터엔지니어링

목록 보기
5/6

Data Quality 관련 도구에는 다양한 것들이 있다.
그 중에서도, 가장 큰 커뮤니티를 가진 도구인 Great Expectations에 대해 알아보겠다.

공식 깃허브, 대략 10.9k star면 훌륭한 것 같다.

gx-core와 gx cloud가 존재한다. gx-core의 경우 Apache-2.0 license 이다.

기본적으로는 python 기반 품질 관리 도구이고, 다양한 data engineering 도구들과 연동할 수 있다.
필자는 spark를 주로 사용하므로 이에 대해 같이 사용해 볼 것이다.

보통은 datalake에서 그 이후 warehouse, mart 및 ML/DL 모델 등 다양한 곳으로 데이터가 흘러갈텐데, 이 때 이 흘러갈 data의 quality를 검증한다고 생각하면 된다.


기본적인 구조

  • Data Context: 프로젝트의 전체 설정과 메타데이터 관리. 3가지 타입 존재
    • Ephemeral: In-Memory, 메타데이터를 영속적으로 저장하지는 않음. PoC 용도
    • FilesystemData: 가장 기본적인 형태. 메타데이터를 filesystem에 저장
    • Cloud: 위에서 언급한 gx cloud를 사용할 때 사용 가능
  • Data Source: 데이터가 저장되어 있는곳. Databricks, RDBMS, Spark, Pandas 등
  • Data Asset: Source에 저장된 dataset을 의미한다고 보면 됨. 즉 우리의 quality testing 대상
  • Batch Definition: Asset을 이제 어떻게 처리할것인가에 대한 설정. batch size 등
  • Expectation Suite: 우리가 정의할 Expectations(데이터 품질 규칙) 집합
  • Expectation: 데이터에 대한 품질 규칙. 예를 들어
    • col1은 not null 이어야 함
    • col2는 정수값인데 max=100, min=0 범위 안에 있어야 함. 등
  • Validation: 위의 Batch Definition과 Excetation Suite를 사용해서, 즉 정의된 batch 대상에 해당 suite 적용

3편에서 실제 spark와 gx-core의 연동을 다뤄보겠다.

profile
인간은 노력하는 한 방황한다

0개의 댓글