사용한 기술: airflow, spark sql
타 팀으로부터 데이터를 가져와서 주문접수율, 별점, 재주문율 등을 구하는 작업을 했다.
문제는 각 지표를 계산하는 작업을 쿼리로 할 것인가, 아니면 배치로 할 것인가였다.
배치보다 쿼리가 장점이 더 많다고 결론을 내렸다.
하지만 불안감이 있었다.
쿼리로 풀어낼 수 없는 비즈니스 로직이 들어오면 어떻게 하지?라는 불안감이었다.
또한 쿼리는 spark sql을 사용하고, airflow라는 스케줄러를 사용해야 했다.
spark sql, airflow 모두 다뤄보지 않은 새로운 기술이라는 부담감이 있었다.
불안감, 부담감을 해소하기 위해 다음 작업을 진행했다.
나에게 일주일의 빈 시간이 있다고 해보자.
새로운 기술의 불안감을 해소하기 위해 나는 일주일 간 어떠한 실험을 해볼 것인가?
위와 같은 가정을 했다.
불안감을 해소하기 위하여, 팀원 분과 함께 현재 요구사항 중 가장 복잡한 요구사항을 쿼리로 계산하는 작업을 진행했다.
셀러간에 등급을 매기는 랭킹로직을 쿼리로 계산했는데, 생각보다 간단했다.
불안감이 일정 부분 해소됐다.
배치를 사용하지 않고, 쿼리로 각 지표들(주문접수율, 별점, 재주문율)을 계산했다.
쿼리로 각 지표를 계산 -> 지표를 데이터팀 공간에 저장(spark 형태로 저장) -> 쿼리로 각 지표 통합 -> 통합한 지표를 팀 내 RDS에 저장
위 구조로 작업을 진행하고, 작업 완료 후 오픈했다.