ProHoster > Блог > Новини інтернету > Відкрито код VictoriaMetrics, СУБД для тимчасових рядів, сумісної з Prometheus
Відкрито код VictoriaMetrics, СУБД для тимчасових рядів, сумісної з Prometheus
Відкриті вихідні тексти ВікторіяМетрикс — швидкої та масштабованої СУБД для зберігання та обробки даних у формі тимчасового ряду (запис утворює час та набір відповідних цьому часу значень, наприклад, отриманих через періодичне опитування стану датчиків або збирання метрик). Проект конкурує з такими рішеннями, як InfluxDB, Часовий шкалаDB, Танос, Кора и Uber M3. Код написаний мовою Go та поширюється під ліцензією Apache 2.0
Переваги та особливості VictoriaMetrics:
Проста в експлуатації. Представляє один виконуваний файл з мінімальними налаштуваннями, що передаються через командний рядок при запуску. Всі дані зберігаються в одному каталозі, заданому під час запуску за допомогою прапора "-storageDataPath";
Підтримка мови запитів PromQL, що використовується в системі моніторингу Прометей. Підтримуються підзапити PromQL та деякі розширені можливості, такі як вираз "offset", шаблони всередині "WIDTH", оператори "if" і "default", додаткові функції та можливість включення коментарів;
наявність режиму зворотного заповнення для завантаження історичних даних;
Підтримка різних протоколів передачі даних, включаючи Prometheus API, Приплив, графітовий и OpenTSDB. У тому числі VictoriaMetrics може застосовуватися як прозора заміна InfluxDB і може працювати з сумісними з InfluxDB колекторами, такими як Telegraf;
Висока продуктивність та низьке споживання ресурсів порівняно з конкуруючими системами. У деяких тестах VictoriaMetrics випереджає InfluxDB і TimescaleDB під час операцій вставки та вибірки даних до 20 разів. За виконання аналітичних запитів виграш проти реляційними СУБД PostgreSQL і MySQL може становити від 10 до 1000 раз.
є можливість обробки дуже великої кількості унікальних часових рядів. Під час обробки мільйонів різних часових рядів споживає до 10 разів менше ОЗУ, ніж InfluxDB.
Високий ступінь стиснення даних у дисковому сховищі. У порівнянні з TimescaleDB може вмістити в тому ж обсязі сховища до 70 разів більше записів;
Наявність оптимізацій для сховищ з великими затримками та низьким числом операцій вводу/виводу в секунду (наприклад, жорсткі диски та сховище хмари AWS, Google Cloud і Microsoft Azure);
Проста система резервного копіювання на основі снапшотів;
Наявність засобів захисту цілісності сховища від пошкоджень даних, наприклад, при екстреному відключенні живлення (сховище має форму журнально-структурованого дерева зі злиттям);
Реалізація мовою Go, що забезпечує компроміс між продуктивністю та складністю коду порівняно з Rust та C++.
Надаються вихідні коди кластерної версій, яка підтримує горизонтальне масштабування на кілька серверів та демонструє низькі накладні витрати. Є засоби забезпечення високої доступності.