původní texty — rychlá a škálovatelná DBMS pro ukládání a zpracování dat ve formě časových řad (záznam vytváří čas a sadu hodnot odpovídajících tomuto času, například získaných prostřednictvím periodického dotazování stavu senzorů nebo shromažďování metrik). Projekt konkuruje takovým řešením, jako je , , , a . Kód je napsán v jazyce Go a pod licencí Apache 2.0.
Výhody a vlastnosti VictoriaMetrics:
- Je snadná na používání. Představuje jeden spustitelný soubor s minimálním nastavením, které se předávají prostřednictvím příkazového řádku při spuštění. Všechna data jsou uložena v jednom adresáři, který je určen při spuštění pomocí příznaku „-storageDataPath“;
- Podpora dotazovacího jazyka , používaného v systému monitorování . Podporují se poddotazy PromQL a některé , jako je výraz „offset“, šablony uvnitř „WIDTH“, operátory „if“ a „default“, dodatečné funkce a možnost zahrnutí komentářů;
- Možnost použití jako , připojeného k Prometheus a .
- Možnost zpětného vyplnění pro načítání historických dat;
- Podpora různých protokolů přenosu dat, včetně , , a . VictoriaMetrics může sloužit také jako průhledná náhrada za InfluxDB a může pracovat s kompatibilními kolektory InfluxDB, jako je Telegraf;
- Vysoký výkon a nízká spotřeba zdrojů s konkurenčními systémy. V některých testech VictoriaMetrics překonává InfluxDB a TimescaleDB při provádění operací vkládání a výběru dat až 20krát. Při provádění analytických dotazů může být zisk ve srovnání s relačními DBMS PostgreSQL a MySQL od 10 do 1000krát.
- je k dispozici zpracování velmi velkého počtu unikátních časových řad. Při zpracování milionů různých časových řad spotřebovává až 10krát méně RAM než InfluxDB.
- Vysoký stupeň komprese dat v diskovém úložišti. Ve srovnání s TimescaleDB může pojmout až 70krát více záznamů ve stejném objemu úložiště;
- Existence optimalizací pro úložiště s velkými latencemi a nízkým počtem vstupně/výstupních operací za sekundu (například pevné disky a cloudové úložiště AWS, Google Cloud a Microsoft Azure);
- Jednoduchý systém zálohování na bázi ;
- Dostupnost prostředků k ochraně integrity úložiště před poškozením dat, například při náhlém výpadku napájení (úložiště má formu );
- Implementace v jazyce Go, která zajišťuje kompromis mezi výkonem a složitostí kódu ve srovnání s Rust a C++.
- Jsou poskytovány zdrojové kódy , která podporuje horizontální škálování na několik serverů a vykazuje nízké režijní náklady. Jsou k dispozici prostředky pro zajištění vysoké dostupnosti.
Zdroj: opennet.ru
