Дослідження спеціалізованих баз даних часових рядів
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
UKR: Магістерська кваліфікаційна робота виконана на 139 сторінках, містить 5 рисунків, 23 таблиці, 87 використаних джерел та 5 додатків. Кваліфікаційна робота присвячена дослідженню спеціалізованих баз даних часових рядів (Time Series Databases, TSDB), які використовуються для зберігання, обробки та аналізу даних, організованих за часовими мітками. Метою роботи є розробка науково обґрунтованої методики порівняльного аналізу продуктивності баз даних часових рядів та формування практичних рекомендацій щодо вибору оптимальної TSDB залежно від сценарію використання. В роботі проаналізовано архітектурні підходи до реалізації TSDB: колоночне зберігання, LSM-дерево, розширення реляційних СУБД та спеціалізовані формати зберігання. Виконано детальний огляд чотирьох провідних систем: InfluxDB, TimescaleDB, QuestDB та VictoriaMetrics. Спроєктовано та реалізовано модульну систему тестування продуктивності мовою Python з використанням Docker-контейнеризації для забезпечення ізольованого та відтворюваного тестового середовища. Система включає уніфіковані адаптери для взаємодії з різними базами даних, генератор тестових даних та веб-інтерфейс візуалізації результатів. Проведено експериментальне дослідження продуктивності чотирьох баз даних часових рядів на наборі з 10 мільйонів точок даних. Встановлено, що QuestDB демонструє найвищу швидкість запису (520 000 точок/с), що в 3,7 рази перевищує показники TimescaleDB, та найкращі результати читання із середнім часом виконання запитів 52 мс. VictoriaMetrics забезпечує найефективніше стиснення даних (коефіцієнт 16,7) та найнижче споживання оперативної пам'яті. Сформовано матрицю вибору TSDB залежно від сценарію використання: QuestDB рекомендовано для високошвидкісного IoT та телеметрії; VictoriaMetrics — для Prometheus-моніторингу та довгострокового зберігання метрик; TimescaleDB — для SQL-аналітики та інтеграції з існуючими системами; InfluxDB — як універсальне рішення для DevOps з розвиненою екосистемою. Практична цінність роботи полягає у створенні відтворюваного інструментарію для об'єктивного порівняння продуктивності баз даних часових рядів та формуванні науково обґрунтованих рекомендацій для вибору оптимальної TSDB залежно від конкретних вимог проєкту.
ENG: The master's thesis is completed on 139 pages, contains 5 figures, 23 tables, 87 sources, and 5 appendices. The thesis is dedicated to the research of specialized time series databases (TSDB), which are used for storing, processing, and analyzing data organized by timestamps. The aim of the work is to develop a scientifically substantiated methodology for comparative performance analysis of time series databases and to formulate practical recommendations for selecting the optimal TSDB depending on the use case scenario. The work analyzes architectural approaches to TSDB implementation: columnar storage, LSM-tree, relational DBMS extensions, and specialized storage formats. A detailed review of four leading systems was performed: InfluxDB, TimescaleDB, QuestDB, and VictoriaMetrics. A modular performance testing system was designed and implemented in Python using Docker containerization to ensure an isolated and reproducible test environment. The system includes unified adapters for interacting with different databases, a test data generator, and a web interface for result visualization. An experimental study of the performance of four time series databases was conducted on a dataset of 10 million data points. It was established that QuestDB demonstrates the highest write speed (520,000 points/s), which is 3.7 times higher than TimescaleDB, and the best read results with an average query execution time of 52 ms. VictoriaMetrics provides the most efficient data compression (ratio of 16.7) and the lowest RAM consumption. A TSDB selection matrix was formed depending on the use case scenario: QuestDB is recommended for high-speed IoT and telemetry; VictoriaMetrics — for Prometheus monitoring and long-term metric storage; TimescaleDB — for SQL analytics and integration with existing systems; InfluxDB — as a universal solution for DevOps with a developed ecosystem. The practical value of the work lies in creating reproducible tools for objective comparison of time series database performance and in formulating scientifically substantiated recommendations for selecting the optimal TSDB depending on specific project requirements.