쿠팡이츠 데이터 플랫폼
코드너리 | 2022. 10. 11
실시간 스트리밍
데이터 분류
데이터 파이프라인
ML 파이프라인
사용된 기술:
1. 비실시간 (None real-time):
- 데이터 동기화 정보를 메타데이터 관리 시스템에서 정의하기. 전체 피처 그룹을 정의할 수도 있는데, 여기에 구체적인 비즈니스 시나리오를 위해 미리 정의된 피처, 그리고 피처 및 Hive 테이블 열(column) 간의 매핑 관계를 포함시킬 수 있음.
- 제네릭(generic) Spark SDK를 제공해 Hive 데이터를 읽고, 미리 정의된 메타데이터와 매핑 설정에 따라 피처를 온라인 피처 스토어(feature store)와 동기화.
- 작업 스케줄러에 Spark 잡(job)을 생성하고 SDK를 참조해 데이터를 온라인 저장소와 자동으로 동기화.
2. 근실시간 (Near real-time, ≥ 30s):
- 업스트림 Kafka 메시지를 OLAP 엔진으로 인제스천하거나, 클라우드 저장소에 있는 Hive 테이블 데이터를 읽어들이기.
- 설정된 간격(30초에서 1시간 사이)에 따라 OLAP 엔진 SQL 실행하기. 이 단계에서 실시간 데이터가 저장되는 Kafka나 클라우드 저장소에서 인제스천되었던 여러 테이블 소스(source)를 조인(join)해 와이드 테이블(wide table) 만들기.
- 이전 단계에서 생성된 와이드 테이블들을 활용해, 데이터 사이언티스트는 근실시간 지표 및 시그널을 생성하는 OLAP 엔진 및 SQL 작업을 스케줄링
- 작업 스케줄러가 정의된 간격에 따라 SQL을 실행. 생성된 시그널을 Kafka 컨슈머에게 다운스트림으로 보내거나 데이터 스토리지에 쓰기.
3. 완전 실시간 (Pure real-time):
- 필요한 데이터를 Kafka 토픽에 인제스천.
- 실시간 피처 메타 설정을 바탕으로 이벤트 데이터를 브로드캐스트 시스템을 통해 각기 다른 다운스트림 운영자(downstream operator)에 동적으로 분할(dynamic partition)함.
- 피처 메타데이터의 정의에 따라 실시간 피처들의 값을 미리 구현된 각 집합자(aggregator)에 계산. 계산된 값을 즉시 또는 주기적으로 Kafka 또는 다운스트림 운영자으로 출력함.