Платформа начинается с высокопроизводительного брокера сообщений, такого как Apache Kafka или Amazon Kinesis. События публикуются продюсерами и потребляются нижестоящими обработчиками. Партиционированный, надёжный лог Kafka гарантирует отказоустойчивость и позволяет как потребителям реального времени, так и batch-потребителям читать данные независимо.
Движок потоковой обработки вроде Apache Flink или Spark Streaming потребляет события в реальном времени. Он выполняет:
Результаты немедленно записываются в быстрое хранилище типа Redis или Apache Druid для низколатентных запросов к дашбордам.
Параллельный batch-пайплайн читает сырые события из холодного хранилища (например, S3 или HDFS) и переобрабатывает исторические данные с помощью Apache Spark. Это исправляет результаты, затронутые запоздавшими или неупорядоченными событиями, и наполняет хранилище данных вроде Snowflake или BigQuery для ad-hoc аналитических запросов.
Система следует Lambda-архитектуре, комбинируя:
Альтернативно, Kappa-архитектура использует только потоковый процессор, проигрывая Kafka topics заново для переобработки, что снижает операционную сложность.
Druid или Redis для заранее агрегированных результатов с субсекундной латентностьюBigQuery или Snowflake для гибкого исторического анализаWatermarks в потоковой обработке определяют максимальную задержку перед закрытием окна и финализацией результатов, что позволяет системе обрабатывать поздно поступившие данные без бесконечной блокировки агрегаций.
Новый — ещё не проверен сообществом
Вы