장바구니 담기 close

장바구니에 상품을 담았습니다.

카프카 스트림즈와 ksqlDB 정복

카프카 스트림즈와 ksqlDB 정복

  • 미치 시모어
  • |
  • 에이콘출판
  • |
  • 2022-11-28 출간
  • |
  • 540페이지
  • |
  • 188 X 235 X 30mm
  • |
  • ISBN 9791161756929
판매가

40,000원

즉시할인가

36,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
36,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

◈ 이 책에서 다루는 내용 ◈

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

◈ 이 책의 대상 독자 ◈

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

◈ 이 책의 구성 ◈

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

**

◈ 옮긴이의 말 ◈

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

목차

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

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

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

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

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

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

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

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

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

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

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

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

부록 A 스트림즈 설정
부록 B ksqlDB 설정

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.