testi sorgente — un DBMS veloce e scalabile per la memorizzazione e l'elaborazione dei dati sotto forma di serie temporali (una registrazione forma il tempo e un insieme di valori corrispondenti a quel tempo, ad esempio, ottenuti tramite interrogazioni periodiche dello stato dei sensori o raccolta di metriche). Il progetto compete con soluzioni come , , , e . Il codice è scritto in linguaggio Go e sotto licenza Apache 2.0.
I vantaggi e le caratteristiche di VictoriaMetrics:
- È facile da usare. Consiste in un unico file eseguibile con impostazioni minime, che vengono passate tramite la riga di comando all'avvio. Tutti i dati sono memorizzati in un'unica directory, specificata all'avvio tramite il flag "-storageDataPath";
- Supporto per il linguaggio delle query , utilizzato nel sistema di monitoraggio . Sono supportate sottoquery PromQL e alcune , come l'espressione "offset", i modelli all'interno di "WIDTH", gli operatori "if" e "default", funzioni aggiuntive e la possibilità di includere commenti;
- Possibilità di utilizzo come , connesso a Prometheus e .
- Disponibilità di modalità di riempimento inverso per il caricamento di dati storici;
- Supporto per vari protocolli di trasmissione dei dati, inclusi , , e . Inoltre, VictoriaMetrics può essere utilizzato come un sostituto trasparente di InfluxDB e può lavorare con collezionisti compatibili con InfluxDB, come Telegraf;
- Alta prestazione e basso consumo di risorse ai sistemi concorrenti. In alcuni test, VictoriaMetrics supera InfluxDB e TimescaleDB nell'esecuzione di operazioni di inserimento e selezione dati fino a 20 volte. Durante l'esecuzione di query analitiche, il vantaggio rispetto ai DBMS relazionali PostgreSQL e MySQL può variare da 10 a 1000 volte.
- Presenza la gestione di un numero molto elevato di serie temporali uniche. Durante l'elaborazione di milioni di diverse serie temporali, consuma fino a 10 volte meno RAM rispetto a InfluxDB.
- Elevata efficacia di compressione dei dati nello storage su disco. Rispetto a TimescaleDB, può contenere nello stesso volume di storage fino a 70 volte più registrazioni;
- Disponibilità di ottimizzazioni per archivi con elevate latenze e basso numero di operazioni di input/output al secondo (ad esempio, dischi rigidi e archiviazione cloud AWS, Google Cloud e Microsoft Azure);
- Sistema semplice di backup basata su ;
- Disponibilità di strumenti per proteggere l'integrità dello storage da danneggiamenti ai dati, ad esempio durante un'interruzione di corrente imprevista (lo storage ha la forma di );
- Implementazione in linguaggio Go, che offre un compromesso tra prestazioni e complessità del codice rispetto a Rust e C++.
- Vengono forniti i codici sorgente , che supporta la scalabilità orizzontale su più server e dimostra costi operativi ridotti. Sono disponibili strumenti per garantire alta disponibilità.
Fonte: opennet.ru
