카프카 스트림즈와 ksqlDB 정복 (실시간 데이터 처리)

카프카 스트림즈와 ksqlDB 정복 (실시간 데이터 처리)

$42.72
Description
카프카 스트림즈와 ksqlDB를 사용하면 쉽고 빠르게 스트림 데이터를 처리하고 실시간으로 분석할 수 있다. 강력한 카프카 스트림즈와 ksqlDB의 스트림 처리 기능을 바탕으로 매일 수천억 건 이상의 데이터를 처리하는 스트림 데이터 처리 애플리케이션도 개발할 수 있다.
이 책은 스트림 데이터의 일반적인 내용을 비롯해 카프카 스트림즈와 ksqlDB의 구현 원리 및 스트림 데이터 개발에 필요한 여러 기능과 상용화 방법을 쉬운 예제로 설명한다. 따라서 스트림 데이터 처리가 궁금한 독자나 스트림 데이터 처리 애플리케이션 개발에 관심이 많은 개발자라면 꼭 읽어봐야 하는 책이다.
저자

미치시모어

MitchSeymour
메일침프데이터서비스팀의엔지니어이자기술책임자다.카프카스트림즈와ksqlDB를사용해하루에수십억개의이벤트를초미만의지연시간으로처리하는많은스트림처리애플리케이션을구축했다.오픈소스커뮤니티에서활동하고있으며,국제컨퍼런스(카프카서밋런던,2019)에서스트림처리기술에대해발표했다.지역밋업에서카프카스트림즈와ksqlDB를주제로강연하고있으며컨플루언트블로그에기고하고있다.

목차

1장.카프카빠르게소개하기
__통신모델
__스트림은어떻게저장되는가?
__토픽과파티션
__이벤트
__카프카클러스터와브로커
__컨슈머그룹
__카프카설치
__안녕?카프카
__요약

2장.카프카스트림즈시작하기
__카프카생태계
____카프카스트림즈이전
____카프카스트림즈이후
__한눈에보는카프카스트림즈특징
__운영특성
____확장성
____신뢰성
____유지보수성
__다른시스템과비교
____배치모델
____처리모델
____카파아키텍처
__카프카스트림즈적용사례들
__프로세서토폴로지
____서브토폴로지
____깊이-우선처리
____데이터흐름프로그래밍의이점
____태스크와스트림스레드
__상위-수준DSL대하위-수준ProcessorAPI
__튜토리얼소개:Hello,Streams
____프로젝트설치
____새프로젝트생성
____카프카스트림즈의존라이브러리추가
____DSL
____ProcessorAPI
__스트림과테이블
____스트림/테이블이중성
____KStream,KTable,GlobalKTable
__요약

3장.상태가없는처리
__상태가없는처리대상태가있는처리
__튜토리얼소개:트위터스트림처리
__프로젝트설치
__KStream소스프로세서추가
__직렬화/역직렬화
____커스텀Serdes만들기
____데이터클래스정의
____커스텀Deserializer구현
____커스텀Serializer구현
____트윗Serdes구현
__데이터필터링
__데이터가지치기
__트윗번역
__스트림병합
__트윗보강
____Avro데이터클래스
____감정분석
__Avro데이터직렬화
____레지스트리없는AvroSerdes
____스키마레지스트리-인식AvroSerdes
__싱크프로세서추가
__코드실행
__실제검증
__요약

4장.상태가있는처리
__상태가있는처리의이점
__상태가있는연산자훑어보기
__상태저장소
____공통특성
____영구저장소대인-메모리저장소
__튜토리얼소개:비디오게임전광판
__프로젝트설치
__데이터모델
__소스프로세서추가
____KStream
____KTable
____GlobalKTable
__스트림즈와테이블등록
__조인
____조인연산자들
____조인종류
____코-파티셔닝
____ValueJoiner
____KStream을KTable로조인(players조인)
____KStream을GlobalKTable과조인(products조인)
__레코드그룹핑
____스트림즈그룹핑
____테이블그룹핑
__집계
____스트림집계
____테이블집계
__모두합치기
__대화형쿼리
____저장소물리화
____읽기-전용상태저장소접근
____비윈도우키-값저장소쿼리하기
____로컬쿼리
____원격쿼리
__요약

5장.윈도우와시간
__튜토리얼소개:환자모니터링애플리케이션
__프로젝트설치
__데이터모델
__시간의미
__타임스탬프추출자
____내장타임스탬프추출자
____커스텀타임스탬프추출자
____타임스탬프추출자와함께스트림등록하기
__스트림윈도윙
____윈도우종류
____윈도우선택
____윈도우집계
__윈도우결과내보내기
____유예기간
____중간결과제거
__윈도우KTable필터링과키재생성
__윈도우조인
__시간-기반데이터흐름
____알림싱크
____윈도우키-값저장소쿼리하기
__요약

