서브메뉴

본문

스트리밍 시스템 (대용량 데이터 처리를 위한 핵심 개념과 원리, 2022년 대한민국학술원 우수학술도서 선정도서)
스트리밍 시스템 (대용량 데이터 처리를 위한 핵심 개념과 원리, 2022년 대한민국학술원 우수학술도서 선정도서)
저자 : 타일러 아키다우^슬라바 체르냑^루벤 락스
출판사 : 에이콘출판
출판년 : 2021
ISBN : 9791161755397

책소개

스트리밍 데이터 처리, 차원을 높이다!

저자가 작성했던 블로그 글인 “스트리밍 101”에서 시작해 스트리밍 데이터 처리 시스템을 구축하고 사용하는 데 필요한 주요 개념을 “무엇”, “어디서”, “언제”, “어떻게”라는 네 가지 질문 위에 차근히 쌓아간다. 특정 시스템이나 문맥 안에서 부정확하게 쓰이는 개념을 분리해 명확히 전달하고 실제 사례에 어떻게 적용하는지 보여준다. 스트리밍 데이터 처리를 위해 어떤 시스템을 선택하든 개념을 확고하게 이해하는 것은 시스템을 이해하는 데 단단한 지반이 돼 줄 것이다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

* 이 책에서 다루는 내용

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

* 이 책의 대상 독자

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

* 이 책의 구성

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

1부는 빔 모델 (1~4장)을 다룬다. 이 모델은 높은 수준의 배치 및 스트리밍 데이터 처리 모델에 중점을 두고 있으며, 현재 업계 대부분의 시스템에서 전체 또는 부분적인 모습으로 이 모델을 만날 수 있다. 빔 모델은 다음 4개의 장으로 구성돼 있다.

1장, ‘스트리밍 101’에서는 스트림 처리의 기본을 다루고, 몇 가지 용어를 정의한다. 스트리밍 시스템이 갖춘 능력을 설명하고, 중요한 두 시간 영역(처리 시간(processing time)과 이벤트 시간(event time))을 구분하고, 몇 가지 일반적인 데이터 처리 패턴을 살펴본다.

2장, ‘데이터 처리의 무엇을, 어디에, 언제, 어떻게’에서는 비순서 데이터(out-of-order data)에 대한 강력한 스트림 처리의 핵심 개념을 상세히 다룬다.

3장, ‘워터마크(슬라바 집필)’에서는 워터마크를 생성하는 방법, 워터마크가 파이프라인으로 전파되는 과정을 상세히 다루고, 실제 워터마크 구현체 둘을 자세히 설명한다.

4장, ‘고급 윈도우’에서는 2장에서 중단했던 부분부터 시작해 처리 시간 윈도, 세션(session), 트리거(trigger) 같은 고급 윈도 및 트리거 개념을 자세히 알아본다.

5장, ‘”정확히 한 번” 보장과 부작용’에서는 종단간 “정확히 한 번” 또는 “실질적으로 한 번(effectively-once)” 처리를 제공하는 데 겪는 어려움을 설명하고, “정확히 한 번” 처리에 접근하는 세 가지 다른 방법을 아파치 플링크(Apache Flink), 아파치 스파크(Apache Spark), 구글 클라우드 데이터플로우 구현을 통해 소개한다.

2부, 스트림 및 테이블(6~9장)에서는 개념적으로 깊게 들어가 스트림 처리의 내부를 ‘스트림과 테이블’을 통해 바라보는 방법을 다룬다.

6장, ‘스트림과 테이블’에서는 스트림과 테이블의 기본적인 아이디어를 전달하고, 스트림과 테이블이라는 렌즈로 기존 맵리듀스 동작을 분석한다. 또한 이를 빔 모델 전반을 넘어서는 범위에 적용할 수 있도록 충분히 일반화한 스트림/테이블 이론을 구성해본다.

7장, ‘영구적인 저장 상태의 실용성’에서는 스트리밍 파이프라인에서 영구적인 저장 상태(persistent state)가 필요한 이유를 살펴본다. 그리고 흔히 만날 수 있는 암묵적인 상태 둘과, 일반화된 상태 관리 방법이 갖춰야 하는 특성을 알 수 있게 해주는 실질적인 사용 사례(광고 어트리뷰션)를 분석해본다.

8장, ‘스트리밍 SQL’에서는 관계대수(relational algebra)와 SQL의 문맥에서 스트리밍이 갖는 의미를 살펴본다. 이후 빔 모델과 고전적인 SQL 내에 존재하는 고유의 스트림 및 테이블 편향을 비교해 보고, SQL에 강력한 스트리밍 처리를 통합하기 위한 일련의 방법을 제안한다.

9장, ‘스트리밍 조인’에서는 다양한 조인(join) 유형을 설명하고, 스트리밍이라는 문맥 안에서 그 행동을 분석해본다. 또한 시간 유효성 윈도우(temporal validity window)라는 유용하지만 현재로서는 잘 지원되지 않는 사례를 상세히 살펴볼 것이다.

10장, ‘대용량 데이터 처리의 진화’에서는, 데이터 처리 시스템의 역사를 맵리듀스 계열 시스템에 집중해 다루고, 스트리밍 시스템이 오늘날의 모습으로 진화하는 데 기여한 중요한 내용을 살펴본다.

