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