본문 바로가기
일/aws

AWS Glue 활용기 #1 :: Architect

by blair2dev 2022. 3. 27.
  1. 개요
    Spark Streaming 에서 마이크로 배치(https://blair2dev.tistory.com/29)로 쌓이는 parquet 파일들의 갯수가 너무 많아서 daily로 merge 하여 다른 테이블로 일 단위로 적재하는 프로세스 개발 요청이 있었다.

    AWS 에서 제공하는 glue 를 활용하여 문제를 해결해보기로 하였다. 

  2. 설계 
    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 된 테이블에서 조회하면 효율성있는 쿼리가 가능하게 된다.  

 

3. 컴포넌트 별 설명

 

  1. EMR
    1. 마이크로 배치 단위로 s3에 파티션 별 데이터 적재 
  2. Glue Crawler
    1. 스키마 인식
      1. merge 전
      2. merge 후 
  3. Workflow trigger
    1. 자정 경 Glue 마이크로 배치 크롤러 트리거 
    2. 크롤러 완료시 glue job (merger) 실행 
    3. glue job 완료 시 일 배치 크롤러 트리거 
  4. Glue catalog
    크롤러가 s3 위치에서 스키마 인식해서 테이블 생성 업데이트