Проектирование конвейера данных на основе принципов наблюдаемости (observability) для аналитики в реальном времени

Вы хотите построить конвейер данных, обеспечивающий аналитику в реальном времени. Для этого необходимо спроектировать систему, способную обрабатывать высокоскоростные потоки событий с низкой задержкой и предоставлять операторам практически значимую информацию (actionable insights).

Основные компоненты:

  • Слой сбора (Ingest layer): адаптеры потоковых источников, такие как Kafka или Kinesis
  • Слой обработки (Processing layer): потоковая обработка для агрегации и обогащения данных
  • Слой хранения (Storage layer): неизменяемое хранилище событий для возможности повторного воспроизведения и оптимизированные для чтения хранилища для аналитики
  • Слой обслуживания/запросов (Serving/query layer): материализованные представления и предварительно агрегированные таблицы
  • Слой наблюдаемости (Observability layer): трассировка, метрики, логи, дашборды и оповещения

Для начала определите свои требования:

  • Скорость сбора: 100 тыс. событий в секунду
  • Сквозная задержка (end-to-end latency): ≤ 300 мс
  • Паттерны запросов: агрегации с временными границами и SLO для хвостовой задержки (tail latency)

Выберите ожидаемые результаты наблюдаемости:

  • Достаточный объем телеметрии для диагностики задержек и перекоса данных (data skew)
  • Быстрый анализ первопричин (root-cause analysis) сбоев

Источник: https://dev.to/therizwansaleem/designing-an-observability-driven-data-pipeline-for-real-time-analytics-4n8d