Фон
Я пытаюсь разработать систему, работающую на Raspberry Pi, которая будет регистрировать данные от нескольких датчиков (в частности, измерения расстояния @ 25 выборок / с и предложений GPS NMEA при 1 выборке / с) с различными скоростями и выполнять некоторый анализ эти данные - так что я имею дело с непрерывным временным рядом. Если определенное событие обнаружено из этого анализа данных, событие должно быть зарегистрировано. В дополнение к этому, камера работает, и должна производить видео, соответствующее событию (~ 4 секунды в длину). В идеале дальнейший анализ должен быть проведен на видео, но я мог бы выйти за пределы аппаратного обеспечения Raspberry Pi, так что это может быть сделано после окончания записи.
На этом этапе я реализовал скрипт Python для регистрации данных от нескольких датчиков с различной скоростью, используя несколько потоков. Думая обо всем потоке данных через конвейер как:
Регистрация данных от датчиков> обнаружение событий из данных датчика> регистрация событий> создание видео> анализ видео> регистрация видео анализ
Я пытаюсь подумать о более широкой архитектуре, но я не в себе, не знаю неизвестных неизвестных и буду признателен за некоторые предложения о том, как вы можете подойти к этому.
Вопросы
Имеет ли смысл делать все это (ведение журнала + анализ данных и т. Д.) В одном сценарии, используя множество потоков / процессов, или лучше разбить задачу на несколько различных сценариев этот интерфейс с базой данных? Я вижу эту опцию как довольно запутанную и трудную для кодирования и отладки. Я предполагаю, что мне также нужно было бы расставить приоритеты для задач, чтобы регистрация данных не происходила за счет последующего анализа.
Имеет ли смысл использовать реляционную базу данных для записи данных в таблицу для каждого датчика и таблицу для событий?
Какие существуют инструменты для проведения такого анализа для конвейера с непрерывными данными в реальном времени? например со встроенными раздвижными окнами. Я убежден, что они существуют, но я не знаю, что является достаточно легким для работы на малиновом пи.