





요약:
엔지니어링 효율성의 제고를 위해, 각 랭킹 엔지니어가 데이터 소스의 오염, 전체 데이터 파이프라인 개발, 워크플로우 일정 수립 등과 같은 일에 신경 쓰지 않고 오로지 시그널의 로직 구현에만 집중할 수 있도록, 인덱싱 플랫폼 2.0을 인덱싱 버스(Indexing Bus)로 구현하였습니다.
우선, 스파크잡인 세션 로그 파서(Session Log Parser)가 원시 로그 파싱 기능을 제공합니다. 즉 고객 행동 데이터를 파싱하고 병합하여 세션 로그 데이터세트(Session Log Dataset)를 생성합니다. 또한 마찬가지로 스파크잡인 원본 데이터 머저(Ground Truth Merger)는 모든 상품 데이터를 병합하여 엔지니어가 손쉽게 상품 원시 데이터에 액세스할 수 있게 해줍니다. 구현에 스파크잡을 사용한 이유는 확장의 용의성 때문이었습니다.
인덱싱 플랫폼 2.0에서 달라진 중요한 점 또 한가지는 인덱싱 플랫폼 1.0과 달리 외부 하이브 테이블의 병합 과정 없이도 플랫폼 상에서 직접 랭킹 시그널을 생성할 수 있다는 점입니다. 원본 상품 데이터와 세션 로그 모두에 쉽게 액세스할 수 있기 때문에 인덱싱 플랫폼에서 직접 이들 데이터 세트를 기반으로 시그널을 파생할 수 있도록 프로덕트 조이너(ProductJoiner)와 쿼리 조이너(QueryJoiner)를 개발했습니다.
이 프레임워크의 정수는 상품 데이터와 검색어 데이터 등 모든 데이터세트가 상품 혹은 쿼리 시그널의 생성 도중에 사용된다는 것입니다. 이러한 정보의 교류로 인해 매우 강력한 시그널이 만들어집니다. 예를 들어, 프로덕트 조이너의 상품 데이터인 가격을 활용해 쿼리 조이너에서 쿼리 랭킹을 구축할 수 있습니다. 엔지니어는 쿼리 혹은 상품 가격 분포를 바탕으로 상품의 순위를 높이거나 낮추는 시그널을 구축할 수 있습니다. 상품 가격처럼 단순한 무엇인가가 강력한 랭킹 시그널로 변환되는 것입니다.