forrákszövegek — gyors és skálázható DBMS az időbeli adatok tárolására és feldolgozására (a rekord az időt és a hozzá kapcsolódó értékeket képezi, például a szenzorok állapotának időszakos lekérdezéséből vagy metrikák gyűjtéséből származó adatokat). A projekt versenyez olyan megoldásokkal, mint , , , és . A kód Go nyelven íródott, és Apache 2.0 licenc alatt.
A VictoriaMetrics előnyei és jellemzői:
- Könnyen használható. Egy önálló végrehajtható fájlt képvisel, minimális beállításokkal, amelyeket a futtatás során parancssorban adhatunk meg. Minden adat egy mappában tárolódik, amelyet a futtatáskor a „-storageDataPath” zászlóval lehet megadni;
- Lekérdezési nyelv támogatása , amelyet a nyomon követő rendszerben használnak. Támogatja a PromQL al-lekérdezéseit és néhány , mint például az „offset” kifejezés, a „WIDTH” minták, az „if” és „default” operátorok, további függvények és a megjegyzések beillesztésének lehetősége;
- Használható , amely csatlakozik a Prometheushoz és .
- Visszatöltési mód, amely lehetővé teszi a történeti adatok betöltését;
- Támogat különböző adatátviteli protokollokat, beleértve , , és . A VictoriaMetrics alkalmazható átlátszó helyettesítéseként az InfluxDB-nek, és együttműködhet az InfluxDB-vel kompatibilis gyűjtőkkel, például a Telegraf-fal;
- Magas teljesítmény és alacsony erőforrás-felhasználás a versenytárs rendszerekkel. Bizonyos tesztekben a VictoriaMetrics akár 20-szor is megelőzi az InfluxDB-t és a TimescaleDB-t az adatok beszúrása és lekérdezése során. Az analitikai lekérdezések végrehajtásakor a relációs DBMS-ekhez, mint például PostgreSQL és MySQL képest nyereség 10-től 1000-szeresig terjedhet.
- Van nagyon nagy számú egyedi időbeli sorok feldolgozására. Millió különböző időbeli sor feldolgozása esetén akár 10-szer kevesebb RAM-ot fogyaszt, mint az InfluxDB.
- Magas fokú adattömörítés a lemezen tárolt adatokban. A TimescaleDB-hez viszonyítva akár 70-szer több bejegyzést képes elhelyezni ugyanazon tárolókapacitás mellett;
- Optimalizálások, amelyek nagy késleltetésű és alacsony bemeneti/kimeneti műveletek másodpercenkénti tárolókra vonatkoznak (például merevlemezek és AWS, Google Cloud és Microsoft Azure felhő tárolók);
- Egyszerű biztonsági mentési rendszer alapján ;
- A védelmi források rendelkezésre állása az adattároló integritásának megőrzésére, például áramkimaradás esetén (a tároló formája );
- Go nyelven valósul meg, ami kompromisszumot teremt a teljesítmény és a kód bonyolultsága között a Rust és C++-hoz képest.
- Forráskódok biztosítva vannak , amely támogatja a horizontális skálázást több szerverre és alacsony rendszerterheléssel működik. Magas rendelkezésre állóság biztosítására is van lehetőség.
Forrás: opennet.ru
