10장. ksqlDB 스트림 처리 기초
이번 장의 Point
ksqlDB로 스트림처리를 어떻게 하는 지?
- 스트림과 테이블 생성
- ksqlDB 데이터 타입 사용
- 단순 불리언 조건, 와일드카드, 범위필터를 사용해 데이터 필터링
- 복잡하거나 중첩돼 있는 구조를 평평하게 만들어 데이터 모양 변경
- 필드 일부를 선택하는 프로젝션 사용
- null 값을 처리하기 위한 조건식 사용
- 파생 스트림과 테이블 생성 그리고 카프카로 결과쓰기
튜토리얼 : 넷플릭스의 변경 내용 모니터링
- 변경 스트림을 소비하고 필터, 변환으로 데이터를 처리하며, 보고 목적으로 데이터를 보강하고 집계해 궁극적으로 처리한 데이터를 하위 시스템에서 사용하능하도록 내보내는 것이다.
- ksqlDB로 직관적으로구현 가능
- 두 토픽으로부터 데이터를 읽는다.
- title 토픽은 넷플릭스에서 서비스하느 ㄴ영화와 텔레비전 쇼의 메타데이터(제목, 개봉일 등도 포함)를 포함하고 있는 압축된 토픽이다.
- 이에 대한 변경이 생길때마다 production_changes 토픽에 변경내용을 쓴다
- 소스 토픽들로부터 데이터를 받은후(consume), production_changes 데이터를 보강하기 위해 기본적인 전처리를 수행해야한다. 필터링 후에 프로그램의 에피소드 개수 또는 시즌 길이 변경만 포함하는 전처리 스트림은 season_length_changes 토픽으로 데이터를 보낸다
- 전처리한 데이터에 보강작업 수행
- season_length_changes 스트림을 titles 데이터와 조인
- 각 title마다 변경된 데이터 생성
- 3의 데이터에 대해 집계처리
- 3의 데이터(보강데이터), 4의 데이터(집계데이터)를 두 종류의 클라이언트에서 접근가능하게 할 것이다.
- 보강데이터에 접근하는 클라이언트는 ksqlDB에 장시간 연결해서 내보내기 쿼리로 지속적인 변경내용을 수신할 것이다. → 실시간으로 데이터 전송
- 집계데이터에 접근하는 클라이언트는 전통적인 데이터베이스처럼 짧은 시간 실행되는 가져가기 쿼리로 포인트 룩업을 수행할 것이다.