* 지은이의 말

오늘날 빅데이터 분야에서 스트리밍 데이터 처리(streaming data processing)가 주목을 받고 있다. 점점 더 많은 기업이 세계적인 규모의 대규모 무한 데이터셋(unbounded data set)을 다루고 싶어하며, 스트리밍 시스템은 주류로 채택될 만큼 충분히 성숙한 단계에 이르렀다. 이 책이 제공하는 실용적인 가이드를 통해 데이터 엔지니어는 물론 데이터 과학자와 개발자는 개념적이고 플랫폼에 구애받지 않는 방법으로 스트리밍 데이터를 처리하는 방법을 배울 수 있다.

* 옮긴이의 말

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

목차정보

1부. 빔 모델



1장. 스트리밍

__용어: 스트리밍이란?

____심하게 과장된 스트리밍의 한계

____이벤트 시간 대 처리 시간

__데이터 처리 패턴

____유한 데이터

____무한 데이터: 배치

____무한 데이터: 스트리밍

__요약



2장. 데이터 처리의 무엇을, 어디서, 언제, 어떻게

__로드맵

__배치 처리의 기본: 무엇과 어디서

____무엇: 변환

____어디서: 윈도

__스트리밍으로 전환: 언제와 어떻게

____언제: 트리거가 좋은 이유는 트리거가 좋기 때문이다!

____언제: 워터마크

____언제: 조기/정시/지연 트리거

____언제: 허용된 지연 범위(가비지 컬렉션)

____어떻게: 누적

__요약



3장. 워터마크

__정의

__소스 워터마크 생성

____완벽한 워터마크 생성

____휴리스틱 워터마크 생성

__워터마크 전파

____워터마크 전파 이해하기

____워터마크 전파와 출력 타임스탬프

____까다로운 겹치는 윈도의 경우

__백분위 워터마크

__처리 시간 워터마크

__사례 연구

____사례 연구: 구글 클라우드 데이터플로우의 워터마크

____사례 연구: 아파치 플링크의 워터마크

____사례 연구: 구글 클라우드 Pub/Sub의 소스 워터마크

__요약



4장. 고급 윈도

__언제 / 어디서 : 처리 시간 윈도

____이벤트 시간 윈도

____트리거를 사용한 처리 시간 윈도

____인입 시간을 사용한 처리 시간 윈도

__어디서: 세션 윈도

__어디서: 커스텀 윈도

____고정 윈도의 변형

____세션 윈도의 변형

____한 크기로는 충분치 않다

__요약



5장. "정확히 한 번" 보장과 부작용

__왜 "정확히 한 번" 보장이 중요한가?

__정확성 대 완결성

____부작용

____문제 정의

__셔플에서의 "정확히 한 번" 보장

__결정론 다루기

__성능

____그래프 최적화

____블룸 필터

____가비지 컬렉션

__소스에서의 "정확히 한 번" 보장

__싱크에서의 "정확히 한 번" 보장

__사용 사례

____소스 예시: 클라우드 Pub/Sub

____싱크 예시: 파일

____싱크 예시: 구글 빅쿼리

__다른 시스템

____아파치 스파크 스트리밍

____아파치 플링크

__요약



2부. 스트림과 테이블



6장 스트림과 테이블

__스트림/테이블의 기본: 스트림/테이블의 특수상대론

____스트림/테이블의 일반상대론을 향해서

__배치 처리 대 스트림/테이블

____맵리듀스의 스트림 테이블 분석

____배치 처리와의 조화

__스트림/테이블 세상에서의 무엇, 어디서, 언제, 어떻게

____무엇: 변환

____어디서: 윈도

____언제: 트리거

____어떻게: 누적

____빔 모델에서 스트림/테이블의 전반적인 모습

__스트림/테이블의 일반 상대론

__요약



7장. 영구적 저장 상태의 실용성

__동기부여

____불가피한 실패

____정확성 및 효율성

__암시적 상태

____원시 그룹핑

____증분 결합

__일반화된 상태

____사용 사례: 전환 어트리뷰션

____빔을 사용한 전환 어트리뷰션

__요약



8장. 스트리밍 SQL

__스트리밍 SQL이란 무엇인가?

____관계대수

____시간 변이 관계

____스트림과 테이블

__뒤돌아보기: 스트림/테이블 편향

____빔 모델: 스트림 편향의 접근

____SQL 모델: 테이블 편향 접근

__내다보기: 강력한 스트리밍 SQL을 향해서

____스트림/테이블 선택

____시간 연산자

__요약



9장. 스트리밍 조인

__모든 조인은 스트리밍에 속한다

__윈도 없는 조인

____FULL OUTER

____LEFT OUTER

____RIGHT OUTER

____INNER

____ANTI

____SEMI

__윈도 조인

____고정 윈도

____시간 유효성

____시간 유효성 조인

__요약



10장. 대용량 데이터 처리의 진화

__맵리듀스

__하둡

__플룸

__스톰

__스파크

__밀휠

__카프카

__클라우드 데이터플로우

__플링크

__빔

__요약
[알라딘에서 제공한 정보입니다.]

QuickMenu