Наша команда пытается создать систему прогнозного обслуживания, задача которой состоит в том, чтобы посмотреть на набор событий и предсказать, отражают ли эти события набор известных аномалий.
Мы находимся на этапе проектирования итекущий дизайн системы выглядит следующим образом:
- События могут происходить в нескольких источниках системы IoT (таких как облачная платформа, пограничные устройства или любые промежуточные платформы)
- Событиявыталкивается источниками данных в систему очередей сообщений (в настоящее время мы выбрали Apache Kafka).
- Каждый источник данных имеет свою очередь (тема Кафки).
- Из очередей данныепотребляется несколькими механизмами логического вывода (которые на самом деле являются нейронными сетями).
- В зависимости от набора функций механизм вывода будет подписываться на несколько тем Kafka и передавать данные из этих тем для непрерывного вывода вывода.
- Общая архитектура следует принципу единой ответственности, означающему, чтокаждый компонент будет отделен друг от друга и будет работать в отдельном контейнере Docker.
Проблема:
Чтобы классифицировать набор событий как аномалию, события должны происходитьв том же временном окне.например, есть три источника данных, которые помещают свои соответствующие события в темы Кафки, но по какой-то причине данные не синхронизируются.Таким образом, один из механизмов вывода извлекает последние записи из каждой темы kafka, но соответствующие события в извлеченных данных не принадлежат одному и тому же временному окну (скажем, 1 час).Это приведет к неверным прогнозам из-за несинхронизированных данных.
Вопрос
Нам нужно выяснить, как мы можем убедиться, что данные из всех трех источников расположены в порядкетак что когда механизм логического вывода запрашивает записи (скажем, последние 100 записей) из нескольких тем kakfa, соответствующие записи в каждой теме принадлежат одному и тому же временному окну?