- Артикул:00-01050153
- Автор: Фишер Д., Ван Н.
- ISBN: 978-5-4461-2306-3
- Тираж: 500 экз.
- Обложка: Мягкая обложка
- Издательство: Питер (все книги издательства)
- Город: Санкт-Петербург
- Страниц: 288
- Формат: 70x100/16 (~170x240 мм)
- Год: 2023
- Вес: 722 г
- Серия: Библиотека программиста (все книги серии)
Стриминговые системы позволяют сократить до минимума время между событием и ооработ-кой информации, чтобы вы получали результаты в реальном времени. В приложениях для финансовой сферы, в вопросах безопасности и IоТ важна каждая миллисекунда, поэтому без стриминговых систем не обойтись. А еще - это модно и приносит деньги ;)! Неслучайно специалисты в Spark, Heron и Kafka так востребованы.
Наконец, вы можете познакомиться с созданием стриминговых приложений и обработкой событий в реальном времени не продираясь через технические подробности конкретных фреймворков, головоломные термины и сложные формулировки. Простой язык и яркие примеры позволят вам познакомиться с базовыми концепциями, а чтобы усвоить описанные идеи и приемы, вы построите собственную простую стриминговую программу с нуля.
От читателя не требуется опыт работы со стриминговыми системами. Примеры написаны на языке Java.
Содержание
Предисловие
Благодарности
О книге
Форум liveBook
От издательства
Об авторах
Часть I. Знакомство
Глава 1. Знакомство со стриминговыми системами
Что такое потоковая обработка?
Примеры событий
Примеры стриминговых систем
Стриминговые системы и реальное время
Как работает стриминговая система
Серверные службы
Системы пакетной обработки
Внутри системы пакетной обработки данных
Системы потоковой обработки
Внутри системы потоковой обработки
Преимущества многофазной архитектуры
Многофазная архитектура в системах пакетной и потоковой обработки
Сравнение систем
Эталонная система обработки событий
Итоги
Упражнение
Глава 2. Привет, стриминговые системы!
Начальнику нужен современный пункт оплаты
Вначале были запросы HTTP... и ничего не вышло
ЭйДжей и Миранда берут паузу, чтобы подумать
ЭйДжей размышляет о стриминговых системах
Сравнение серверных служб и потоковой обработки
Очереди: фундаментальная концепция
Передача данных в очередях
Потоковый фреймворк (вернее, его начало)
Обзор фреймворка Streamwork
Подробнее о ядре Streamwork
Основные стриминговые концепции
Подробнее о концепциях
Последовательность выполнения стримингового задания
Первое стриминговое задание
Выполнение задания
Ход выполнения задания
Внутри ядра
Перемещение событий
Жизненный цикл элемента данных
Краткий обзор концепций стриминга
Итоги
Упражнения
Глава 3. Параллелизация и группировка данных
Датчик генерирует больше событий
Даже в потоковых системах непросто добиться обработки в реальном времени
Новые концепции: параллелизм важен
Новые концепции: параллелизм данных
Новые концепции: независимость выполнения данных
Новые концепции: параллелизм задач
Параллелизм данных и параллелизм задач
Параллелизм и многозадачность
Параллелизация задания
Параллелизация компонентов
Параллелизация источников
Результат выполнения
Параллелизация операторов
Результат выполнения
События и экземпляры
Упорядочение событий
Группировка событий
Случайная группировка
Случайная группировка: внутренний механизм
Группировка по значениям полей
Группировка по значениям полей: внутренний механизм
Выполнение группировки событий
Заглянуть в ядро: диспетчер событий
Применение группировки по значениям полей в задании
Упорядочение событий
Сравнение поведения группировок
Итоги
Упражнения
Глава 4. Граф потока
Система обнаружения мошеннических действий с кредитными картами
Подробнее о системе обнаружения мошеннических действий с кредитными картами
Процедура обнаружения мошеннических действий
Потоковая обработка не всегда прямолинейна
Механизм работы системы
Подробнее о задании обнаружения мошеннических действий
Новые концепции
Предшествующие и последующие компоненты
Разветвление и объединение потока
Графы, направленные графы и DAG
DAG в системах потоковой обработки
Все новые концепции на одной странице
Разветвление потока к анализаторам
Что происходит внутри ядра
Проблема эффективности
Разветвление с несколькими потоками
Что происходит внутри ядра (еще раз)
Коммуникации между компонентами по каналам
Несколько каналов
Объединение потока в агрегаторе оценок
Объединение потоков в ядре
Краткий обзор разновидности объединения потоков - соединения
Система в целом
Графы и стриминговые задания
Примеры систем
Итоги
Упражнения
Глава 5. Семантика доставки
Требования к задержке в системе обнаружения мошеннических действий
Возвращаемся к заданию обнаружения мошеннических действий
О точности
Частичный результат
Новое стриминговое задание для контроля за использованием системы
Новое задание контроля использования системы
Требования к заданию контроля
Новые концепции: количество доставок и обработок
Новая концепция: семантика доставки
Выбор семантики
Задание обнаружения мошеннических действий
«Не менее одного»
«Не менее одного» с подтверждением
Отслеживание событий
Управление сбоями при обработке событий
Раннее обнаружение потерянных событий
Код подтверждения в компонентах
Новая концепция: контрольные точки
Новая концепция: состояние
Контрольные точки в задании контроля за использованием системы для семантики «не менее одного»
Контрольные точки и функции управления состоянием
Код управления состоянием в компоненте источника транзакций
Ровно один или фактически один?
Вспомогательная концепция: идемпотентные операции
Наконец, «ровно один»
Код управления состоянием в компоненте анализатора использования системы
Повторное сравнение семантик доставки
Итоги
Упражнения
Что дальше?
Глава 6. Краткий обзор стриминговых систем и взгляд в будущее
Компоненты стриминговых систем
Параллелизация и группировка событий
DAG и стриминговые задания
Семантика (гарантия)доставки
Семантика доставки в системе обнаружения мошеннических действий с кредитными картами
Что дальше?
Оконные вычисления
Соединение данных в реальном времени
Обратное давление
Вычисления с состоянием и без состояния
Часть II. Движемся дальше
Глава 7. Оконные вычисления
Сегментация данных в реальном времени
Анализ задачи
Анализ задачи (продолжение)
Два разных контекста
Окна в задании обнаружения мошеннических действий
Что именно называется окном?
Подробнее об окнах
Новая концепция: оконная стратегия
Фиксированные окна
Фиксированные окна в анализаторе оконного расстояния
Обнаружение попыток мошенничества в фиксированном временном окне
Фиксированные окна: время и количество
Скользящие окна
Скользящие окна: анализатор оконного расстояния
Обнаружение мошеннических действий благодаря использованию скользящих окон
Сеансовые окна
Сеансовые окна (продолжение)
Обнаружение мошеннических действий благодаря использованию сеансовых окон
Обзор оконных стратегий
Разбиение потока событий на наборы данных
Оконные системы: концепция или реализация
Другой взгляд
Хранилища пар «ключ - значение»
Реализация анализатора оконного расстояния
Время события и другие вехи
Водяной знак окна
Поздние события
Итоги
Упражнения
Глава 8. Операции соединения
Соединение данных выбросов в реальном времени
Задание контроля выбросов, версия 1
Преобразователь данных о выбросах
Точность становится проблемой
Обновленное задание контроля выбросов
Все внимание на соединение
Еще раз: что такое соединение?
Как работает стриминговое соединение
Соединение (join) потоков - разновидность объединения (fan-in)
События автомобилей и события температуры
Таблица как материализованное представление стриминга
Материализация событий автомобилей менее эффективна
Проблемы с целостностью данных
Проблемы с оператором соединения
Внутреннее соединение
Внешнее соединение
Внутренние и внешние соединения
Разные типы соединений
Внешние соединения в стриминговых системах
Новая проблема: ненадежное соединение
Оконные соединения
Соединение двух таблиц вместо соединения потока с таблицей
Снова о материализации представлений
Итоги
Глава 9. Обратное давление
Надежность критична
Обзор системы
Усовершенствование стриминговых заданий
Новые концепции: мощность, использование и резерв мощности
Подробнее об использовании и резерве мощности
Новая концепция: обратное давление
Измерение использования мощности
Обратное давление в ядре Streamwork
Обратное давление в ядре Streamwork: распространение
Стриминговое задание с обратным давлением
Обратное давление в распределенных системах
Новая концепция: водяные знаки обратного давления
Другой подход к управлению отстающими экземплярами: отбрасывание событий
Когда отбрасывание событий допустимо?
Обратное давление как возможный симптом
Останов и возобновление работы могут привести к пробуксовке
Решение проблемы пробуксовки
Итоги
Глава 10. Вычисления с состоянием
Миграция стриминговых заданий
Компоненты с состоянием в задании контроля за использованием системы
Снова о состоянии
Состояния в разных компонентах
Данные состояния и временные данные
Компоненты с состоянием и без состояния: код
Источник с состоянием и оператор в задании контроля за использованием системы
Состояния и контрольные точки
Создание контрольных точек: сложность выбора момента времени
Событийный отсчет времени
Создание контрольных точек с использованием событий контрольных точек
Событие контрольной точки обрабатывается исполнителями экземпляров
Путь события контрольной точки через задание
Создание контрольных точек с использованием событий контрольных точек на уровне экземпляров
Синхронизация событий контрольных точек
Загрузка контрольных точек и обратная совместимость
Хранилище контрольных точек
Компоненты с состоянием и компоненты без состояния
Ручное управление состоянием экземпляров
Лямбда-архитектура
Итоги
Упражнения
Глава 11. Продвинутые концепции в стриминговых системах
Это действительно все?
Оконные вычисления
Основные виды окон
Соединение данных в реальном времени
SQL и стриминговые соединения
Внутренние и внешние соединения
Неожиданности в стриминговых системах
Обратное давление: замедление источников или предшествующих компонентов
Другой подход к управлению отстающими экземплярами: отбрасывание событий
Обратное давление может быть симптомом постоянной проблемы
Компоненты с состоянием и контрольные точки
Событийный отсчет времени
Компоненты с состоянием и компоненты без состояния
У вас все получилось!
Ключевые концепции, рассмотренные в книге
Артикул 00-00008222