{"id":54918,"date":"2020-01-07T00:00:00","date_gmt":"2020-01-06T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb"},"modified":"2020-02-18T14:02:58","modified_gmt":"2020-02-18T11:02:58","slug":"ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb","title":{"rendered":"L'uso di Clickhouse come alternativa a ELK, Big Query e TimescaleDB","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/\">Clickhouse<\/a><\/noindex> \u2014 \u00e8 un sistema di gestione di database colonnare per l'elaborazione online di query analitiche (OLAP) open source, creato da Yandex. \u00c8 utilizzato da Yandex, CloudFlare, VK.com, Badoo e altri servizi in tutto il mondo per archiviare veramente grandi volumi di dati (inserimento di migliaia di righe al secondo o petabyte di dati archiviati su disco).<\/p>\n<p>In un normale DBMS \"a righe\", esempi dei quali sono MySQL, Postgres, MS SQL Server, i dati sono memorizzati in questo ordine: <\/p>\n<p><img decoding=\"async\" alt=\"L&#039;uso di Clickhouse come alternativa a ELK, Big Query e TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/398f260de0152baf3cc11d884fa0d52d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn questo caso, i valori relativi a una riga sono fisicamente memorizzati vicini. Nei DBMS colonnari, i valori di diverse colonne sono memorizzati separatamente, e i dati di una colonna sono insieme:<\/p>\n<p><img decoding=\"async\" alt=\"L&#039;uso di Clickhouse come alternativa a ELK, Big Query e TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/938a2ee3d588ac866ec92bb3ea09c253.png\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Esempi di DBMS colonnari includono Vertica, Paraccel (Actian Matrix, Amazon Redshift), Sybase IQ, Exasol, Infobright, InfiniDB, MonetDB (VectorWise, Actian Vector), LucidDB, SAP HANA, Google Dremel, Google PowerDrill, Druid, kdb+.<\/p>\n<p>Azienda \u2013 forwarder di posta <noindex><a rel=\"nofollow\" href=\"https:\/\/qwintry.com\/\">Qwintry<\/a><\/noindex> ha iniziato a utilizzare Clickhouse nel 2018 per la generazione di report ed \u00e8 rimasta molto impressionata dalla sua semplicit\u00e0, scalabilit\u00e0, supporto per SQL e velocit\u00e0. La rapidit\u00e0 di questa DBMS sembrava magica.<\/p>\n<h3>Semplicit\u00e0<\/h3>\n<p>\nClickhouse si installa su Ubuntu con un unico comando. Se conosci SQL, puoi iniziare subito a utilizzare Clickhouse per le tue esigenze. Tuttavia, ci\u00f2 non significa che puoi eseguire \"show create table\" in MySQL e fare un copia e incolla di SQL in Clickhouse. <\/p>\n<p>Rispetto a MySQL, in questo DBMS ci sono differenze importanti nei tipi di dati nelle definizioni degli schemi delle tabelle, quindi per lavorare comodamente ti servir\u00e0 comunque del tempo per modificare le definizioni degli schemi delle tabelle e studiare i motori delle tabelle.<\/p>\n<p>Clickhouse funziona bene senza alcun software aggiuntivo, ma se desideri utilizzare la replica, dovrai installare ZooKeeper. L'analisi delle prestazioni delle query mostra risultati eccellenti: le tabelle di sistema contengono tutte le informazioni, e tutti i dati possono essere ottenuti tramite il vecchio e noioso SQL.<\/p>\n<h3>Prestazioni<\/h3>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/benchmark.html#%5B%2522100000000%2522,%5B%2522ClickHouse%2522,%2522Vertica%2522,%2522MySQL%2522%5D,%5B%25220%2522,%25221%2522%5D%5D\">Benchmark<\/a><\/noindex> del confronto tra Clickhouse e Vertica e MySQL su un server con la seguente configurazione: due socket Intel\u00ae Xeon\u00ae CPU E5-2650 v2 @ 2.60GHz; 128 GiB RAM; md RAID-5 su 8 HDD SATA da 6TB, ext4.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.altinity.com\/blog\/2017\/6\/20\/clickhouse-vs-redshift\">Benchmark<\/a><\/noindex> del confronto tra Clickhouse e il data warehouse cloud Amazon RedShift.<\/li>\n<li>Estratti dal blog <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/how-cloudflare-analyzes-1m-dns-queries-per-second\/\">Cloudflare sulle prestazioni di Clickhouse<\/a><\/noindex>:<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"L&#039;uso di Clickhouse come alternativa a ELK, Big Query e TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/b6ef9fbad8e8c864a227bcffd97ec0fe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl database ClickHouse ha un design molto semplice: tutti i nodi nel cluster hanno la stessa funzionalit\u00e0 e utilizzano solo ZooKeeper per la coordinazione. Abbiamo costruito un piccolo cluster composto da diversi nodi e abbiamo eseguito dei test, durante i quali abbiamo scoperto che il sistema ha prestazioni piuttosto impressionanti, che corrispondono ai vantaggi dichiarati nei benchmark dei database analitici. Abbiamo deciso di esaminare pi\u00f9 nel dettaglio il concetto alla base di ClickHouse. Il primo ostacolo alla ricerca \u00e8 stata la mancanza di strumenti e la scarsit\u00e0 della comunit\u00e0 ClickHouse, quindi ci siamo immersi nel design di questo DBMS per capire come funziona.<\/p>\n<p>ClickHouse non supporta la ricezione di dati direttamente da Kafka, poich\u00e9 \u00e8 solo un database, quindi abbiamo scritto un nostro servizio di adattatori in linguaggio Go. Questo leggeva i messaggi codificati Cap\u2019n Proto da Kafka, li convertiva in TSV e li inseriva in ClickHouse in pacchetti tramite l'interfaccia HTTP. Successivamente, abbiamo riscritto questo servizio per utilizzare la libreria Go insieme al nostro interfaccia ClickHouse per migliorare le prestazioni. Durante la valutazione delle prestazioni della ricezione dei pacchetti, abbiamo scoperto una cosa importante: le prestazioni di ClickHouse dipendono fortemente dalla dimensione del pacchetto, cio\u00e8 dal numero di righe inserite contemporaneamente. Per capire perch\u00e9 ci\u00f2 accade, abbiamo studiato come ClickHouse memorizza i dati.<\/p>\n<p>Il motore principale, o meglio, la famiglia di motori per tabelle utilizzata da ClickHouse per l'archiviazione dei dati, \u00e8 MergeTree. Questo motore \u00e8 concettualmente simile all'algoritmo LSM utilizzato in Google BigTable o Apache Cassandra, ma evita la creazione di una tabella intermedia in memoria e scrive i dati direttamente su disco. Questo gli conferisce un'ottima larghezza di banda in scrittura, poich\u00e9 ogni pacchetto inserito viene ordinato solo in base alla 'chiave primaria' primary key, compresso e scritto su disco per formare un segmento. <\/p>\n<p>L'assenza di una tabella di memoria o di qualsiasi concetto di \"freschezza\" dei dati significa anche che possono essere solo aggiunti, la modifica o la rimozione non sono supportate dal sistema. Oggi l'unico modo per eliminare i dati \u00e8 rimuoverli mensilmente, poich\u00e9 i segmenti non attraversano mai il confine del mese. Il team di ClickHouse sta lavorando attivamente per rendere questa funzione configurabile. D'altra parte, ci\u00f2 rende la registrazione e la fusione dei segmenti prive di conflitti, quindi la larghezza di banda in entrata scala linearmente con il numero di inserimenti paralleli fino a quando non si verifica un saturamento di I\/O o di CPU. <br \/>\nTuttavia, questa circostanza significa anche che il sistema non \u00e8 adatto per piccoli pacchetti, quindi si utilizzano servizi Kafka e inseritori per il buffering. Successivamente, ClickHouse continua a eseguire costantemente la fusione dei segmenti in background, in modo che molte piccole parti delle informazioni vengano unite e scritte pi\u00f9 volte, aumentando cos\u00ec l'intensit\u00e0 della scrittura. Troppe parti non correlate causeranno un throttling aggressivo delle inserzioni fino a quando la fusione \u00e8 in corso. Abbiamo scoperto che il miglior compromesso tra l'accettazione dei dati in tempo reale e le prestazioni di ricezione \u00e8 l'accettazione in tabella di un numero limitato di inserimenti al secondo.<\/p>\n<p>La chiave per le prestazioni di lettura delle tabelle \u00e8 l'indicizzazione e la posizione dei dati su disco. Indipendentemente da quanto sia veloce l'elaborazione, quando il motore deve scansionare terabyte di dati dal disco e utilizzare solo una parte di essi, ci vorr\u00e0 del tempo. ClickHouse \u00e8 un archivio a colonne, quindi ogni segmento contiene un file per ciascuna colonna con valori ordinati per ogni riga. In questo modo, intere colonne non presenti nella query possono essere tralasciate all'inizio, e poi \u00e8 possibile elaborare diverse celle in parallelo con l'esecuzione vettorializzata. Per evitare la scansione completa, ogni segmento ha un piccolo file indice. <\/p>\n<p>Considerando che tutte le colonne sono ordinate per \"chiave primaria\", il file indice contiene solo i segnaposto (righe catturate) di ogni N-esima riga, consentendo di memorizzarli in memoria anche per tabelle di dimensioni molto grandi. Ad esempio, si possono impostare le opzioni predefinite per \"contrassegnare ogni 8192\u00aa riga\", quindi la \"scarsa\" indicizzazione di una tabella con 1 trilione di righe, che pu\u00f2 facilmente essere memorizzata in memoria, occuper\u00e0 solo 122.070 caratteri. <\/p>\n<h3>Sviluppo del sistema<\/h3>\n<p>\nLo sviluppo e il miglioramento di Clickhouse possono essere seguiti su <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/yandex\/ClickHouse\/pulse\">Github repo<\/a><\/noindex> e si pu\u00f2 verificare che il processo di \"crescita\" avvenga a un ritmo impressionante. <\/p>\n<p><img decoding=\"async\" alt=\"L&#039;uso di Clickhouse come alternativa a ELK, Big Query e TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/19211da28e42178d26dff7623689df71.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Popolarit\u00e0<\/h3>\n<p>\nSembra che la popolarit\u00e0 di Clickhouse stia crescendo esponenzialmente, soprattutto nella comunit\u00e0 di lingua russa. La conferenza High load 2018 dell'anno scorso (Mosca, 8-9 novembre 2018) ha dimostrato che mostri come vk.com e Badoo utilizzano Clickhouse, con cui inseriscono dati (ad esempio, log) da decine di migliaia di server contemporaneamente. In un video di 40 minuti <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=pbbcMcrQoXw\">Yuriy Nasretdinov del team di VKontakte spiega come viene fatto<\/a><\/noindex>. Presto pubblicheremo la trascrizione su Habr per facilitare il lavoro con il materiale.<\/p>\n<h3>Ambiti di applicazione<\/h3>\n<p>\nDopo aver trascorso del tempo in ricerche, penso che ci siano aree in cui ClickHouse pu\u00f2 essere utile o in grado di sostituire completamente altre soluzioni pi\u00f9 tradizionali e popolari, come MySQL, PostgreSQL, ELK, Google Big Query, Amazon RedShift, TimescaleDB, Hadoop, MapReduce, Pinot e Druid. Di seguito sono riportati i dettagli sull'uso di ClickHouse per modernizzare o sostituire completamente i database menzionati. <\/p>\n<h3>Espansione delle capacit\u00e0 di MySQL e PostgreSQL<\/h3>\n<p>\nRecentemente abbiamo sostituito parzialmente MySQL con ClickHouse per la piattaforma delle newsletter <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mautic.org\/\">Mautic newsletter<\/a><\/noindex>. Il problema era che MySQL, a causa di un design poco studiato, registrava ogni email inviata e ciascun link in essa con un hash base64, creando un'immensa tabella MySQL (email_stats). Dopo aver inviato solo 10 milioni di email agli abbonati, questa tabella occupava 150 GB di spazio su disco, e MySQL iniziava a \u00abrallentare\u00bb con le semplici query. Per risolvere il problema dello spazio su disco, abbiamo utilizzato con successo la compressione della tabella InnoDB, che l'ha ridotta di 4 volte. Tuttavia, non ha comunque senso conservare oltre 20-30 milioni di email in MySQL solo per la lettura della cronologia, poich\u00e9 qualsiasi semplice query, che per qualche motivo dovrebbe eseguire una scansione completa, porta a uno swap e a un carico elevato sull'I\/O, per il quale ricevevamo regolarmente avvisi da Zabbix.<\/p>\n<p><img decoding=\"async\" alt=\"L&#039;uso di Clickhouse come alternativa a ELK, Big Query e TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/11b3ee4b1a8b7c9457bd3871bd12049f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nClickhouse utilizza due algoritmi di compressione, che riducono il volume dei dati di circa <noindex><a rel=\"nofollow\" href=\"https:\/\/www.altinity.com\/blog\/2017\/11\/21\/compression-in-clickhouse\">3-4 volte<\/a><\/noindex>, ma in questo caso specifico i dati erano particolarmente \u00abcompressibili\u00bb. <\/p>\n<p><img decoding=\"async\" alt=\"L&#039;uso di Clickhouse come alternativa a ELK, Big Query e TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/d192502073d57967620aa07da0bbfa0c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Sostituzione dell'ELK<\/h3>\n<p>\nDalla mia esperienza, lo stack ELK (ElasticSearch, Logstash e Kibana, in questo caso ElasticSearch) richiede molte pi\u00f9 risorse per funzionare rispetto a quelle necessarie per memorizzare i log. ElasticSearch \u00e8 un ottimo motore se hai bisogno di una buona ricerca full-text nei log (e non penso tu ne abbia realmente bisogno), ma mi chiedo perch\u00e9 sia diventato de facto il motore standard per la registrazione. La sua capacit\u00e0 di assorbimento, combinata con Logstash, ci ha creato problemi anche con carichi abbastanza piccoli e ha richiesto un'allocazione sempre maggiore di memoria e spazio su disco. Come DB, Clickhouse \u00e8 migliore di ElasticSearch per i seguenti motivi:<\/p>\n<ul>\n<li>Supporto per il dialetto SQL;<\/li>\n<li>Migliore grado di compressione dei dati memorizzati;<\/li>\n<li>Supporto per la ricerca di espressioni regolari Regex anzich\u00e9 per la ricerca full-text;<\/li>\n<li>Pianificazione delle query migliorata e prestazioni complessive pi\u00f9 elevate.<\/li>\n<\/ul>\n<p>\nAttualmente, il problema pi\u00f9 grande che si presenta nel confrontare ClickHouse con ELK \u00e8 la mancanza di soluzioni per l'acquisizione dei log, cos\u00ec come la scarsit\u00e0 di documentazione e tutorial a riguardo. Tuttavia, ogni utente pu\u00f2 configurare ELK utilizzando la guida di Digital Ocean, il che \u00e8 molto importante per una rapida implementazione di tali tecnologie. Qui c'\u00e8 un motore DB, ma per ora non c'\u00e8 Filebeat per ClickHouse. S\u00ec, \u00e8 presente <noindex><a rel=\"nofollow\" href=\"https:\/\/www.fluentd.org\/\">fluentd<\/a><\/noindex> e sistema per lavorare con i log <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/loghouse\">loghouse<\/a><\/noindex>, esiste uno strumento <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Altinity\/clicktail\">clicktail<\/a><\/noindex> per inserire in ClickHouse i dati dei log, ma tutto ci\u00f2 richiede pi\u00f9 tempo. Tuttavia, ClickHouse \u00e8 comunque in testa per la sua semplicit\u00e0, quindi anche i principianti lo installano facilmente e iniziano a utilizzarlo in modo completamente funzionale in appena 10 minuti. <\/p>\n<p>Preferendo soluzioni minimalist, ho provato a utilizzare FluentBit, uno strumento per il caricamento dei log con un consumo di memoria molto ridotto, insieme a ClickHouse, cercando di evitare l'uso di Kafka. Tuttavia, \u00e8 necessario risolvere alcune piccole incompatibilit\u00e0, come <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fluent\/fluent-bit\/issues\/848\">problemi di formato data<\/a><\/noindex>, prima che ci\u00f2 possa essere fatto senza uno strato di proxy che converte i dati da FluentBit a ClickHouse.<\/p>\n<p>In alternativa a Kibana, si pu\u00f2 utilizzare ClickHouse come backend <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/clickhouse-grafana\">Grafana<\/a><\/noindex>. Da quanto ho capito, ci possono essere problemi di prestazioni nel renderizzare un numero enorme di punti dati, specialmente con le versioni pi\u00f9 vecchie di Grafana. In Qwintry non abbiamo ancora provato, ma ci sono lamentele su questo che di tanto in tanto emergono nel canale di supporto di ClickHouse su Telegram. <\/p>\n<h3>Sostituzione di Google Big Query e Amazon RedShift (soluzione per grandi aziende)<\/h3>\n<p>\nL'uso ideale di BigQuery \u00e8 caricare 1 TB di dati JSON ed eseguire su di essi query analitiche. Big Query \u00e8 un ottimo prodotto, la scalabilit\u00e0 del quale \u00e8 difficile da sovrastimare. \u00c8 un software molto pi\u00f9 complesso rispetto a ClickHouse, che opera su un cluster interno, ma dal punto di vista del cliente ha molto in comune con ClickHouse. BigQuery pu\u00f2 rapidamente 'aumentare di prezzo', non appena inizi a pagare per ogni SELECT, quindi \u00e8 una vera soluzione SaaS con tutti i suoi pro e contro. <\/p>\n<p>ClickHouse \u00e8 la scelta migliore quando esegui molte query costose in termini di calcolo. Pi\u00f9 query SELECT esegui ogni giorno, pi\u00f9 ha senso sostituire Big Query con ClickHouse, perch\u00e9 tale sostituzione ti aiuter\u00e0 a risparmiare migliaia di dollari, se si tratta di molti terabyte di dati elaborati. Questo non si applica ai dati memorizzati, il cui trattamento in Big Query \u00e8 piuttosto economico.<\/p>\n<p>Nell'articolo del cofondatore di Altinity, Alexander Zaytsev <noindex><a rel=\"nofollow\" href=\"https:\/\/www.altinity.com\/blog\/2017\/10\/23\/migration-to-clickhouse\">\"Transizione a ClickHouse\"<\/a><\/noindex> si parla dei vantaggi di tale migrazione del DBMS.<\/p>\n<h3>Sostituzione di TimescaleDB<\/h3>\n<p>\nTimescaleDB \u00e8 un'estensione di PostgreSQL che ottimizza il lavoro con le serie temporali in un database tradizionale.<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.timescale.com\/v1.0\/introduction\">https:\/\/docs.timescale.com\/v1.0\/introduction<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/zabbix\/blog\/458530\/\">https:\/\/habr.com\/ru\/company\/zabbix\/blog\/458530\/<\/a><\/noindex>). <\/p>\n<p>Sebbene ClickHouse non rappresenti un concorrente significativo nel settore delle serie temporali, nella maggior parte dei casi di elaborazione delle query analitiche, la sua struttura a colonne e l'esecuzione vettoriale delle query lo rendono molto pi\u00f9 veloce di TimescaleDB. Inoltre, le prestazioni nella ricezione di dati in batch di ClickHouse sono circa 3 volte superiori, e utilizza 20 volte meno spazio su disco, il che \u00e8 davvero importante per elaborare grandi volumi di dati storici.<noindex><a rel=\"nofollow\" href=\"https:\/\/www.altinity.com\/blog\/ClickHouse-for-time-series\">https:\/\/www.altinity.com\/blog\/ClickHouse-for-time-series<\/a><\/noindex>.<\/p>\n<p>A differenza di ClickHouse, l'unico modo per risparmiare un po' di spazio su disco in TimescaleDB \u00e8 utilizzare ZFS o file system simili.<\/p>\n<p>I prossimi aggiornamenti di ClickHouse probabilmente introdurranno la compressione delta, che lo render\u00e0 ancora pi\u00f9 adatto per l'elaborazione e la memorizzazione di dati di serie temporali. TimescaleDB pu\u00f2 risultare una scelta migliore rispetto a ClickHouse \"nudo\" nei seguenti casi:<\/p>\n<ul>\n<li>piccole installazioni con pochissima memoria operativa (&lt;3 GB);<\/li>\n<li>un elevato numero di SMALL INSERT che non si desidera bufferizzare in grandi frammenti;<\/li>\n<li>migliore coerenza, uniformit\u00e0 e requisiti ACID;<\/li>\n<li>supporto per PostGIS;<\/li>\n<li>integrazione con tabelle PostgreSQL esistenti, poich\u00e9 fondamentalmente TimescaleDB \u00e8 PostgreSQL.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Concorrenza con i sistemi Hadoop e MapReduce<\/h3>\n<p>\nHadoop e altri prodotti di MapReduce possono eseguire numerosi calcoli complessi, ma generalmente funzionano con enormi latenza. ClickHouse risolve questo problema elaborando terabyte di dati e restituendo risultati quasi immediati. Pertanto, ClickHouse \u00e8 molto pi\u00f9 efficiente per condurre indagini analitiche interattive rapide, il che dovrebbe interessare i professionisti del trattamento dei dati.<\/p>\n<h3>Concorrenza con Pinot e Druid<\/h3>\n<p>\nI concorrenti pi\u00f9 vicini a ClickHouse sono i prodotti open source a colonne scalabili come Pinot e Druid. Un eccellente confronto tra questi sistemi \u00e8 stato pubblicato nell'articolo <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@leventov\/comparison-of-the-open-source-olap-systems-for-big-data-ClickHouse-druid-and-pinot-8e042a5ed1c7\">di Roman Leventov<\/a><\/noindex> del 1 febbraio 2018. <\/p>\n<p><img decoding=\"async\" alt=\"L&#039;uso di Clickhouse come alternativa a ELK, Big Query e TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/fe58814aa97b287b70c2f724b72b448a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQuesto articolo ha bisogno di un aggiornamento - afferma che ClickHouse non supporta le operazioni UPDATE e DELETE, il che non \u00e8 del tutto corretto per le versioni pi\u00f9 recenti.<\/p>\n<p>Non abbiamo abbastanza esperienza con questi DBMS, ma non mi piace affatto la complessit\u00e0 dell'infrastruttura necessaria per avviare Druid e Pinot \u2014 \u00e8 un vero e proprio insieme di \"parti mobili\", circondate da Java da tutte le parti.<\/p>\n<p>Druid e Pinot sono progetti incubatori di Apache, il cui sviluppo \u00e8 ampiamente trattato da Apache sulle pagine dei loro progetti GitHub. Pinot \u00e8 apparso nell'incubatore nell'ottobre 2018, mentre Druid \u00e8 nato 8 mesi prima, a febbraio.<\/p>\n<p>La mancanza di informazioni su come funziona AFS suscita in me alcune, forse stupide, domande. \u00c8 interessante notare che gli autori di Pinot hanno notato che la Apache Foundation \u00e8 pi\u00f9 favorevole a Druid, e se tale atteggiamento nei confronti del concorrente ha suscitato sentimenti di invidia? Lo sviluppo di Druid rallenter\u00e0 e quello di Pinot accelerer\u00e0 se i finanziatori che supportano il primo si interesseranno improvvisamente al secondo?<\/p>\n<h3>Svantaggi di ClickHouse<\/h3>\n<p>\nImmaturit\u00e0: \u00e8 chiaro che \u00e8 ancora una tecnologia in fase di sviluppo, ma in ogni caso, nulla di simile si osserva in altri DBMS a colonne. <\/p>\n<p>Le piccole inserzioni funzionano male con velocit\u00e0 elevate: le inserzioni devono essere suddivise in grandi blocchi, poich\u00e9 le prestazioni delle piccole inserzioni diminuiscono in proporzione al numero di colonne in ogni riga. \u00c8 proprio cos\u00ec che i dati vengono memorizzati su disco in ClickHouse: ogni colonna rappresenta 1 file o pi\u00f9, quindi per inserire 1 riga contenente 100 colonne \u00e8 necessario aprire e scrivere non meno di 100 file. Ecco perch\u00e9 \u00e8 necessario un intermediario per il buffering delle inserzioni (a meno che il client stesso non garantisca il buffering): di solito \u00e8 Kafka o qualche sistema di gestione delle code. \u00c8 possibile utilizzare anche il motore Buffer table, per copiarne in seguito grandi frammenti in tabelle MergeTree.<\/p>\n<p>Le connessioni tra tabelle sono limitate dalla memoria del server, ma almeno ci sono! Ad esempio, Druid e Pinot non hanno affatto tali connessioni, poich\u00e9 \u00e8 difficile implementarle direttamente in sistemi distribuiti che non supportano il trasferimento di grandi blocchi di dati tra nodi. <\/p>\n<h3>Conclusioni<\/h3>\n<p>\nNei prossimi anni prevediamo di utilizzare ampiamente ClickHouse in Qwintry, poich\u00e9 questo DBMS offre un eccellente equilibrio tra prestazioni, bassi costi generali, scalabilit\u00e0 e semplicit\u00e0. Sono quasi certo che inizier\u00e0 a diffondersi rapidamente, non appena la comunit\u00e0 di ClickHouse inventer\u00e0 pi\u00f9 modi per utilizzarlo in installazioni piccole e medie.<\/p>\n<h3>Un po' di pubblicit\u00e0 \ud83d\ude42<\/h3>\n<p>\nGrazie per rimanere con noi. Ti piacciono i nostri articoli? Vuoi vedere pi\u00f9 contenuti interessanti? Supportaci effettuando un ordine o raccomandandoci a qualcuno. <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">VPS cloud per sviluppatori a partire da $4.99.<\/a><\/noindex>, <b>unica alternativa ai server entry-level, concepita da noi per te:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Tutta la verit\u00e0 sui VPS (KVM) E5-2697 v3 (6 Core) 10GB DDR4 480GB SSD 1Gbps a partire da $19 o come dividere correttamente un server?<\/a><\/noindex> (sono disponibili opzioni con RAID1 e RAID10, fino a 24 core e fino a 40GB DDR4).<\/p>\n<p><b>Dell R730xd a met\u00e0 prezzo nel data center Equinix Tier IV ad Amsterdam?<\/b> Solo da noi <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB a partire da $199<\/a><\/noindex> nei Paesi Bassi! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 a partire da $99!<\/b><\/b> Leggi di <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Come costruire un'infrastruttura di livello enterprise utilizzando server Dell R730xd E5-2650 v4 del valore di 9000 euro a pochi spiccioli?<\/a><\/noindex><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/483112\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Clickhouse \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (OLAP) \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u042f\u043d\u0434\u0435\u043a\u0441\u043e\u043c. \u0415\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u042f\u043d\u0434\u0435\u043a\u0441, CloudFlare, VK.com, Badoo \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0438\u043b\u0438 \u043f\u0435\u0442\u0430\u0431\u0430\u0439\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435). \u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u0439, \u00ab\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0439\u00bb \u0421\u0423\u0411\u0414, \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54918","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Clickhouse \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (OLAP) \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.\" \/>\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\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\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\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Clickhouse \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043c\u0435\u043d\u044b ELK, Big Query \u0438 TimescaleDB | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Clickhouse \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (OLAP) \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb\" \/>\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=\"2020-01-06T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:58+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\udd47Utilizzo di Clickhouse come sostituto di ELK, Big Query e TimescaleDB | ProHoster","description":"Clickhouse \u00e8 un sistema di gestione di database a colonne per l'elaborazione analitica online (OLAP) con codice sorgente aperto.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb","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\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Clickhouse \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043c\u0435\u043d\u044b ELK, Big Query \u0438 TimescaleDB | ProHoster","og:description":"Clickhouse \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (OLAP) \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb","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":"2020-01-06T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54918","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-24 13:09:54","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:55:36","updated":"2026-01-24 13:09:54","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/54918","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=54918"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/54918\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=54918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=54918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=54918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}