000 | 00000cam c2200205 c 4500 | |
001 | 000046138252 | |
005 | 20230105145631 | |
007 | ta | |
008 | 230105s2023 ulka 001c kor | |
020 | ▼a 9791161756929 ▼g 93000 | |
035 | ▼a (KERIS)BIB000016585295 | |
040 | ▼a 211015 ▼c 211015 ▼d 211009 | |
041 | 1 | ▼a kor ▼h eng |
082 | 0 4 | ▼a 004.2/1 ▼2 23 |
085 | ▼a 004.21 ▼2 DDCK | |
090 | ▼a 004.21 ▼b 2023 | |
100 | 1 | ▼a Seymour, Mitch |
245 | 1 0 | ▼a 카프카 스트림즈와 ksqlDB 정복 : ▼b 실시간 데이터 처리 / ▼d 미치 시모어 지음 ; ▼e 오세봉 옮김 |
246 | 1 9 | ▼a Mastering Kafka streams and ksqlDB : ▼b building real -time data systems by example |
260 | ▼a 서울 : ▼b 에이콘, ▼c 2023 | |
300 | ▼a 539 p. : ▼b 삽화 ; ▼c 24 cm | |
490 | 1 0 | ▼a 에이콘 클라우드 컴퓨팅 시리즈 |
500 | ▼a 부록: A. 스트림즈 설정, B. ksqlDB 설정 | |
500 | ▼a 색인수록 | |
650 | 0 | ▼a Electronic data processing ▼x Structured techniques |
700 | 1 | ▼a 오세봉, ▼e 역 |
830 | 0 | ▼a 에이콘 클라우드 컴퓨팅 시리즈 |
900 | 1 0 | ▼a 시모어, 미치, ▼e 저 |
945 | ▼a ITMT |
소장정보
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 004.21 2023 | 등록번호 121261597 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 004.21 2023 | 등록번호 121261832 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
카프카 스트림즈와 ksqlDB를 사용하면 쉽고 빠르게 스트림 데이터를 처리하고 실시간으로 분석할 수 있다. 강력한 카프카 스트림즈와 ksqlDB의 스트림 처리 기능을 바탕으로 매일 수천억 건 이상의 데이터를 처리하는 스트림 데이터 처리 애플리케이션도 개발할 수 있다.
이 책은 스트림 데이터의 일반적인 내용을 비롯해 카프카 스트림즈와 ksqlDB의 구현 원리 및 스트림 데이터 개발에 필요한 여러 기능과 상용화 방법을 쉬운 예제로 설명한다. 따라서 스트림 데이터 처리가 궁금한 독자나 스트림 데이터 처리 애플리케이션 개발에 관심이 많은 개발자라면 꼭 읽어봐야 하는 책이다.
◈ 이 책에서 다루는 내용 ◈
◆ 카프카와 펍/섭 통신 패턴 학습
◆ 스트림 처리 애플리케이션 구축
◆ 윈도우 조인과 집계 등 복잡한 연산 수행
◆ 상태가 있는 처리의 내부 동작 이해
◆ 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 애플리케이션을 상용 환경에 배포할 때 필요한 정보를 제공한다. 여기에는 모니터링, 테스트 그리고 애플리케이션을 컨테이너화하는 것을 포함한다.
정보제공 :

저자소개
미치 시모어(지은이)
메일침프 데이터 서비스 팀의 엔지니어이자 기술 책임자다. 카프카 스트림즈와 ksqlDB를 사용해 하루에 수십억 개의 이벤트를 초 미만의 지연 시간으로 처리하는 많은 스트림 처리 애플리케이션을 구축했다. 오픈 소스 커뮤니티에서 활동하고 있으며, 국제 컨퍼런스(카프카 서밋 런던, 2019)에서 스트림 처리 기술에 대해 발표했다. 지역 밋업에서 카프카 스트림즈와 ksqlDB를 주제로 강연하고 있으며 컨플루언트 블로그에 기고하고 있다.
오세봉(옮긴이)
티맥스 소프트에서 웹 어플리케이션 서버를 개발하다 빅데이터에 관심이 생겨 KT 넥스알에 입사했다. 재직 중에 『하이브 완벽 가이드』(한빛미디어, 2013), 『케스케이딩 완벽 가이드』(한빛미디어, 2014)와 『MVC 구조의 확실한 해답 AngularJS 디렉티브』(에이콘, 2016)을 번역했다. KT 넥스알을 나와 어린이용 스마트워치(LINE 키즈폰)를 출시했으며 이때부터 안드로이드 개발을 시작했다. 대학 때부터 웹을 비롯한 UI에 관심이 많아 안드로이드 UI에 적응하는 데 오래 걸리지는 않았지만 SQLite를 비롯한 안드로이드 서비스는 자료가 많지 않아 시행착오를 많이 겪어야 했다. 현재는 SK텔레콤에서 빅데이터를 이용한 데이터 분석과 관련된 일을 하고 있다.

목차
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 설정