studying data

문제의 본질을 꿰뚫어 해결책을 찾는 법을 공부합니다

콤퓨타 공부/AWS 걸스인텍 멘토링

[AWS 멘토링] ETL(Extract, Transform, Load)을 활용하는 방법

study_data 2021. 9. 1. 21:41

ETL이란 Extract, Transform, Load의 줄임말입니다. 필요한 데이터를 만들기 위해 데이터를 사용자의 목적에 맞도록 가공하는 작업을 이야기합니다. 원하는 데이터를 가져와서 예측값을 보여줄 수 있도록 해주는 것입니다. 추출을 먼저 하고 모니터링 페이지에서 필요한 데이터를 크롤링합니다. 그러면 웹사이트로 되어있는 것 중 필요한 데이터를 딱 맞게 추출하고 원하는 데이터 형태로 변환(transform)합니다. 여기서 가져올 수 있는 데이터는 그 페이지에 맞춰서 데이터화되어있는 것을 가져오면 됩니다.


OAD는 적재입니다. 이 과정에서 Airflow를 도입했습니다. 에어비앤비에서 개발한 워크플로우 관리 플랫폼입니다. ETL 툴은 DAG(Directed Acyclic Graph)입니다. 실행하고 싶은 테스크의 관계와 dependency를 표현하고 있는 테스크의 모음이죠. 어떤 순서와 어떤 dependency로 실행할지, 어떤 스케줄로 실행할지 등의 정보를 가지고 있습니다.

장점은 파이썬 활용해 작성이 가능하다는 점, 편리한 UI를 가지고 있다는 점, 다양한 플러그인을 통해 AWS 서비스와 연결이 가능하다는 점, Backfill기능이 있다는 점입니다. 이 기능은 과거의 데이터를 채워넣는 작업입니다, 만약 과거에 실패한 작업이 있다면 과거의 실행 조건으로 재실행이 가능합니다.


프론트에서 백엔드로 API를 부르면 주는 방식이 있는데, 여기서는 그렇게 누가 부르지 않고 시간을 정해놓으면 시간에 맞춰 데이터가 저절로 간다는 소리인가요? 네 맞습니다. 데이터 분석을 하는 사람들도 굉장히 Airflow를 많이 씁니다. 

홈페이지에 올라가는 데이터도 데이터가 올라가서 만들어지는 것은 아닙니다. 모니터링 기계를 만들지 않는 이상 만들기 힘드니까 모니터링 회사에서 가져오는 것입니다. 오픈소스처럼 공개된 것은 아니지만 고객이 쓸 수 있는 정보를 긁어오는 것입니다. 장비를 사면 자동으로 소프트웨어를 제공해주는 것입니다.  서버 사용량이 많은 낮시간을 피해서 밤시간에 돌리면 데이터가 쌓여있게 하는 것이죠. 

 

내용은 AWS멘토링 과정에 함께 참여한 반현랑 멘티님께서 발표해주신 내용입니다