개요 Spark Streaming 에서 마이크로 배치(https://blair2dev.tistory.com/29)로 쌓이는 parquet 파일들의 갯수가 너무 많아서 daily로 merge 하여 다른 테이블로 일 단위로 적재하는 프로세스 개발 요청이 있었다.
AWS 에서 제공하는 glue 를 활용하여 문제를 해결해보기로 하였다.
설계 Glue job architectue
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 된 테이블에서 조회하면 효율성있는 쿼리가 가능하게 된다.