Архитектура обработки потоковых данных содержит два основных типа компонентов.
Поставщики потоков
Поставщики потоков – это программные компоненты в приложениях и системах IoT, которые заняты сбором данных. Они передают записи в обработчик потока, который хранит имена потоков, значения данных и номера последовательностей. Такой обработчик буферизует или временно группирует записи данных по имени потока. Он использует номер последовательности для отслеживания уникальной позиции каждой записи и обрабатывает данные в хронологической последовательности.
Потребители потока
Потребителями потока выступают программные компоненты, которые обрабатывают и анализируют потоки данных, буферизованные в обработчике. Каждый потребитель обладает возможностями аналитики, позволяющими выполнять задачи корреляции, агрегирования, фильтрации, составления выборки или машинного обучения. Каждый поток может обладать несколькими потребителями, а каждый потребитель может обрабатывать сразу несколько потоков. Потребители также отправляют измененные данные обратно в обработчик для создания новых потоков для других потребителей.
Реализация архитектуры
Для реализации архитектуры обработки потоковых данных необходимо использовать слои обработки и хранилища. Уровень хранилища обязан поддерживать очередность записей и строгую непротиворечивость для обеспечения быстрых, экономичных и воспроизводимых операций записи и чтения больших потоков данных. Уровень обработки отвечает за потребление данных, расположенных на уровне хранилища, выполнение вычислений с использованием этих данных и уведомление уровня хранилища о том, какие данные можно удалить за ненадобностью.