- 개요
Spark Streaming 에서 마이크로 배치(https://blair2dev.tistory.com/29)로 쌓이는 parquet 파일들의 갯수가 너무 많아서 daily로 merge 하여 다른 테이블로 일 단위로 적재하는 프로세스 개발 요청이 있었다.
AWS 에서 제공하는 glue 를 활용하여 문제를 해결해보기로 하였다. - 설계
2.1 daily 스케쥴링으로 글루 크롤러가 마이크로 배치가 쌓이는 stream-source 에서 소스 데이터 카탈로그 테이블을 정의한다.
2.2 크롤러가 완료되면 parquet merge 프로세스가 개발된 Glue job 을 실행시킨다.
2.3 daily merge된 parquet 들이 stream-target s3 로 저장된다.
2.4 글루잡이 완료되면 크롤러가 발동되고 daily parquet 에 대한 데이터 카탈로그 테이블이 정의된다.
2.5 아테나에서는 실시간 데이터는 마이크로배치를 소스로 하는 카탈로그 테이블 에서 조회할 수 있고, 과거 시계열 데이터는 daily merge 된 테이블에서 조회하면 효율성있는 쿼리가 가능하게 된다.
3. 컴포넌트 별 설명
- EMR
- 마이크로 배치 단위로 s3에 파티션 별 데이터 적재
- Glue Crawler
- 스키마 인식
- merge 전
- merge 후
- 스키마 인식
- Workflow trigger
- 자정 경 Glue 마이크로 배치 크롤러 트리거
- 크롤러 완료시 glue job (merger) 실행
- glue job 완료 시 일 배치 크롤러 트리거
- Glue catalog
크롤러가 s3 위치에서 스키마 인식해서 테이블 생성 및 업데이트
'일 > aws' 카테고리의 다른 글
AWS Glue 활용기 #3 :: Glue workflow (0) | 2022.03.27 |
---|---|
AWS Glue 활용기 #2 :: Glue job 개발 (0) | 2022.03.27 |
Amazon EMR 구축 #2 :: 프로비저닝 (0) | 2022.02.01 |
Amazon EMR 구축 #1 :: 개념 정리 (0) | 2022.02.01 |
AWS DMS Consistency Checking Application Concept (0) | 2022.01.11 |