신규 출시 차량/페이스리프트 전/후 소비자 반응을 비교하고 분석하기 위한 데이터 파이프라인
- AWS Lambda → 웹사이트 크롤링 및 데이터 수집
- AWS EMR → 텍스트 전처리 및 데이터 변환
- AWS Lambda + ChatGPT → 자연어 처리 (감성 분석 및 키워드 추출)
- Amazon S3 → Parquet 형식으로 데이터 저장
- Amazon Redshift → 분석을 위한 데이터 적재
- Tableau → 데이터 시각화
분산 클러스터 작업과 스토리지 작업의 의존성을 낮추기 위해 데이터를 임시 테이블에 저장하는 방식으로 ELT 프로세스를 처리합니다.
Parquet 형태로 S3에 저장된 데이터와 1:1로 매칭되도록 테이블을 설계하였습니다.
분석 목적과 데이터의 변경 주기 특성에 따라 적재 전략을 결정하였습니다.
변경 이력과 같은 시계열 정보를 저장해야 할 팩트 테이블을 파란색으로 표시하였습니다.
변경이 거의 발생하지 않는 정보를 저장해야 할 테이블 또는 디멘전 테이블을 보라색으로 표시하였습니다.적재 전략을 반영하기 위해 팩트 테이블은 ID와 Timestamp를 기준으로 Append Load 하였고, 디멘전 테이블을 ID를 기준으로 Overwrite Load 하였습니다.
분석 단계에서 항상 최신 데이터를 활용할 수 있도록 지원하면서 쿼리 효율을 높이기 위해 Materialzied View를 정의하고, 파이프라인에 REFRESH 단계를 통합하였습니다.
구체적인 프로세스는
/airflow/dags/sql/README.MD
에 소개되어 있습니다. 아래 Project Details를 참고해주세요.
Airflow(AWS MWAA)를 통해 파이프라인을 구축합니다.
EMR에서 실행할 스파크 코드
AWS 람다 함수
S3에서 Redshift로의 ELT 프로세스 및 프로세스에 포함된 SQL 스크립트
프로토타입을 위한 로컬 크롤링 및 전처리 테스트 코드를 포함합니다.