Проект: Сбор и консолидация данных с клиентских баз SQLite для аналитики
Описание проекта:
Клиент, владеющий сетью из тысячи ботов, торгующих на биржах криптовалют, нуждался в единой системе для сбора и анализа данных, генерируемых ботами. Для этого мы разработали микросервис, который автоматизирует поиск локальных баз данных SQLite на клиентских устройствах, извлекает из них нужные таблицы и отправляет каждую строку данных на сервер через API. На стороне сервера данные агрегируются в MySQL, что позволяет эффективно проводить аналитику и мониторинг деятельности ботов.
Функциональность решения:
Поиск и отправка данных:
Программа, установленная на клиентских устройствах, выполняет поиск баз данных SQLite и находит нужные таблицы.
Для каждой строки таблицы данные отправляются на сервер через API.
ID успешно отправленных строк записываются в историю отправок, чтобы избежать дублирования данных при повторных отправках.
Обработка данных на сервере:
Микросервис на сервере принимает данные, записывает IP-адрес отправителя и путь к базе данных.
Данные из всех баз объединяются в единую таблицу MySQL. При этом, если запись с таким же ID уже существует, она перезаписывается.
Для оптимизации парсинг данных из комментариев каждой строки выполняется с помощью регулярных выражений и сохраняется в дополнительную таблицу.
Технологии:
Использованы Node.js и известные библиотеки для реализации микросервисной архитектуры.
На сервере и клиентских устройствах Node.js выполняет роль обработчика данных и интеграции с MySQL.
Применены пакеты express, basic-auth, sqlite3, fs-extra, axios, и другие для настройки окружения и выполнения задач.