Настройка архитектуры для анализа потоков данных временного потока из нескольких источников.
Какова была бы наилучшая практика с точки зрения AWS для следующего:
- Многие медицинские устройства IOT собирают данные со скоростью около 256 Кбит / с.
- Данные представляют собой данные временного ряда (матрица [Каналы X выборок], могут быть миллионы выборок и десятки каналов)
- Данные сохраняются в файлы в S3, и каждый сеанс записывается в базу данных с некоторыми метаданными. Пока что мы используем для этого RDS.
- Каждый набор данных занимает около 5 ГБ.
- У нас есть доступ к наборам данных, и мы хотели бы запустить некоторый процесс анализа:
- Доступ к файлу данных
- Шаг анализа:
- Выполнить код (управляемая версия), который принимает файл данных и выдает результат (другой файл или JSON).
- Зарегистрируйте шаг анализа в какой-либо базе данных (какой?) и зарегистрируйте результат (если файл создан, зарегистрируйте его местоположение)
- Аналогичным образом выполните еще N шагов анализа. Шаги анализа могут зависеть друг от друга, но могут быть и параллельными.
- Результат N-го шага является конечным результатом потока анализа.
Идея состоит в том, чтобы предоставить простой способ запускать код с данными в AWS без фактической загрузки файлов и вести журнал того, какой анализ был выполнен с данными.
Есть идеи, какие сервисы и базы данных использовать? Как передать данные? Каким будет простой в использовании интерфейс для специалиста по данным, который работает, например, с Python?
У меня есть следующая идея:
- Шаги анализа представляют собой репозитории управляемого кода в CodeCommit (могут быть контейнерами).
- Специалисты по данным определяют потоки (в формате JSON)
- Когда специалист по данным отдает приказ, его поток выполняется.
- Поток регистрируется как запись в базе данных.
- Менеджер потоков распределяет потоки между агентами исполнения.
- Агент — это механизм, который получает поток, извлекает данные и контейнеры и выполняет поток.
- Каждый агент регистрирует каждый шаг потока в базе данных.
Примеры этапов анализа:
- Фильтрация
- Маркировка артефактов в данных (метки времени)
- Расчет статистических параметров