이미 소장하고 있다면 판매해 보세요.
|
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장. 대용량 데이터 처리의 진화 __맵리듀스 __하둡 __플룸 __스톰 __스파크 __밀휠 __카프카 __클라우드 데이터플로우 __플링크 __빔 __요약 |
Tyler Akidau
Slava Chernyak
Reuven Lax
|
* 이 책에서 다루는 내용
- 스트리밍 및 배치 데이터 처리 패턴 차이 - 강력한 비순서 데이터 처리(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)을 다루고 싶어하며, 스트리밍 시스템은 주류로 채택될 만큼 충분히 성숙한 단계에 이르렀다. 이 책이 제공하는 실용적인 가이드를 통해 데이터 엔지니어는 물론 데이터 과학자와 개발자는 개념적이고 플랫폼에 구애받지 않는 방법으로 스트리밍 데이터를 처리하는 방법을 배울 수 있다. * 옮긴이의 말 현재 엄청난 대규모 데이터가 생성되고 이러한 빅데이터를 처리하고 분석하기 위한 요구가 점점 늘어가고 있다. 기존 빅데이터를 축적해 배치로 처리하는 방식에서 실시간으로 빅데이터를 처리하기 위해 스트리밍 시스템에 대한 관심과 요구가 증가하고 있다. 이 책은 스트리밍 시스템과 스트리밍 데이터 처리를 위한 개념과 원리를 잘 설명하고 있으며, 이를 활용하고 사용하는 방법에 대한 실무적인 내용을 포함하고 있다. 책을 다 읽고 나면 스트리밍 시스템과 스트리밍 데이터 처리에 대한 한 차원 높은 지식을 갖게 될 것이다. |