AWS Glue Jobs & AWS Glue Data Quality(DQDL)

2026. 7. 20. 13:43·Data Engineering/AWS

들어가며

AWS Glue는 단순히 ETL 작업을 생성하는 것뿐만 아니라 작업을 자동으로 실행하고, 데이터 품질을 검증하는 기능도 제공합니다.

ETL 파이프라인에서는 데이터를 변환하는 것만큼이나 언제 실행할지(Job Scheduling) 와 데이터가 올바른지(Data Quality) 를 확인하는 과정도 중요합니다.

 

AWS Glue에서는 Job을 주기적으로 실행하거나 이벤트에 따라 실행할 수 있으며, 실행 과정에서 새로운 데이터만 처리하는 Job Bookmark 기능도 제공합니다. 또한 AWS Glue Data Quality를 이용하면 데이터의 Null 비율, 중복 여부, 값의 범위 등을 자동으로 검증할 수 있습니다.

 

이번 글에서는 AWS Glue Job의 실행 방식과 Data Quality, 그리고 DQDL(Data Quality Definition Language)의 기본 개념을 살펴보겠습니다.


1. AWS Glue Job이란?

https://tutorialsdojo.com/aws-glue/

AWS Glue Job은 ETL 코드를 실행하는 작업 단위입니다.

Job 내부에서는 데이터를 읽고(Extract), 필요한 형태로 변환(Transform)한 뒤, 원하는 저장소에 적재(Load)하는 과정을 수행합니다. Glue Job은 PySpark 또는 Scala 기반으로 작성할 수 있으며, 서버리스 환경에서 실행되므로 사용자가 Spark 클러스터를 직접 관리할 필요가 없습니다.


2. AWS Glue Job 실행 방식

2-1) 수동 실행

콘솔이나 CLI에서 직접 실행하는 방식입니다. 주로 개발 및 테스트 단계에서 사용됩니다.

2-2) 스케줄 실행

Cron 표현식을 이용하여 정해진 시간마다 자동 실행할 수 있습니다.

  • 매일 새벽 2시
  • 매시간
  • 매주 월요일 오전 9시

2-3) 이벤트 기반 실행

특정 이벤트가 발생하면 Glue Job이 자동 실행됩니다.

  • S3에 파일 업로드
  • Lambda 실행
  • EventBridge 이벤트
  • Step Functions 실행

3. Job Bookmark

Glue Job을 여러 번 실행하면 동일한 데이터를 계속 읽게 될 수도 있습니다. 이를 방지하기 위해 사용하는 기능이 Job Bookmark입니다.

Job Bookmark는 이전 실행 상태를 저장하여 이미 처리한 데이터는 건너뛰고 새로운 데이터만 처리합니다.

2025-01.csv   (처리 완료)
2025-02.csv   (처리 완료)
2025-03.csv   (신규)

다음 실행 시에는

2025-03.csv

만 처리하게 됩니다.

  • 중복 처리 방지
  • 실행 시간 감소
  • 비용 절감

효과를 얻을 수 있습니다.


4. Glue Job 실행 후 동작

Glue Job은 성공 또는 실패 이후에도 다른 AWS 서비스와 연동할 수 있습니다.

  • ETL 성공 → SNS 알림
  • 실패 → Lambda 호출
  • 성공 → Step Functions 다음 단계 실행
  • 완료 → EventBridge 이벤트 발생

이처럼 Glue Job은 데이터 파이프라인의 일부로 쉽게 연결할 수 있습니다.


5. AWS Glue Data Quality란?

https://medium.com/data-reply-it-datatech/aws-glue-data-quality-the-ultimate-guide-to-turning-data-into-reliable-decisions-2382ba9ab5c0

데이터를 저장하기 전에 데이터 품질을 자동으로 검사하는 기능입니다.

  • NULL이 너무 많은지
  • 중복 데이터가 있는지
  • 컬럼 값이 허용 범위를 벗어났는지
  • 날짜 형식이 올바른지

등을 자동으로 검증할 수 있습니다.

 

데이터 품질 검사는 ETL 과정 중간이나 적재 직전에 수행하는 경우가 많습니다. 위 예시는 AWS Glue Studio에서 Data Quality를 ETL 파이프라인에 적용하는 과정을 보여줍니다.

 

먼저 Amazon S3의 데이터를 읽은 뒤 EvaluateDataQuality 노드에서 DQDL(Data Quality Definition Language) 규칙을 적용하여 데이터 품질을 검사합니다. 검사 항목은 컬럼 개수, 데이터 타입, 문자열 길이, NULL 여부, 중복 여부 등 다양한 규칙으로 정의할 수 있습니다.

 

품질 검사가 완료되면 검증된 데이터를 다음 단계인 Amazon S3 또는 다른 저장소로 적재하여, ETL 과정에서 데이터 품질을 함께 관리할 수 있습니다.


