데이터 파이프라인은 데이터를 사용하기 위해서 데이터를 추출(수집), 가공, 적재하는 과정이다. 데이터를 이용하여 매출, 신규/재 결제 전환율, 활성화 유저의 비율 등 의사결정에 필요한 정보들을 팀에 제공할 수 있다. 뿐만 아니라 수집된 데이터를 이용하여 모델을 학습시켜 프러덕트에 사용할 수 있다
현재 팀에서는 데이터가 필요할 때 개발자에게 직접적으로 요청하고 이를 스크립트로 처리하여 제공하는 방식을 사용하고 있었다. 일부는 amplitude를 이용하여 데이터 분석을 하기도 했다. amplitude에는 주로 프론트에서 심은 amplitude 이벤트, RDB에 있는 데이터 일부분, airbridge를 통해서 광고에서 발생된 데이터가 수집된다
amplitude에서는 주로 퍼널에 대한 이탈율과 A/B 테스트의 결과를 주로 보았다면 그 외에 나머지 데이터 (매출, 리텐션, 코호트 별 결제 전환율, 상품 별 최근 추천수/판매수 등)는 직접 주피터 노트북에서 스크립트를 작성하여 정보를 제공하였고, 이로 인해서 약간의 변화(날짜, 시간에 지남에 따른 재추출)를 원할 때도 요청을 다시 해야하는 비효율이 발생하기도 했다.
무엇보다 데이터에 대한 접근도가 떨어진다고 생각하였다. 팀원이 데이터에 더 관심을 가지고, 간단한 SQL로 본인이 원하는 데이터를 추출하여 업무에 병목이 없도록 만든다면 데이터 기반 의사결정에 좋은 영향을 줄 것 이라고 생각했다
이 후 트래픽이 높아졌을 때와 딥러닝 모델의 학습 자동화로의 확장도 고려하였다
파이프 라인 도입 이후 제일 빠르고 효과 있는 작업 중 하나는 대시보드 만들기라고 생각했다. Airflow를 이용하여 RDB와 amplitude에 있는 데이터를 Bigquery에 raw데이터를 수집하여 가공한 후에 result 테이블로 적재하는 datamart DAG와 만들어진 result 테이블을 이용하여 대시보드에 필요한 테이블을 가공하는 dashboard DAG를 만들었다.
dashboard DAG은 datamart DAG의 작업 결과물인 table을 sensing하여 특정 조건을 만족했을 시에 작업이 수행되어 대시보드 테이블을 갱신하도록 만들었다
dashboard DAG를 통해 생성된 테이블들은 looker studio를 이용하여 시각화하였고 slack의 리만인더를 통해 구성원들의 출근 시간에 맞게 대시보드의 링크를 업로드하여 1일간 발생한 데이터를 확인할 수 있도록 하였다
반복적으로 들어오는 데이터 요청에 대해 요청자가 눈치를 보는(?)것을 없애고 작업의 병목을 없애고자 하였다. Bigquery에 템플릿 쿼리를 작성하고, WHERE절 이하에 일부분을 원하는 조건으로 바꿔 원하는 정보를 얻을 수 있도록 하였다. 이를 통해 팀원들이 Bigquery사용과 SQL사용에 익숙해지면 WHERE절 이하를 수정하여 사용하는 것에서 나아가 주도적으로 데이터를 탐색하고 분석할 수 있을 것이라고 생각한다.