본문 바로가기

AWS

[AWS] AWS Glue Data Quality Pre-processing Query 구성 방법

AWS Glue Data Quality는 데이터 레이크 환경에서 품질 검증을 표준화하기 위한 서비스입니다.
최근 Pre-processing Query 기능이 GA(정식 출시) 되면서, 데이터 품질 평가 전에 SQL 기반 전처리를 직접 수행할 수 있게 되었습니다.

AWS Glue Data Quality Pre-processing Query 개요

기존 Glue Data Quality는 카탈로그에 등록된 테이블 원본 데이터를 기준으로 바로 품질 평가를 수행했습니다.
이 방식은 단순한 null 체크나 범위 검증에는 충분했지만, 다음과 같은 경우에는 한계가 있었습니다.

  • 파생 컬럼이 필요한 경우
  • 특정 조건의 데이터만 품질 검증을 하고 싶은 경우
  • 데이터 정규화 후 품질을 평가해야 하는 경우

Pre-processing Query는 이 문제를 해결하기 위해 도입되었습니다.

품질 규칙 실행 직전에 SQL 쿼리를 한 번 더 실행하여, 결과 데이터셋을 기준으로 품질 평가를 수행합니다.

별도의 Glue Job이나 ETL 파이프라인을 추가하지 않아도 되며,
Data Quality API 흐름 안에서 자연스럽게 동작합니다.

Pre-processing Query 적용 범위

공식 문서를 기준으로 보면 Pre-processing Query는 다음 두 API에서 사용됩니다.

  • StartDataQualityRuleRecommendationRun
  • StartDataQualityRulesetEvaluationRun

중요한 점은 Data Catalog 테이블을 직접 수정하지 않는다는 점입니다.
Pre-processing Query는 품질 평가 시점에만 임시 데이터셋을 생성합니다.

즉,

  • 원본 데이터: 변경 없음
  • 전처리 결과: 품질 평가 용도 전용

이 구조는 운영 데이터 안정성 측면에서 상당히 안전합니다.

설정

1. Data Catalog 테이블 준비

Pre-processing Query는 반드시 Glue Data Catalog에 등록된 테이블을 기준으로 합니다.

  • 크롤러 또는 직접 테이블 정의 필요
  • Athena에서 조회 가능한 구조여야 합니다
  • Parquet, ORC, CSV 등 일반적인 포맷은 모두 지원됩니다

여기까지는 기존 Glue Data Quality와 동일합니다.

2. Pre-processing Query 작성

Pre-processing Query는 Athena SQL 문법과 동일한 SQL을 사용합니다.
실제로 테스트해본 결과, 복잡한 윈도우 함수보다는 명확한 SELECT 기반 전처리가 안정적이었습니다.

예시:

SELECT
  order_id,
  customer_id,
  order_date,
  tax + shipping_fee AS total_fees
FROM orders
WHERE order_date >= DATE '2025-01-01'

이 쿼리는 다음을 수행합니다.

  • 파생 컬럼 생성 (total_fees)
  • 특정 기간 데이터만 품질 평가 대상으로 제한

이 결과 셋을 기준으로 이후 품질 규칙이 실행됩니다.

3. 품질 규칙 또는 추천 실행 시 Query 지정

콘솔에서는 Data Quality 설정 단계에서 Pre-processing Query 입력란이 추가되어 있습니다.
API 기준으로는 PreProcessingQuery 필드를 사용합니다.

예시:

"PreProcessingQuery": {
  "Sql": "SELECT ... FROM ... WHERE ..."
}

여기서 주의할 점은 다음과 같습니다.

  • Query 결과 컬럼만 품질 규칙 대상이 됩니다
  • 원본 테이블 컬럼과 규칙 컬럼이 불일치하면 평가가 실패합니다
  • 컬럼 이름 변경 시 규칙도 함께 수정해야 합니다

활용 시나리오

파생 컬럼 기반 품질 검증

실무에서 가장 많이 사용한 패턴입니다.

  • 금액 합계
  • 비율 계산
  • 상태 코드 변환

이전에는 Glue Job으로 전처리 후 별도 테이블을 만들어야 했지만,
Pre-processing Query로 품질 평가 단계에서 바로 처리할 수 있습니다.

특정 데이터만 품질 평가

대용량 테이블에서 전체 데이터를 품질 검사하는 것은 비용과 시간이 부담됩니다.

  • 특정 파티션
  • 최근 데이터
  • 특정 상태 값

이런 조건을 Query에서 걸러내면 품질 검사 속도와 비용을 동시에 줄일 수 있습니다.

복잡한 ETL 단계 제거

기존 구조는 다음과 같았습니다.

  1. Glue Job 전처리
  2. 임시 테이블 생성
  3. Data Quality 실행

Pre-processing Query 적용 후에는 다음으로 단순화됩니다.

  1. Data Quality 실행 (전처리 포함)

운영 복잡도가 확실히 줄어듭니다.

주의사항

공식 발표 기준으로 보면,

  • 추가 요금은 없습니다
  • 기존 Glue Data Quality 과금 모델과 동일합니다
  • Glue Data Quality가 제공되는 모든 상용 리전에서 사용 가능합니다

다만, Query가 복잡해질수록 실행 시간은 늘어날 수 있습니다.
전처리를 과도하게 넣는 것은 추천하지 않습니다.

정리

Pre-processing Query는 ETL을 대체하는 기능은 아닙니다. 하지만 품질 검증을 위한 최소한의 전처리에는 충분합니다.

특히 다음 환경에서는 효과적입니다.

  • Athena 기반 데이터 레이크
  • 품질 규칙이 자주 바뀌는 환경
  • 운영 파이프라인을 단순화하고 싶은 경우

Glue Job을 하나 줄일 수 있다는 것만으로도 운영 부담이 확실히 줄어듭니다.