DAY1 15:00-15:20 KST
KSETL 은 Kafka Stream ETL. 카프카로 ETL 한다는 뜻.
데이터 처리 지연을 줄이기 위해 스트림 처리함.
배치 처리로는 모아서 처리하기 때문에 느리고, 초 단위로 줄이는 것도 한계가 있어 스트림으로 처리함
프로그램 개발, 디버깅, 빌드, 배포, 모니터링
KSETL은 이런 작업을 쉽게 할 수 있도록 하는 것을 목표로 함. (라인 자체 개발)
개발을 모르는 데이터엔지니어가 스트림 처리를 스스로 만들 수 있도록 하는 것.
데엔은 개발은 잘 모르고 SQL은 잘 아는 경우가 많으므로 트림 처리를 위한 SQL 엔진을 도입
ksqlDB, flink sql, spark sql 를 검토하여 ksqlDB 를 선택.
사용자 정의 함수도 지원하고 스트림 처리만을 위한 시스템이므로 구조가 단순함. 동작도 카프카만 있으면 가능.
2개 스트림 조인시 각 파티션별로 처리하고 내부 상태는 인터널 토픽에 저장
k8s 를 이용해 ksqlDB 클러스터를 동적으로 생성할 수 있게 하였는데, 이를 ODA(On-Demand Application) 이라고 부름
자바, 스칼라 대신 데이터 처리 전용 언어인 SQL을 사용하고
빌드도 컴파일 대신 대화형 쉘을 사용
배포도 On-Demand 클러스터 사용
대시보드는 이미 만들어진 대시보드를 제공.