ETL 작업을 하면서 알게된 것인데 AWS glue를 많이 사용한다고 한다
그래서 이번 기회에 정의 및 특징에 제대로 알고 가는 게 좋을 것 같아서 정리해보려고 한다
AWS Glue란?
AWS Glue는 ETL(Extract, Transform, Load) 프로세스를 간소화하여 대규모 데이터 세트의 처리와 통합을 효율적으로 수행하며, 데이터 레이크와 데이터 웨어하우스를 연결하는 데 특히 유용하
Glue를 사용하는 이유
- Serverless 환경 :
Glue는 서버리스로 운영되므로, 클러스터를 직접 관리할 필요 없이 대규모 데이터를 처리할 수 있다 - PySpark 기반:
Glue는 PySpark 환경을 제공하므로, 데이터 처리와 변환 작업을 유연하게 구현할 수 있다 - 다양한 데이터 소스와 연관:
S3, RDS, DynamoDB, Redshift 등 AWS 서비스와 쉽게 연동 가능하다 - 대규모 데이터 처리에 적합 :
Glue는 분산 처리 환경을 제공하므로, 대규모 데이터 변환 작업(예: JSON → Parquet, CSV → ORC 등)에 적합하다 - 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 Job과 Glue Crawler 사용사례
- 데이터 레이크 구축
다양한 데이터 소스에서 raw데이터를 수집하여 Amazon S3에 중앙화한 다음, AWS Glue를 사용해 데이터를 정리하고 변환한다
이 방법은 실제로 프로젝트를 할 때 활용했다 - 데이터 웨어하우스 로드
데이터 웨어하우스(예: Amazon Redshift)로 데이터를 로드하기 전에 AWS Glue로 데이터를 변환하고 최적화한다
이렇게도 알고는 있었는데 프로젝트에선 이전에 glue를 활용했다 - 데이터 파이프라인 자동화
AWS Glue는 스케줄링 기능을 통해 반복적으로 실행되는 데이터 파이프라인을 자동화 할 수 있다
- 이건 새롭게 알게된 내용인데 airflow를 활용해서 자동화를 해서 이 기능은 쓸 일이 없었다 - 데이터 탐색과 분석
AWS Glue Data Catalog를 사용해 데이터의 메타데이터를 관리하고, 데이터를 탐색하여 분석을 위한 기반을 만든 - JSON → Parquet 변환 작업
데이터 파이프라인에서 **데이터 변환(Transform)**의 대표적인 예로, Glue의 강력한 기능을 활용한 사례 중 하나입니다
- 실제로 glue를 쓰면서 spark에 코드에 대해서 자주 봤는데 확실히 데이터 변환이 편하다는 생각,,
'데이터 처리 및 변환 (transform)' 카테고리의 다른 글
AWS Clawer (글루 크롤러) 사용 해보기 (1) | 2025.01.13 |
---|---|
AWS Glue Job(글루 잡) 사용해보기 (1) | 2025.01.12 |
데이터 평탄화(flatten) spark로 json 평탄화하기 (0) | 2025.01.09 |