스트리밍 시스템 (대용량 데이터 처리를 위한 핵심 개념과 원리 | 2022년도 대한민국학술원 선정 교육부 우수학술도서)

스트리밍 시스템 (대용량 데이터 처리를 위한 핵심 개념과 원리 | 2022년도 대한민국학술원 선정 교육부 우수학술도서)

$36.00
Description
스트리밍 데이터 처리, 차원을 높이다!
저자가 작성했던 블로그 글인 “스트리밍 101”에서 시작해 스트리밍 데이터 처리 시스템을 구축하고 사용하는 데 필요한 주요 개념을 “무엇”, “어디서”, “언제”, “어떻게”라는 네 가지 질문 위에 차근히 쌓아간다. 특정 시스템이나 문맥 안에서 부정확하게 쓰이는 개념을 분리해 명확히 전달하고 실제 사례에 어떻게 적용하는지 보여준다. 스트리밍 데이터 처리를 위해 어떤 시스템을 선택하든 개념을 확고하게 이해하는 것은 시스템을 이해하는 데 단단한 지반이 돼 줄 것이다.
선정 및 수상내역
2022년 대한민국학술원 우수학술도서 선정도서
저자

타일러아키다우

TylerAkidau
구글(Google)의선임소프트웨어엔지니어다.데이터처리언어및시스템그룹의기술책임자로서구글내아파치빔(ApacheBeam),구글클라우드데이터플로우(GoogleCloudDataflow),구글플럼(GoogleFlume),맵리듀스(MapReduce),밀휠(MillWheel)과같은내부데이터처리도구개발을담당하고있다.그는아파치빔PMC창립멤버이기도하다.스트림처리의능력과중요성에대해열정을갖고목소리를높이지만배치와스트리밍은동전의양면과같다고굳게믿으며,데이터처리시스템의최종모습은둘사이의매끄러운결합이라고생각한다.오라일리(O'Reilly)웹사이트에있는"DataflowModel(http://bit.ly/2sXgVJ3)”,"Streaming101(http://oreil.ly/1p1AKux)”,"Streaming102(http://oreil.ly/1TV7YGU)”의저자이기도하다.카고자전거로두딸을태우고달리는것을즐긴다.

목차

1부.빔모델

1장.스트리밍
__용어:스트리밍이란?
____심하게과장된스트리밍의한계
____이벤트시간대처리시간
__데이터처리패턴
____유한데이터
____무한데이터:배치
____무한데이터:스트리밍
__요약

2장.데이터처리의무엇을,어디서,언제,어떻게
__로드맵
__배치처리의기본:무엇과어디서
____무엇:변환
____어디서:윈도
__스트리밍으로전환:언제와어떻게
____언제:트리거가좋은이유는트리거가좋기때문이다!
____언제:워터마크
____언제:조기/정시/지연트리거
____언제:허용된지연범위(가비지컬렉션)
____어떻게:누적
__요약

3장.워터마크
__정의
__소스워터마크생성
____완벽한워터마크생성
____휴리스틱워터마크생성
__워터마크전파
____워터마크전파이해하기
____워터마크전파와출력타임스탬프
____까다로운겹치는윈도의경우
__백분위워터마크
__처리시간워터마크
__사례연구
____사례연구:구글클라우드데이터플로우의워터마크
____사례연구:아파치플링크의워터마크
____사례연구:구글클라우드Pub/Sub의소스워터마크
__요약

4장.고급윈도
__언제/어디서:처리시간윈도
____이벤트시간윈도
____트리거를사용한처리시간윈도
____인입시간을사용한처리시간윈도
__어디서:세션윈도
__어디서:커스텀윈도
____고정윈도의변형
____세션윈도의변형
____한크기로는충분치않다
__요약

5장.“정확히한번”보장과부작용
__왜“정확히한번”보장이중요한가?
__정확성대완결성
____부작용
____문제정의
__셔플에서의“정확히한번”보장
__결정론다루기
__성능
____그래프최적화
____블룸필터
____가비지컬렉션
__소스에서의“정확히한번”보장
__싱크에서의“정확히한번”보장
__사용사례
____소스예시:클라우드Pub/Sub
____싱크예시:파일
____싱크예시:구글빅쿼리
__다른시스템
____아파치스파크스트리밍
____아파치플링크
__요약

2부.스트림과테이블

6장스트림과테이블
__스트림/테이블의기본:스트림/테이블의특수상대론
____스트림/테이블의일반상대론을향해서
__배치처리대스트림/테이블
____맵리듀스의스트림테이블분석
____배치처리와의조화
__스트림/테이블세상에서의무엇,어디서,언제,어떻게
____무엇:변환
____어디서:윈도
____언제:트리거
____어떻게:누적
____빔모델에서스트림/테이블의전반적인모습
__스트림/테이블의일반상대론
__요약

7장.영구적저장상태의실용성
__동기부여
____불가피한실패
____정확성및효율성
__암시적상태
____원시그룹핑
____증분결합
__일반화된상태
____사용사례:전환어트리뷰션
____빔을사용한전환어트리뷰션
__요약

8장.스트리밍SQL
__스트리밍SQL이란무엇인가?
____관계대수
____시간변이관계
____스트림과테이블
__뒤돌아보기:스트림/테이블편향
____빔모델:스트림편향의접근
____SQL모델:테이블편향접근
__내다보기:강력한스트리밍SQL을향해서
____스트림/테이블선택
____시간연산자
__요약

9장.스트리밍조인
__모든조인은스트리밍에속한다
__윈도없는조인
____FULLOUTER
____LEFTOUTER
____RIGHTOUTER
____INNER
____ANTI
____SEMI
__윈도조인
____고정윈도
____시간유효성
____시간유효성조인
__요약

10장.대용량데이터처리의진화
__맵리듀스
__하둡
__플룸
__스톰
__스파크
__밀휠
__카프카
__클라우드데이터플로우
__플링크
__빔
__요약

출판사 서평

★이책에서다루는내용★

■스트리밍및배치데이터처리패턴차이
■강력한비순서데이터처리(out-of-orderdataprocessing)개념과핵심원칙
■워터마크를통해무한데이터셋(infinitedataset)의진행정도와완결추적방법
■정확히한번처리(exactly-onceprocessing)기법의정확성보장방법
■스트림과테이블의개념이배치및스트리밍데이터처리의토대를이루는방법
■실제사례로알아보는강력한영구적저장상태(persistentstate)의실질적인목적
■시간변이관계를통해스트림처리를친숙한SQL및관계대수와연결짓는방법

★이책의대상독자★

이론적이고플랫폼에구애받지않고도스트리밍데이터를처리하는방법을배우고싶은데이터엔지니어와데이터과학자,개발자에게적합하다.

★이책의구성★

크게두부분으로나뉜다.각부는4개의장으로구성돼있고,각장은상대적으로독립된장이하나씩따라오는구조다.

1부는빔모델(1~4장)을다룬다.이모델은높은수준의배치및스트리밍데이터처리모델에중점을두고있으며,현재업계대부분의시스템에서전체또는부분적인모습으로이모델을만날수있다.빔모델은다음4개의장으로구성돼있다.
1장,‘스트리밍101’에서는스트림처리의기본을다루고,몇가지용어를정의한다.스트리밍시스템이갖춘능력을설명하고,중요한두시간영역(처리시간(processingtime)과이벤트시간(eventtime))을구분하고,몇가지일반적인데이터처리패턴을살펴본다.
2장,‘데이터처리의무엇을,어디에,언제,어떻게’에서는비순서데이터(out-of-orderdata)에대한강력한스트림처리의핵심개념을상세히다룬다.
3장,‘워터마크(슬라바집필)’에서는워터마크를생성하는방법,워터마크가파이프라인으로전파되는과정을상세히다루고,실제워터마크구현체둘을자세히설명한다.
4장,‘고급윈도우’에서는2장에서중단했던부분부터시작해처리시간윈도,세션(session),트리거(trigger)같은고급윈도및트리거개념을자세히알아본다.
5장,‘”정확히한번”보장과부작용’에서는종단간“정확히한번”또는“실질적으로한번(effectively-once)”처리를제공하는데겪는어려움을설명하고,“정확히한번”처리에접근하는세가지다른방법을아파치플링크(ApacheFlink),아파치스파크(ApacheSpark),구글클라우드데이터플로우구현을통해소개한다.

2부,스트림및테이블(6~9장)에서는개념적으로깊게들어가스트림처리의내부를‘스트림과테이블’을통해바라보는방법을다룬다.
6장,‘스트림과테이블’에서는스트림과테이블의기본적인아이디어를전달하고,스트림과테이블이라는렌즈로기존맵리듀스동작을분석한다.또한이를빔모델전반을넘어서는범위에적용할수있도록충분히일반화한스트림/테이블이론을구성해본다.
7장,‘영구적인저장상태의실용성’에서는스트리밍파이프라인에서영구적인저장상태(persistentstate)가필요한이유를살펴본다.그리고흔히만날수있는암묵적인상태둘과,일반화된상태관리방법이갖춰야하는특성을알수있게해주는실질적인사용사례(광고어트리뷰션)를분석해본다.
8장,‘스트리밍SQL’에서는관계대수(relationalalgebra)와SQL의문맥에서스트리밍이갖는의미를살펴본다.이후빔모델과고전적인SQL내에존재하는고유의스트림및테이블편향을비교해보고,SQL에강력한스트리밍처리를통합하기위한일련의방법을제안한다.
9장,‘스트리밍조인’에서는다양한조인(join)유형을설명하고,스트리밍이라는문맥안에서그행동을분석해본다.또한시간유효성윈도우(temporalvaliditywindow)라는유용하지만현재로서는잘지원되지않는사례를상세히살펴볼것이다.
10장,‘대용량데이터처리의진화’에서는,데이터처리시스템의역사를맵리듀스계열시스템에집중해다루고,스트리밍시스템이오늘날의모습으로진화하는데기여한중요한내용을살펴본다.

[옮긴이의말]

현재엄청난대규모데이터가생성되고이러한빅데이터를처리하고분석하기위한요구가점점늘어가고있다.기존빅데이터를축적해배치로처리하는방식에서실시간으로빅데이터를처리하기위해스트리밍시스템에대한관심과요구가증가하고있다.이책은스트리밍시스템과스트리밍데이터처리를위한개념과원리를잘설명하고있으며,이를활용하고사용하는방법에대한실무적인내용을포함하고있다.책을다읽고나면스트리밍시스템과스트리밍데이터처리에대한한차원높은지식을갖게될것이다.