본문 바로가기
데이터 처리 및 변환 (transform)

AWS glue의 개념 및 활용 glue job과 glue crawler

by goemgoem-i 2025. 1. 10.
반응형

ETL 작업을 하면서 알게된 것인데 AWS glue를 많이 사용한다고 한다

그래서 이번 기회에 정의 및 특징에 제대로 알고 가는 게 좋을 것 같아서 정리해보려고 한다

 

 

 

AWS Glue란?

AWS Glue는 ETL(Extract, Transform, Load) 프로세스를 간소화하여 대규모 데이터 세트의 처리와 통합을 효율적으로 수행하며, 데이터 레이크와 데이터 웨어하우스를 연결하는 데 특히 유용하

 

 

 

Glue를 사용하는 이유

  1. Serverless 환경 :
    Glue는 서버리스로 운영되므로, 클러스터를 직접 관리할 필요 없이 대규모 데이터를 처리할 수 있다
  2. PySpark 기반:
    Glue는 PySpark 환경을 제공하므로, 데이터 처리와 변환 작업을 유연하게 구현할 수 있다
  3. 다양한 데이터 소스와 연관:
    S3, RDS, DynamoDB, Redshift 등 AWS 서비스와 쉽게 연동 가능하다
  4. 대규모 데이터 처리에 적합 :
    Glue는 분산 처리 환경을 제공하므로, 대규모 데이터 변환 작업(예: JSON → Parquet, CSV → ORC 등)에 적합하다
  5. Parquet의 이점:
    Parquet 형식은 열 지향 저장 형식으로, 읽기 성능이 뛰어나며 스토리지 사용량을 줄일 수 있다
    Redshift, Athena, EMR 등과 잘 호환이 잘된다

 

 

Glue Job

1. ETL 작업:
 - 데이터를 추출(Extract), 변환(Transform), 적재(Load)하는 데 사용
2. 데이터 처리:
 - Python(Spark) 또는 Scala를 기반으로 데이터를 대규모로 처리하거나 클렌징
3. 데이터 통합:
 - 서로 다른 데이터 소스에서 데이터를 가져와 통합하거나 데이터 웨어하우스로 이동시킬 때 사용함
4. 스케줄링 및 자동화:
 - 특정 주기나 이벤트에 따라 실행되도록 설정 할 수 있음

 

 

Glue Crawler

1. 데이터 카탈로그 생성:
 - 다양한 데이터 소스(S3, DynamoDB, RDS 등)를 스캔 및 데이터 스키마 생성 가능 
2. 스키마 자동 감지:
 - JSON, CSV, Parquet 등 다양한 형식의 데이터 분석 및 구조 파악 가능
3. 메타데이터 관리:
 - 생성된 메타데이터를 Glue Data Catalog에 저장하여 Athena, Redshift Spectrum, EMR 등에서 쉽게 활용 가능
4. 데이터 소스 업데이트 탐지:
 - 데이터 소스가 변경되거나 업데이트되었을 때, 최신 메타데이터를 유지 가능 

 

 

 

 

 

 

Glue job과 Glue crawler의 차이

특성 Glue Job Glue Crawler
주요 목적 데이터 처리 및 변환 데이터 소스의 스키마 탐지 및 카탈로그 생성
입력 이미 정의된 데이터 및 작업 로직 데이터 소스(S3, RDS 등)
출력 처리된 데이터 메타데이터(Data Catalog)
사용 방식 사용자 정의 코드(Python/Scala 필요) UI/CLI 기반 설정으로 자동화
주요 기능 데이터 처리, 클렌징, 통합 스키마 생성, 데이터 업데이트 탐지
스케줄링 정해진 시간이나 이벤트에 따라 실행 정기적인 데이터 소스 크롤링

 

 

 

 

활용 시나리오

Glue Job을 사용하는 경우
- 데이터 변환(예: JSON 데이터를 Parquet으로 변환)
- 복잡한 데이터 처리가 필요한 경우(예: 데이터 조인, 집계, 필터링)
- 특정 데이터 흐름의 자동화가 필요한 경우

Glue Crawler를 사용하는 경우
- S3에 저장된 데이터의 스키마를 자동으로 감지하여 카탈로그를 생성해야 할 때
- 새로운 데이터가 추가되거나 변경될 경우 이를 자동으로 반영해야 할 때
- Athena 또는 Redshift에서 데이터를 바로 쿼리하려면 데이터 카탈로그가 필요할 때

 

 

Glue JobGlue Crawler 사용사례 

  1. 데이터 레이크 구축
    다양한 데이터 소스에서 raw데이터를 수집하여 Amazon S3에 중앙화한 다음, AWS Glue를 사용해 데이터를 정리하고 변환한다 
    이 방법은 실제로 프로젝트를 할 때 활용했다
  2. 데이터 웨어하우스 로드
    데이터 웨어하우스(예: Amazon Redshift)로 데이터를 로드하기 전에 AWS Glue로 데이터를 변환하고 최적화한다
    이렇게도 알고는 있었는데 프로젝트에선 이전에 glue를 활용했다
  3. 데이터 파이프라인 자동화
    AWS Glue는 스케줄링 기능을 통해 반복적으로 실행되는 데이터 파이프라인을 자동화 할 수 있다
    - 이건 새롭게 알게된 내용인데 airflow를 활용해서 자동화를 해서 이 기능은 쓸 일이 없었다
  4. 데이터 탐색과 분석
    AWS Glue Data Catalog를 사용해 데이터의 메타데이터를 관리하고, 데이터를 탐색하여 분석을 위한 기반을 만든
  5. JSON → Parquet 변환 작업
    데이터 파이프라인에서 **데이터 변환(Transform)**의 대표적인 예로, Glue의 강력한 기능을 활용한 사례 중 하나입니다
    - 실제로 glue를 쓰면서 spark에 코드에 대해서 자주 봤는데 확실히 데이터 변환이 편하다는 생각,,
반응형