
주제선정 : 기상상태에 따른 따릉이 대여량 변화
역할분담 : 데이터수집 관련해서 맡기로 했다.
열린 데이터 광장에서 사용할 데이터의 api를 받아 시작하고 나서 여러 생각이 들기 시작한다. 현재 데이터 수집도 airflow로 자동화 시켜야 되는 거면 etl dag를 작성해야하지 않을까?
etl 코드를 작성해야 할 것 같다. 처음부터 dag를 직접 짜보는 것은 이번이 처음이라 많이 헤맸다.
redshift의 비용 문제로 snowflake를 이용하기로 했는데 저번 프로젝트 때처럼 airflow도 snowflake를 default하게 지원하지 않는다. 그래도 연결 방법을 검색해 찾았다.
연결을 위해서는 airflow버전을 업그레이드 할 필요가 있다. 실습 때 yaml 파일을 받아서 설치했던게 기억이나 해당 버전의 yaml 파일을 가져와 docker-compose로 업그레이드 했다. 중간에 문제도 발생하긴 했지만 멘토님 도움으로 해결했다.
이제 조금은 익숙해진 것 같다. extract, transform 코드를 작성하고 로컬에서 실행시켜 에러가 나는지 확인했다. 생각보다 많이 나서 해당 에러를 잡는데 많은 시간을 허비하게 됐다.
이제 load 코드와 snowflake와 연동할 코드만 작성하면 된다.
가져온 데이터에서 장소가 너무 많다. 팀 회의를 통해 10개 장소로 압축하여 데이터를 추출하기로 했다.
airflow에서 snowflake connection을 설정하고 코드를 모두 마무리 지었다. 성공적으로 적재되는 것을 확인했다.
ETL 코드를 작성할 때 full refresh로 구현해 과거 데이터가 사라져 데이터를 모을 수가 없었다. 해당 코드를 incremental한 방법으로 수정하려 했다. 수업에서 봤던 코드를 참고해서 수정해봤는데 잘 되지 않아 raw_data 테이블에는 계속해서 적재를 하고 analysis 테이블에는 최신 정보만 업데이트 되도록 계획을 변경했다.
프로젝트도 이제 막바지이다. 파이프라인으로 적재한 데이터를 통해 대시보드로 시각화하는 것까지 완료했고 보고서 작성만이 남았다.