6장.고급상태관리
__영구적인저장소디스크레이아웃
__내고장성
____변경로그토픽
____대기복제본
__리밸런싱:상태(저장소)의적
__상태이관방지
____StickyTaskAssignor
____고정멤버십
__리밸런싱영향줄이기
____점진적협력리밸런싱
____상태크기제어
__레코드캐시로쓰기중복제거
__상태저장소모니터링
____StateListener추가
____StateRestoreListener추가
__내장메트릭
__대화형쿼리
__커스텀상태저장소
__요약

7장.ProcessorAPI
__ProcessorAPI는언제사용해야할까?
__튜토리얼소개:IoT디지털트윈서비스
__프로젝트설치
__데이터모델
__소스프로세서추가
__상태가없는스트림프로세서추가
__상태가없는프로세서생성
__상태가있는프로세서생성
__구두점으로주기적인함수호출
__레코드메타데이터접근
__싱크프로세서추가하기
__대화형쿼리
__모두조립하기
__ProcessorAPI와DSL결합
__프로세서와트랜스포머
__모두조립하기:리팩토링
__요약

8장.ksqlDB시작하기
__ksqlDB는무엇인가?
__언제ksqlDB를사용할까?
__새로운데이터베이스로진화
____카프카스트림즈통합
____카프카커넥트통합
__ksqlDB와전통적인SQL데이터베이스비교방법
____유사점
____차이점
__아키텍처
____ksqlDB서버
____ksqlDB클라이언트
__배치모드
____대화형모드
____헤드리스모드
__튜토리얼
____ksqlDB설치
____ksqlDB서버실행
____토픽사전생성
____ksqlDBCLI사용하기
__요약

9장.ksqlDB로데이터통합
__카프카커넥트개요
__외부모드와임베디드모드
____외부모드
____임베디드모드
__커넥트워커설정
____컨버터와직렬화포맷
__튜토리얼
__커넥터설치
____커넥터생성
____커넥터보기
____커넥터설명
____커넥터삭제
__소스커넥터검증
__카프카커넥트클러스터와직접상호동작
__관리형스키마검사
__요약

10장.ksqlDB스트림처리기초
__튜토리얼:넷플릭스의변경내용모니터링
__프로젝트설정
__소스토픽
__데이터타입
____커스텀타입
__컬렉션
____소스컬렉션생성
____WITH절
__스트림과테이블로작업하기
____스트림과테이블보기
____스트림과테이블설명보기
____스트림과테이블변경
____스트림과테이블삭제
__기본쿼리
____값삽입
____간단한셀렉트(일시적인내보내기쿼리)
____프로젝션
____필터링
____복합구조체의평평화/중첩구조해체
__조건식
____COALESCE
____IFNULL
____CASE문
__카프카로결과쓰기(영구적인쿼리)
____파생컬렉션생성
__모두합치기
__요약

11장.ksqlDB중급,고급스트림처리
__프로젝트설정
__SQL파일로환경설정하기
__데이터보강
____조인
____윈도우조인
__집계
____집계기초
____윈도우집계
__물리화된뷰
__클라이언트
__가져오기쿼리
____CURL
__내보내기쿼리
____CURL로내보내기쿼리실행
__함수와연산자
____연산자
____함수목록보기
____함수설명
____커스텀함수생성
____추가참고자료
__요약

12장.테스트,모니터링,배포
__테스트
____ksqlDB쿼리테스트
____카프카스트림즈테스트
____행동테스트
____벤치마킹
____카프카클러스터벤치마킹
____테스트자동화
__모니터링
____모니터링점검목록
____JMX메트릭추출
__배포
____ksqlDB컨테이너
____카프카스트림즈컨테이너
____컨테이너오케스트레이션
__운영
____카프카스트림즈재설정
____애플리케이션출력속도제한
____카프카스트림즈업그레이드
__ksqlDB업그레이드
__요약

부록A스트림즈설정
부록BksqlDB설정

출판사 서평

◈이책에서다루는내용◈

◆카프카와펍/섭통신패턴학습
◆스트림처리애플리케이션구축
◆윈도우조인과집계등복잡한연산수행
◆상태가있는처리의내부동작이해
◆ksqlDB의데이터통합기능학습
◆ksqlDB의여러컬렉션종류로가져오기와내보내기쿼리수행
◆카프카스트림즈와ksqlDB애플리케이션상용화배치

◈이책의대상독자◈

실시간으로대용량데이터를움직이고보강하며변환하는대규모의스트림처리애플리케이션을구축하는방법을배우고자하는데이터엔지니어를위한것이다.이런기술들은종종비즈니스인텔리전스이니셔티브,분석파이프라인,위협탐지,이벤트처리등을지원해야한다.
실시간데이터스트림을분석해자신의기술력을향상시키고자하는데이터과학자와분석가에게도유용하다.이는데이터처리분야를지배하고있는배치처리공간으로부터벗어날수있는새로운출발점이될것이다.아파치카프카에대한사전경험은필수가아니며,자바프로그래밍언어가어느정도친숙하다면카프카스트림즈사용지침을좀더쉽게따라갈수있다.

