{"id":36737,"date":"2019-10-31T22:13:29","date_gmt":"2019-10-31T19:13:29","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov\/"},"modified":"2019-10-31T22:13:29","modified_gmt":"2019-10-31T19:13:29","slug":"kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","title":{"rendered":"Come abbiamo testato diversi database di serie temporali","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Come abbiamo testato diversi database di serie temporali\" src=\"\/wp-content\/uploads\/2019\/08\/14e07eac02df8d1276c46c33276d8a26.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNegli ultimi anni, i database di serie temporali (Time-series databases) sono passati da una curiosit\u00e0 (applicata specificamente nei sistemi di monitoraggio aperti e legata a soluzioni specifiche, o nei progetti di Big Data) a un \"bene di consumo comune\". In Russia, un particolare ringraziamento va a Yandex e ClickHouse. Prima di questo momento, se avevi bisogno di memorizzare una grande quantit\u00e0 di dati di serie temporali, dovevi accontentarti di dover gestire un imponente stack Hadoop e mantenerlo, oppure interagire con protocolli specifici per ogni sistema. <\/p>\n<p>Potrebbe sembrare che nel 2019 un articolo su quale TSDB utilizzare consister\u00e0 in una sola frase: \"usa semplicemente ClickHouse\". Ma... ci sono delle complessit\u00e0. <\/p>\n<p>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, ClickHouse \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u0431\u0430\u0437\u0430 \u0440\u0430\u0441\u0442\u0435\u0442, \u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u043e, \u043d\u043e \u043d\u0435 \u0441\u0442\u0430\u043b\u0438 \u043b\u0438 \u043c\u044b \u0437\u0430\u043b\u043e\u0436\u043d\u0438\u043a\u0430\u043c\u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0441\u0442\u0438 ClickHouse&#8217;\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0442\u043c\u0438\u043b\u0430 \u0434\u0440\u0443\u0433\u0438\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435\/\u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f? <\/p>\n<p>All'inizio dell'anno scorso, ci siamo dedicati alla riprogettazione del nostro sistema di monitoraggio. Durante questo processo, \u00e8 emersa la questione della scelta della base adatta per la memorizzazione dei dati. Qui voglio raccontare la storia di quella scelta.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Definizione del compito<\/h4>\n<p>\nPrima di tutto, \u00e8 necessario un'introduzione. Perch\u00e9 abbiamo bisogno di un sistema di monitoraggio e come era strutturato?<\/p>\n<p>Abbiamo iniziato a offrire servizi di supporto nel 2008 e nel 2010 \u00e8 diventato chiaro che aggregare i dati sui processi all'interno delle infrastrutture dei clienti utilizzando le soluzioni disponibili all'epoca era diventato complicato (parliamo di, per non dire altro, Cacti, Zabbix e il nascente Graphite).<\/p>\n<p>I nostri requisiti principali erano:<\/p>\n<ul>\n<li>gestire (all'epoca decine, e in futuro centinaia) di clienti all'interno di un unico sistema e allo stesso tempo avere un sistema di gestione degli avvisi centralizzato;<\/li>\n<li>flessibilit\u00e0 nella gestione del sistema di avvisi (escalation degli avvisi tra i custodi, gestione del calendario, base di conoscenza);<\/li>\n<li>possibilit\u00e0 di avere un\u2019analisi approfondita dei grafici (Zabbix all'epoca disegnava i grafici come immagini);<\/li>\n<li>archiviazione a lungo termine di grandi volumi di dati (un anno o pi\u00f9) e possibilit\u00e0 di un rapido recupero.<\/li>\n<\/ul>\n<p>\nIn questo articolo ci interessa l'ultimo punto.<\/p>\n<p>Parlando di archiviazione, i requisiti erano i seguenti:<\/p>\n<ul>\n<li>il sistema deve lavorare rapidamente;<\/li>\n<li>\u00e8 preferibile che il sistema abbia un'interfaccia SQL;<\/li>\n<li>il sistema deve essere stabile e avere una base utenti attiva e supporto (ci siamo gi\u00e0 trovati ad affrontare la necessit\u00e0 di mantenere sistemi come MemcacheDB, che non vengono pi\u00f9 sviluppati, o lo storage distribuito MooseFS, il cui tracker di bug era gestito in cinese: non volevamo ripetere questa storia per il nostro progetto);<\/li>\n<li>rispettare il teorema CAP: Consistency (necessario) - i dati devono essere aggiornati, non vogliamo che il sistema di gestione delle notifiche non riceva nuovi dati e continui a inviare allerta per l'assenza di dati su tutti i progetti; Partition Tolerance (necessario) - non vogliamo generare un sistema Split Brain; Availability (non critico, in caso di esistenza di una replica attiva) - possiamo passare al sistema di riserva in caso di emergenza, tramite codice.<\/li>\n<\/ul>\n<p>\nStranamente, in quel momento la soluzione ideale per noi si rivel\u00f2 essere MySQL. La nostra struttura dati era estremamente semplice: id del server, id del contatore, timestamp e valore; un'estrazione veloce dei dati correnti era garantita da una grande dimensione del buffer pool, mentre l'estrazione dei dati storici avveniva tramite SSD.<\/p>\n<p><img decoding=\"async\" alt=\"Come abbiamo testato diversi database di serie temporali\" src=\"\/wp-content\/uploads\/2019\/08\/555bff26c74badf85131c4d9198871af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCos\u00ec siamo riusciti ad estrarre dati freschi di due settimane, con una risoluzione fino al secondo, in 200 ms prima del completo rendering dei dati, e abbiamo vissuto in questo sistema per un lungo periodo.<\/p>\n<p>Nel frattempo, il tempo passava e la quantit\u00e0 di dati aumentava. Entro il 2016, i volumi di dati raggiungevano decine di terabyte, il che rappresentava una spesa significativa considerando gli SSD affittati.<\/p>\n<p>A questo punto, i database colonne avevano iniziato a diffondersi, e cominciammo a considerarli attivamente: nei database colonne i dati sono memorizzati, come si pu\u00f2 intuire, in colonne, e se guardiamo ai nostri dati, \u00e8 facile notare un grande numero di duplicati che potrebbero essere compressi, nel caso si utilizzasse un database colonne.<\/p>\n<p><img decoding=\"async\" alt=\"Come abbiamo testato diversi database di serie temporali\" src=\"\/wp-content\/uploads\/2019\/08\/2e1a6010fcb09de8cd28ec826752d160.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTuttavia, il sistema chiave per il funzionamento dell'azienda continuava a funzionare stabilmente, e non volevamo sperimentare il passaggio a qualcos'altro.<\/p>\n<p>Nel 2017, durante la conferenza Percona Live a San Jos\u00e9, gli sviluppatori di Clickhouse si sono fatti conoscere per la prima volta. A prima vista, il sistema sembrava pronto per la produzione (d'altronde, Yandex.Metrica \u00e8 un vero sistema di produzione), il supporto era rapido e semplice, e, soprattutto, la gestione era agevole. Dal 2018 abbiamo avviato il processo di migrazione. Ma nel frattempo erano comparsi molti sistemi TSDB 'maturi' e consolidati, e abbiamo deciso di dedicare un tempo significativo per confrontare le alternative, per assicurarci che non ci fossero soluzioni alternative a Clickhouse che soddisfacessero i nostri requisiti.<\/p>\n<p>In aggiunta ai requisiti gi\u00e0 indicati per il database, sono emersi requisiti freschi:<\/p>\n<ul>\n<li>il nuovo sistema deve garantire almeno le stesse prestazioni di MySQL, con la stessa quantit\u00e0 di hardware;<\/li>\n<li>il database del nuovo sistema deve occupare significativamente meno spazio;<\/li>\n<li>il DBMS deve continuare a essere semplice da gestire;<\/li>\n<li>si voleva modificare il meno possibile l'applicazione durante il cambio del DBMS.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Quali sistemi abbiamo iniziato a considerare<\/h4>\n<p>\n<b><u>Apache Hive\/Apache Impala<\/u><\/b><br \/>\nUn vecchio e collaudato stack Hadoop. In sostanza, \u00e8 un'interfaccia SQL costruita sopra lo storage dei dati nei propri formati su HDFS. <\/p>\n<p>Vantaggi.<\/p>\n<ul>\n<li>Con un funzionamento stabile, \u00e8 molto facile scalare i dati.<\/li>\n<li>Esistono soluzioni column-oriented per l'archiviazione dei dati (occupano meno spazio).<\/li>\n<li>Esecuzione molto rapida di task parallelizzati, se si dispone delle risorse.<\/li>\n<\/ul>\n<p>\nContro.<\/p>\n<ul>\n<li>Questo \u00e8 Hadoop, ed \u00e8 complesso da gestire. Se non siamo pronti a prendere una soluzione pronta nel cloud (e non lo siamo per i costi), l'intero stack dovr\u00e0 essere assemblato e mantenuto dai sistemisti, e questo \u00e8 qualcosa che si vorrebbe evitare.<\/li>\n<li>I dati vengono aggregati <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/blog\/2014\/04\/21\/using-apache-hadoop-and-impala-together-with-mysql-for-data-analysis\/\">veramente velocemente<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nTuttavia:<\/p>\n<p><img decoding=\"async\" alt=\"Come abbiamo testato diversi database di serie temporali\" src=\"\/wp-content\/uploads\/2019\/08\/6baa1b6024def8c1c7518ef386cfc8d3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa velocit\u00e0 si ottiene aumentando il numero di server di calcolo. In altre parole, se siamo una grande azienda, ci occupiamo di analisi e per il nostro business \u00e8 cruciale aggregare le informazioni nel minor tempo possibile (anche a costo di utilizzare un gran numero di risorse di calcolo), questo potrebbe essere la nostra scelta. Ma non eravamo pronti a moltiplicare il parco hardware per aumentare la velocit\u00e0 di esecuzione delle operazioni.<\/p>\n<p><b><u>Druid\/Pinot<\/u><\/b><\/p>\n<p>Gi\u00e0 molto di pi\u00f9 su TSDB specificamente, ma ancora una volta \u2014 stack Hadoop.<\/p>\n<p>S\u00ec <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@leventov\/comparison-of-the-open-source-olap-systems-for-big-data-clickhouse-druid-and-pinot-8e042a5ed1c7\">ottimo articolo che confronta i pro e i contro di Druid e Pinot rispetto a ClickHouse <\/a><\/noindex>. <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u043b\u043e\u0432\u0430\u0445: Druid\/Pinot \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043b\u0443\u0447\u0448\u0435 Clickhouse&#8217;\u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430:<\/p>\n<ul>\n<li>Hai un carattere eterogeneo dei dati (nel nostro caso registriamo solo le serie temporali delle metriche del server e, di fatto, si tratta di una sola tabella. Ma potrebbero esserci altri casi: serie temporali delle apparecchiature, serie temporali economiche, ecc. \u2014 ciascuna con la propria struttura, che devono essere aggregate e trattate).<\/li>\n<li>In questo caso, ci sono davvero molti dati.<\/li>\n<li>Le tabelle e i dati delle serie temporali appaiono e scompaiono (cio\u00e8 un certo insieme di dati arriva, viene analizzato e poi eliminato).<\/li>\n<li>Non esiste un chiaro criterio secondo il quale i dati possono essere partizionati.<\/li>\n<\/ul>\n<p>\nNei casi opposti, ClickHouse si dimostra superiore, e questo \u00e8 il nostro caso.<\/p>\n<p><b><u>ClickHouse<\/u><\/b><\/p>\n<ul>\n<li>Simile a SQL.<\/li>\n<li>Facile da gestire.<\/li>\n<li>La gente dice che funziona.<\/li>\n<\/ul>\n<p>\nRientra nella short list per i test.<\/p>\n<p><b><u>InfluxDB<\/u><\/b><\/p>\n<p>\u0417\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u0430\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 ClickHouse&#8217;\u0443. \u0418\u0437 \u043c\u0438\u043d\u0443\u0441\u043e\u0432: High Availability \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u043d\u043e \u043d\u0430\u0434\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c.<\/p>\n<p>Rientra nella short list per i test.<\/p>\n<p><b><u>Cassandra<\/u><\/b> <\/p>\n<p>Da un lato, sappiamo che viene utilizzato per memorizzare serie temporali metriche in sistemi di monitoraggio come, ad esempio, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/blog\/making-cassandra-perform-as-a-tsdb\/\">SignalFX<\/a><\/noindex> o OkMeter. Tuttavia, ci sono specificit\u00e0.<\/p>\n<p>Cassandra non \u00e8 un database a colonne nel senso tradizionale del termine. Sembra pi\u00f9 un database a righe, ma in ogni riga pu\u00f2 esserci un numero variabile di colonne, il che consente di organizzare facilmente una rappresentazione a colonne. In questo senso, \u00e8 chiaro che con un limite di 2 miliardi di colonne si possono memorizzare alcuni dati specificamente in colonne (come le serie temporali). Ad esempio, in MySQL c'\u00e8 un limite di 4096 colonne e si rischia facilmente di imbattersi in un errore con codice 1117 se si tenta di fare la stessa cosa.<\/p>\n<p>Il motore di Cassandra \u00e8 progettato per la gestione di grandi volumi di dati in un sistema distribuito senza master, e nella suddetta teoria CAP Cassandra \u00e8 pi\u00f9 orientata verso l'AP, cio\u00e8 verso la disponibilit\u00e0 dei dati e la resilienza alla partizione. Pertanto, questo strumento pu\u00f2 essere molto utile se \u00e8 necessario scrivere frequentemente nel database e leggere solo raramente. In questo caso, \u00e8 logico utilizzare Cassandra come archivio \u201cfreddo\u201d. Si tratta di uno spazio di archiviazione affidabile e a lungo termine per grandi quantit\u00e0 di dati storici, che vengono richiesti raramente, ma che possono essere recuperati se necessario. Tuttavia, per completezza, la testeremo. Ma, come ho gi\u00e0 detto, non c'\u00e8 voglia di riscrivere attivamente il codice per l'opzione DB scelta, quindi la testeremo in modo limitato \u2014 senza adattare la struttura del database alle specifiche di Cassandra.<\/p>\n<p><b><u>Prometheus<\/u><\/b><\/p>\n<p>E, per curiosit\u00e0, abbiamo deciso di testare le prestazioni del data store Prometheus \u2014 semplicemente per capire se \u00e8 pi\u00f9 veloce delle soluzioni attuali o pi\u00f9 lento, e quanto.<\/p>\n<h4>Metodologia e risultati del test<\/h4>\n<p>\nAbbiamo testato 5 database nelle seguenti 6 configurazioni: ClickHouse (1 nodo), ClickHouse (tabella distribuita su 3 nodi), InfluxDB, Mysql 8, Cassandra (3 nodi) e Prometheus. Il piano di test \u00e8 il seguente:<\/p>\n<ol>\n<li>carichiamo i dati storici di una settimana (840 milioni di valori al giorno; 208 mila metriche);<\/li>\n<li>generiamo un carico di scrittura (abbiamo considerato 6 modalit\u00e0 di carico, vedi sotto);<\/li>\n<li>parallelamente alla scrittura, estraiamo campioni periodicamente, emulando le richieste di un utente che lavora con i grafici. Per non rendere troppo complesso, abbiamo scelto dati su 10 metriche (esattamente quante ce ne sono nel grafico CPU) per una settimana.<\/li>\n<\/ol>\n<p>\nCarichiamo, emulando il comportamento dell'agente del nostro monitoraggio, che invia valori a ciascuna metrica ogni 15 secondi. In questo caso vogliamo variare:<\/p>\n<ul>\n<li>il numero totale di metriche in cui vengono scritti i dati;<\/li>\n<li>l'intervallo di invio dei valori a una metrica;<\/li>\n<li>la dimensione del batch.<\/li>\n<\/ul>\n<p>\nRiguardo alla dimensione del batch. Poich\u00e9 quasi tutti i nostri database sperimentali non sono raccomandati per carichi con singoli inserti, avremo bisogno di un relay che raccoglie le metriche in arrivo e le raggruppa, scrivendole nel database tramite un inserimento in batch.<\/p>\n<p>Inoltre, per comprendere meglio come interpretare successivamente i dati ottenuti, immaginiamo di non inviare semplicemente un insieme di metriche, ma metriche organizzate in server \u2014 con 125 metriche per server. Qui il server \u00e8 un'entit\u00e0 virtuale \u2014 giusto per capire che, ad esempio, 10.000 metriche corrispondono a circa 80 server.<\/p>\n<p>Ecco quindi i nostri 6 modi di carico del database per la scrittura:<\/p>\n<p><img decoding=\"async\" alt=\"Come abbiamo testato diversi database di serie temporali\" src=\"\/wp-content\/uploads\/2019\/08\/3ba70050dc7e711cb8f3d14ac1a6707b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCi sono due aspetti da considerare. In primo luogo, per Cassandra, queste dimensioni dei batch si sono rivelate troppo grandi, l\u00ec abbiamo utilizzato valori di 50 o 100. In secondo luogo, poich\u00e9 Prometheus funziona esclusivamente in modalit\u00e0 pull, ovvero estrae autonomamente i dati dalle fonti metriche (e anche il pushgateway, nonostante il nome, non cambia la situazione), i carichi corrispondenti sono stati realizzati tramite una combinazione di static configs.<\/p>\n<p>I risultati dei test sono i seguenti:<\/p>\n<p><img decoding=\"async\" alt=\"Come abbiamo testato diversi database di serie temporali\" src=\"\/wp-content\/uploads\/2019\/08\/9df12bee66ad8c5df720ba08472efead.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Come abbiamo testato diversi database di serie temporali\" src=\"\/wp-content\/uploads\/2019\/08\/891090bf0461c7e3c48e38eb36f9e217.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Come abbiamo testato diversi database di serie temporali\" src=\"\/wp-content\/uploads\/2019\/08\/137f944b3578ab5bad4ebc5fa6f96b79.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Vale la pena notare<\/b>: \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u0437 Prometheus&#8217;a, \u0443\u0436\u0430\u0441\u0430\u044e\u0449\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u0437 Cassandra, \u043d\u0435\u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u0437 InfluxDB; \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432\u0441\u0435\u0445 \u043f\u043e\u0431\u0435\u0434\u0438\u043b ClickHouse, \u0430 Prometheus \u0432 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0435 \u043d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u043d\u0441\u0435\u0440\u0442\u044b \u0441\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0431\u044f \u0438 \u043c\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u0440\u044f\u0435\u043c.<\/p>\n<p><u><b>In conclusione<\/b><\/u>: \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0445 \u0441\u0435\u0431\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438 ClickHouse \u0438 InfluxDB, \u043d\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438\u0437 Influx\u2019\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Enterprise-\u0432\u0435\u0440\u0441\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u043e\u0438\u0442 \u0434\u0435\u043d\u0435\u0433, \u0430 ClickHouse \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u043d \u0432 \u0420\u043e\u0441\u0441\u0438\u0438. \u041b\u043e\u0433\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u0432 \u0421\u0428\u0410 \u0432\u044b\u0431\u043e\u0440, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 inInfluxDB, \u0430 \u0443 \u043d\u0430\u0441 \u2014 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 ClickHouse&#8217;\u0430.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/462111\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 (Time-series databases) \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0438\u0437 \u0434\u0438\u043a\u043e\u0432\u0438\u043d\u043d\u043e\u0439 \u0448\u0442\u0443\u043a\u0438 (\u0443\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u043b\u0438\u0431\u043e \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 (\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c), \u043b\u0438\u0431\u043e \u0432 Big Data \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445) \u0432 \u00ab\u0442\u043e\u0432\u0430\u0440 \u043d\u0430\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f\u00bb. \u041d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0420\u0424 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u044d\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u042f\u043d\u0434\u0435\u043a\u0441\u0443 \u0438 ClickHouse\u2019\u0443. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27518,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 (Time-series databases) \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0438\u0437 \u0434\u0438\u043a\u043e\u0432\u0438\u043d\u043d\u043e\u0439 \u0448\u0442\u0443\u043a\u0438 (\u0443\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u043b\u0438\u0431\u043e \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 (\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c), \u043b\u0438\u0431\u043e \u0432 Big Data \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445) \u0432 \u00ab\u0442\u043e\u0432\u0430\u0440 \u043d\u0430\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f\u00bb. \u041d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0420\u0424 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u044d\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u042f\u043d\u0434\u0435\u043a\u0441\u0443 \u0438 ClickHouse\u2019\u0443. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 (Time-series databases) \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0438\u0437 \u0434\u0438\u043a\u043e\u0432\u0438\u043d\u043d\u043e\u0439 \u0448\u0442\u0443\u043a\u0438 (\u0443\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u043b\u0438\u0431\u043e \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 (\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c), \u043b\u0438\u0431\u043e \u0432 Big Data \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445) \u0432 \u00ab\u0442\u043e\u0432\u0430\u0440 \u043d\u0430\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f\u00bb. \u041d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0420\u0424 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u044d\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u042f\u043d\u0434\u0435\u043a\u0441\u0443 \u0438 ClickHouse\u2019\u0443. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Come abbiamo testato diversi database di serie temporali | ProHoster","description":"Negli ultimi anni, i database di serie temporali sono passati dall'essere una curiosit\u00e0 (applicati in modo specialistico sia in sistemi di monitoraggio open source sia in progetti di Big Data) a un 'prodotto di uso comune'. In Russia, un ringraziamento particolare va a Yandex e ClickHouse per questo. Prima di questo momento, se avevi bisogno di conservare","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 | ProHoster","og:description":"\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 (Time-series databases) \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0438\u0437 \u0434\u0438\u043a\u043e\u0432\u0438\u043d\u043d\u043e\u0439 \u0448\u0442\u0443\u043a\u0438 (\u0443\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u043b\u0438\u0431\u043e \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 (\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c), \u043b\u0438\u0431\u043e \u0432 Big Data \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445) \u0432 \u00ab\u0442\u043e\u0432\u0430\u0440 \u043d\u0430\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f\u00bb. \u041d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0420\u0424 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u044d\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u042f\u043d\u0434\u0435\u043a\u0441\u0443 \u0438 ClickHouse\u2019\u0443. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:29+00:00","article:modified_time":"2019-10-31T19:13:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36737","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:38:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:39:24","updated":"2026-01-22 04:38:20"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/36737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=36737"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/36737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/27518"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=36737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=36737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=36737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}