Источник
Обзор книги
Оригинальный обзор Александра Поломодова на tellmeabout.tech
Big Data: Principles and Best Practices of Scalable Realtime Data Systems
Авторы: Nathan Marz, James Warren
Издательство: Manning Publications
Объём: 328 страниц
Nathan Marz о Lambda Architecture: batch/serving/speed layers, иммутабельность данных, HyperLogLog и практические примеры.
ОригиналLambda Architecture
Связанная тема
DDIA: Batch & Stream Processing
Главы 10-11 DDIA подробно разбирают batch и stream processing
Книга посвящена Lambda Architecture — архитектурному паттерну для систем обработки больших данных, состоящему из трёх уровней:
Batch Layer
Хранение мастер-данных в формате иммутабельных событий (append-only). Расчёт произвольных представлений на полном наборе данных.
Serving Layer
Быстрые запросы по предвычисленным представлениям. Может быть иммутабельным между перерасчётами batch layer.
Speed Layer
Обработка потока данных для актуализации между перерасчётами batch layer. Приблизительные агрегаты в реальном времени.
Lambda Architecture Map
master dataset + batch views + realtime viewsLambda Architecture объединяет точность batch-пересчётов и low-latency потоковый слой через единый serving контур.
"The Lambda Architecture provides a general-purpose approach to implementing an arbitrary function on an arbitrary dataset and having the function return its results with low latency"
— Nathan Marz
Желаемые свойства Big Data System
Авторы определяют ключевые свойства, которыми должна обладать система обработки больших данных:
Горизонтальное масштабирование
Возможность добавлять узлы для увеличения мощности
Отказоустойчивость
Устойчивость к аппаратным сбоям без потери данных
Исправление ошибок
Возможность исправить ошибки человеческого фактора
Low Latency
Быстрые ответы на запросы пользователей
Произвольные запросы
Поддержка любых типов вычислений над данными
Минимальная сложность
Простота операционного сопровождения системы
Структура книги
Рекомендуем
Streaming Data
Современный взгляд на архитектуру потоковых систем
Книга разделена на части, соответствующие уровням Lambda Architecture:
Часть 1: Batch Layer
Модель данных, хранение мастер-данных, вычисление представлений на полном наборе данных.
Часть 2: Serving Layer
Индексирование и обслуживание предвычисленных представлений для быстрых запросов.
Часть 3: Speed Layer
Обработка данных в реальном времени, компенсация задержки batch layer.
Практические примеры
Авторы не ограничиваются теорией, но и разбирают характерные задачи для big data систем:
URL Page Views
Подсчёт просмотров URL сайта по времени
Unique Visitors
Расчёт количества уникальных пользователей с HyperLogLog
Bounce Rate
Подсчёт отказов веб-приложения по всему домену
Технологический стек примеров
Storage
HDFS
Batch
Hadoop
Serving
ElephantDB
Speed
Storm
* Технологии из книги 2015 года. Современные альтернативы: Spark, Flink, Kafka Streams