◈이책의구성◈

1장,'카프카빠르게소개하기’는카프카소개와단일노드카프카클러스터를실행하는사용지침을제공한다.
2장,‘카프카스트림즈시작하기’는카프카스트림즈의배경지식과아키텍처,그리고간단한카프카스트림즈애플리케이션실행을다룬다.
3장과4장에서는카프카스트림즈의상위수준DSL(도메인특화언어)에있는상태가없는또는상태가있는연산자를살펴본다.각장은비즈니스문제를풀때이연산자를어떻게사용하는지보여주는사용지침을포함하고있다.
5장,‘윈도우와시간’에서는스트림처리애플리케이션에서시간이어떤역할을하는지알아보고윈도우조인과집계와같은고급스러운연산인상태가있는연산을수행할때의윈도우사용방법을다룬다.
6장,‘고급상태관리’는상태가있는처리가내부적으로어떻게동작하는지설명하고상태가있는카프카스트림즈애플리케이션을운영할때필요한몇가지팁을알려준다.
7장,‘ProcessorAPI’는카프카스트림즈의하위수준ProcessorAPI를깊이있게다룬다.이API는주기적인함수호출을스케줄링할때사용할수도있고,애플리케이션상태와레코드의메타데이터를좀더세분화된단위로접근하는방법을제공한다.
8장,‘ksqlDB시작하기’는ksqlDB를소개하고이기술의역사와아키텍처에대해알아본다.8장의튜토리얼은ksqlDB서버인스턴스를설치하고실행하고ksqlDBCLI로작업하는방법을보여준다.
9장,‘ksqlDB로데이터통합’은ksqlDB의데이터통합기능을알아본다.이기능은카프카커넥트(KafkaConnect)의도움을받아동작한다.
10장,11장에서는ksqlDBSQL을자세히알아보고,여러가지컬렉션(Collection)타입을이용해어떻게작업을하는지보여준다.또한데이터내보내기쿼리(pushquery)와데이터가져오기쿼리(pullquery)등을수행한다.
12장,‘테스트,모니터링,배포’에서는카프카스트림즈와ksqlDB애플리케이션을상용환경에배포할때필요한정보를제공한다.여기에는모니터링,테스트그리고애플리케이션을컨테이너화하는것을포함한다.

**

◈옮긴이의말◈

카프카기반의스트림데이터처리애플리케이션을개발하고유지보수한지어느덧5년이흘렀다.처음몇개로시작한스트리밍처리애플리케이션은그증가속도가가파르게빨라지고있으며,이일을함께하는동료들도많이늘어났다.스트리밍처리기술도이책의카프카스트림즈와ksqlDB뿐만아니라아파치플링크,스파크스트리밍등다양해지고있다.
아마도이책을선택한독자들중에는이런여러스트리밍데이터처리기술을서로비교해보고싶은분도있을수있고,스트리밍데이터처리기술이처음이라익숙한SQL이라는단어에이끌려이책을선택한분도있을수있다.이책은이런두목적을가진독자들을모두만족시킬수있는내용으로구성돼있다.
1부에서는스트리밍데이터처리의기본개념들과카프카스트림즈의구현원리를상세히설명하고있다.1부를읽고나면여러분도“스트림데이터에서의시간”,“윈도우”,“집계”,“상태가있는스트리밍데이터처리”등기본적인스트림데이터처리에관해많은지식을쌓을수있다.따라서개발자가아니더라도스트림데이터처리에대한일반적인지식이필요한독자라면1부를꼭읽어보길바란다.2부에서는1부의내용을바탕으로ksqlDB를상세히다루고,3부는상용화에필요한여러준비사항과단계등실무적인내용을설명한다.이책을모두읽고나면스트리밍데이터의기초부터고급까지모두익힐수있게되며,실습과함께연습하다보면바로실무에적용할수있는수준까지다다르리라기대한다.
개인적으로이책을번역하면서아파치플링크와카프카스트림즈와ksqlDB의차이점에대해비교할수있는좋은기회가됐다.두기술모두대부분의기본개념은비슷하나구현방법이나데이터추상화개념,상태관리등에서차이가있었다.어느것이더낫고부족한지는여러분의요구사항에따라다르며,아파치플링크와카프카스트림즈를비교해보고싶은독자가있다면에이콘출판사의『아파치플링크로하는스트림데이터처리』(2020)를참고하는것도좋다.이책에서는전달보증(DeliveryGuarantee)과같은스트리밍데이터를처리할때매우중요한다른개념들도소개하고있으므로기회가닿으면꼭읽어보길추천한다.
서비스를사용하는고객은점점더빠르고정확한반응을원하고있으며,일괄처리로는이런요구를반영할수없다.빅데이터처리분야에서스트리밍데이터처리는이제선택이아닌필수가돼가는느낌이다.이책을선택한여러분도이번기회에변화하는기술에뒤처지지않고스트리밍처리분야의전문가가되길희망한다.