6. DQDL(Data Quality Definition Language)

Glue Data Quality는 DQDL이라는 규칙 언어를 사용합니다. DQDL은 SQL과 비슷한 형태로 데이터 품질 규칙을 정의합니다.

Rules = [
    IsComplete "customer_id",
    IsUnique "customer_id"
]
  • customer_id는 NULL이면 안 된다.
  • customer_id는 중복되면 안 된다.

7. 자주 사용하는 DQDL 규칙

7-1) IsComplete

NULL 값이 없어야 합니다.

IsComplete "user_id"

7-2) IsUnique

중복 값이 없어야 합니다.

IsUnique "order_id"

7-3) ColumnValues

특정 범위의 값만 허용합니다.

ColumnValues "age" between 0 and 120

7-4) RowCount

행 개수를 검사합니다.

RowCount > 1000

7-5) ColumnExists

컬럼 존재 여부를 검사합니다.

ColumnExists "user_name"

8. Data Quality 실행 과정

 

데이터 품질 검사를 통과하면 다음 ETL 단계로 진행하고, 실패하면 로그를 남기거나 알림을 보낼 수 있습니다.


9. Glue Data Quality를 언제 사용할까?

  • 데이터 웨어하우스 적재 전 검증
  • 고객 정보 품질 검사
  • ETL 자동 검증
  • 운영 데이터 모니터링
  • 파이프라인 장애 예방

특히 여러 시스템에서 데이터를 수집하는 환경에서는 데이터 형식이 일정하지 않은 경우가 많아 Data Quality를 통해 이상 데이터를 미리 확인하는 것이 도움이 됩니다.


10. 마치며

이번 글에서는 AWS Glue Job의 실행 방식과 AWS Glue Data Quality를 살펴보았습니다.

 

처음에는 Glue Job을 단순히 ETL을 실행하는 기능으로 생각했지만, 학습하면서 정해진 시간이나 이벤트에 따라 작업을 자동으로 실행하고, Job Bookmark를 통해 이미 처리한 데이터를 제외하여 새로운 데이터만 처리할 수 있다는 점을 이해할 수 있었습니다.

또한 DQDL을 이용하면 데이터의 완전성, 중복 여부, 값의 범위와 같은 품질 규칙을 코드로 정의하고 ETL 과정에서 자동으로 검증할 수 있다는 점도 알게 되었습니다.

 

결국 안정적인 데이터 파이프라인은 데이터를 변환하는 것뿐 아니라 필요한 시점에 정확한 데이터를 처리하고, 적재 전에 품질을 검증하는 과정까지 함께 설계하는 것이 중요하다는 점을 배울 수 있었습니다.

'Data Engineering > AWS' 카테고리의 다른 글

AWS Lake Formation이란  (0) 2026.07.20
AWS Glue DataBrew란  (0) 2026.07.20
AWS Glue ETL | DynamicFrame과 주요 Transformation 이해하기  (0) 2026.07.15
Amazon EKS란  (0) 2026.07.09
Amazon ECR이란  (0) 2026.07.09
'Data Engineering/AWS' 카테고리의 다른 글
  • AWS Lake Formation이란
  • AWS Glue DataBrew란
  • AWS Glue ETL | DynamicFrame과 주요 Transformation 이해하기
  • Amazon EKS란
jjaehyeok
jjaehyeok
jjaehyeok 님의 블로그 입니다.
  • jjaehyeok
    jjaehyeok 님의 블로그
    jjaehyeok
  • 전체
    오늘
    어제
    • 분류 전체보기 (120) N
      • Navisafe (16)
        • Infrastructure (14)
        • Data Pipeline (0)
        • Trouble shooting (2)
      • Data Engineering (67) N
        • Airflow (11)
        • Kafka (3)
        • Spark (1) N
        • ELK (2)
        • Kubernetes (7)
        • AWS (43) N
        • Flink (0)
      • CodingTest (31)
        • 문제 풀이(Lv1~Lv2) (21)
        • 문제 풀이(Lv3) (10)
        • SQL (0)
      • 알고리즘 정리 (3)
        • 자료구조 (스택, 큐, 해시) (3)
        • 정렬 & 그리디 (0)
        • DFS & BFS (0)
        • 이분탐색 (0)
        • DP (0)
      • 자격증 (1)
        • CKAD (1)
        • DEA-C01 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    eks
    CKAD
    ECR
    trouble shooting
    Airflow
    EC2
    datasync
    DynamoDB
    datatransfer
    k8s
    S3
    Kafka
    DEA-C01
    AWS
    Redshift
    Glue
    documentdb
    elk
    Athena
    EMR
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
jjaehyeok
AWS Glue Jobs & AWS Glue Data Quality(DQDL)
상단으로

티스토리툴바