System Design Space

    Глава 94

    Обновлено: 13 февраля 2026 г. в 08:22

    Streaming Data (short summary)

    Прогресс части0/21

    Источник

    Обзор книги

    Оригинальный обзор Александра Поломодова на tellmeabout.tech

    Перейти на сайт

    Streaming Data: Understanding the Real-Time Pipeline (Потоковая обработка данных)

    Авторы: Andrew Psaltis
    Издательство: Manning Publications, 2017 (русское издание: ДМК Пресс, 2018)
    Объём: 216 страниц

    Andrew Psaltis о потоковой обработке: Collection/Queue/Analysis tiers, семантика доставки, окна данных, алгоритмы на потоке.

    Streaming Data: Understanding the Real-Time Pipeline — оригинальная обложкаОригинал
    Потоковая обработка данных — переводПеревод

    Архитектура потоковой системы

    Книга рассматривает весь pipeline работы с данными от источника до финального потребителя. Референсная архитектура включает следующие звенья:

    Связанная тема

    Kafka: The Definitive Guide

    Глубокое погружение в одну из ключевых технологий потоковой обработки

    Читать обзор
    Collection Tier

    Сбор данных из источников

    Message Queue Tier

    Буферизация и маршрутизация

    Analysis Tier

    Обработка и анализ потока

    In-Memory Store

    Хранение в памяти

    Data Access Tier

    Доступ к обработанным данным

    Consumer Tier

    Потребители данных

    Collection Tier — Звено сбора данных

    Рекомендация автора

    Enterprise Integration Patterns

    Классическая книга по интеграционным паттернам, на которую ссылается автор

    Читать обзор

    Глава рассматривает паттерны взаимодействия для сбора данных:

    Request/Response — Классический запрос-ответ
    Request/Acknowledge — Запрос с подтверждением получения
    Publish/Subscribe — Издатель-подписчик
    One-way — Одностороннее взаимодействие
    Stream — Непрерывный поток данных

    Отказоустойчивость

    Автор рассматривает два подхода: контрольные точки и протоколирование. Для потоковых систем более применимо протоколирование:

    RBML

    Receiver-based message logging

    SBML

    Sender-based message logging

    HML

    Hybrid message logging

    Message Queuing Tier — Очередь сообщений

    Цель этого звена — разрыв связи между сбором и анализом данных. Ключевые концепции: производитель, брокер и потребитель.

    Семантика доставки сообщений

    At most once

    Сообщение доставляется не более одного раза, возможна потеря

    Низкая
    At least once

    Гарантированная доставка, возможны дубликаты

    Средняя
    Exactly once

    Ровно одна доставка, самая сложная реализация

    Высокая

    Analysis Tier — Анализ потоковых данных

    Связанная глава

    DDIA: Stream Processing

    11 глава DDIA глубоко раскрывает тему потоковой обработки

    Читать обзор

    Самая содержательная часть книги. Начинается с концепции in-flight dataи инверсии традиционной модели управления данными.

    Технологии обработки

    Spark StreamingStormFlinkSamza

    Общие компоненты

    • Application Driver
    • Streaming Manager
    • Stream Processor
    • Data Sources

    Ключевые функции при выборе системы

    📨

    Message Delivery

    Семантика доставки

    💾

    State Management

    Управление состоянием

    🛡️

    Fault Tolerance

    Отказоустойчивость

    Ограничения алгоритмов на потоке

    • Однопроходность — один шанс на обработку каждого сообщения
    • Concept drift — свойства модели могут меняться с новыми данными
    • Ограниченность ресурсов — не всегда хватает мощности для обработки
    • Время — различие между временем потока и временем события

    Окна данных и обобщение

    Sliding Window

    Скользящее окно — перекрывающиеся интервалы для непрерывного анализа

    Tumbling Window

    Прыгающее окно — непересекающиеся интервалы фиксированного размера

    Методы обобщения данных на потоке

    Случайная выборка

    Репрезентативная часть потока

    LogLog / MinCount

    Подсчёт уникальных элементов

    Count-Min Sketch

    Частота встречи элемента

    Фильтр Блума

    Вопрос о вхождении элемента

    Хранение данных

    Long-term Storage

    • Прямая запись — снижает скорость потока
    • Непрямая запись — ETL с пакетной загрузкой

    In-Memory Storage

    SQLiteRocksDBLevelDBMemcachedRedisMemSQLAerospikeApache Ignite

    Стратегии кеширования

    Read-through

    Сквозное чтение

    Refresh-ahead

    Опережающее обновление

    Write-through

    Сквозная запись

    Write-around

    Обходная запись

    Write-behind

    Отложенная запись

    Data Access Tier — Доступ к данным

    Паттерны взаимодействия

    • Data Sync
    • RPC / RMI
    • Simple Messaging
    • Publish-Subscribe

    Протоколы доставки

    WebhooksLong PollSSEWebSocket

    Факторы выбора протокола

    Update Frequency
    Direction
    Latency
    Efficiency
    Fault Tolerance

    Consumer Tier — Потребители данных

    📊

    Информационные приложения

    Дашборды, отчёты, визуализация

    🔗

    Интеграция со сторонними системами

    API, webhooks, синхронизация

    Обработка потока

    Downstream processing

    Ключевые вопросы для потокового клиента

    • 1.Как клиенту узнать, что он читает недостаточно быстро?
    • 2.Что произойдёт, если он об этом не узнает?
    • 3.Как масштабировать клиента, чтобы он успевал за потоком?

    Итоги

    "Краткость — сестра таланта" — А.П. Чехов

    Книга полезная и короткая (около 200 страниц), что делает её ещё лучше. Концептуально она не устарела за годы с момента выпуска — архитектурные паттерны потоковой обработки остаются актуальными.