Go to main content
ClickHouse fundamentals - official lesson image on GinnyTech, created by AD

ClickHouse: fundamentals and architecture

Introduction to ClickHouse: column-oriented architecture, storage engine, and optimization for real-time analytics.

AD
Created byAndrii Dyshkantiuk
Lesson 121 / 236Level: AdvancedDuration: 22 minPrerequisites: 1

What you will learn

  • Understand the analytical problem and the decision-making context
  • Apply examples, metrics, and controls to real cases

ClickHouse: fundamentals and architecture

Un team apre una dashboard su miliardi di righe e pretende una risposta in secondi, non in minuti. ClickHouse rende possibile questo scenario solo se capisci perché colonne, compressione, MergeTree, partizioni e ordine fisico lavorano insieme. Questa lezione traduce la promessa di velocità in vincoli concreti di modellazione, perché il punto non è accumulare definizioni ma capire quale decisione cambia quando il dato diventa più affidabile.

Il problema da risolvere

Conoscere ClickHouse in astratto non basta. Il problema è decidere cosa fare quando il team ha dati incompleti, metriche ambigue o vincoli tecnici che rendono fragile la lettura del fenomeno. Conviene leggere la lezione come se dovessi spiegare perché una query è veloce o lenta senza nasconderti dietro il nome del database. Ogni scelta fisica, dall’ORDER BY alla granularità delle partizioni, va collegata ai pattern di lettura, alla cardinalità e al costo di manutenzione.

Row-oriented e column-oriented

Per capire la rivoluzione di ClickHouse conviene prima confrontare le due filosofie dominanti nello storage dei dati. I sistemi tradizionali come PostgreSQL, MySQL o SQL Server sono row-oriented. When saving a row in a table ordini, contenente id_ordine, id_utente, importo e data_transazione, tutti questi valori vengono scritti consecutivamente su disco. Questa disposizione è ottimale per i carichi transazionali (OLTP), dove l’operazione tipica è recuperare, inserire o aggiornare un’intera riga. La query SELECT * FROM orders WHERE order_id = 12345 è efficientissima: il sistema localizza l’inizio della riga sul disco e legge un blocco contiguo di dati per ottenere tutte le informazioni.

Il mondo dell’analytics pone domande radicalmente diverse. Raramente ci interessa un singolo ordine. Vogliamo sapere qual è l’importo medio degli ordini nell’ultimo mese, oppure quali sono i dieci utenti con la spesa totale più alta. In un sistema row-oriented, per calcolare AVG(importo), il database deve leggere dal disco l’intera tabella, caricando in memoria ogni colonna di ogni riga anche se serve solo la colonna importo. Su una tabella con miliardi di righe e decine di colonne, questo spreco di I/O è la principale causa di lentezza. ClickHouse memorizza invece i dati per colonna, così una query analitica legge solo le colonne che le servono.

Come impostare il lavoro

Conviene procedere per passaggi, dove ognuno rende più chiaro il costo di una decisione sbagliata.

StepQuestion to askExpected output
DecisionChe cosa cambia se modelliamo bene la tabella?Scelta esplicita
SignalQuale dato osservabile riduce l’incertezza?Metrica o evento
BaselineRispetto a cosa interpretiamo il risultato?Credible comparison
VincoloChe cosa può falsare la lettura?Assunzione da dichiarare
ActionQuale passo operativo segue?Raccomandazione controllabile

In un progetto reale ClickHouse non vive isolato. È parte di un sistema più ampio fatto di decisioni, dati disponibili, vincoli tecnici, incentivi organizzativi e qualità dell’esecuzione. La prima domanda non è “quale metrica calcolo?” ma quale decisione dovrà essere presa grazie a questa analisi. Una dashboard o una query hanno valore solo se riducono incertezza decisionale; se non cambiano una scelta, sono documentazione o teatro analitico.

Formalizzare la decisione

Formalizza la lezione come una relazione tra decisione, evidenza e rischio.

ElementOperational DefinitionControllo minimo
Unit of analysisOggetto su cui misuri il fenomenoUtente, account, evento, ordine o periodo
Variabile osservataSegnale che rappresenta il comportamentoDefinizione stabile e tracciabile
BaselineStato contro cui confronti il segnalePeriodo, segmento, controllo o benchmark
Soglia decisionalePunto in cui cambia l’azioneCriterio scritto prima della lettura
Rischio residuoErrore che può restare dopo l’analisiSensitivity check o revisione qualitativa

La formalizzazione non complica la lezione. Rende visibili le assunzioni, così uno stakeholder può discutere il criterio decisionale invece di fidarsi del risultato per autorità.

Come leggere i segnali

Immagina un team che deve usare ClickHouse per decidere se cambiare una pipeline, una metrica o una dashboard. La domanda non è quale sia la definizione corretta, ma quale scelta diventa meno rischiosa se l’analisi è fatta bene.

SituationCautious interpretationDecision
Il dato migliora ma la baseline è deboleIl segnale potrebbe dipendere dal campioneRafforzare il confronto prima di scalare
La metrica cambia in un solo segmentoThe average effect hides heterogeneitySeparate cohorts or use cases
Il costo operativo aumentaIl beneficio va valutato sul margineApplicare una soglia economica esplicita
Il sistema produce numeri incoerentiLa fiducia nel dato è parte della decisioneCorreggere ownership e controlli

Traccia operativa

La lezione mantiene il punto pratico: usare ClickHouse per collegare domanda, dato, baseline e decisione. La tabella seguente riassume i controlli da tenere sempre presenti.

AreaControllo da mantenere
QuestionQuale scelta deve cambiare dopo l’analisi
DatoQuale evento, tabella o metrica rende osservabile il problema
QualitàQuale errore di raccolta, modellazione o interpretazione può alterare il risultato
BaselineQuale confronto impedisce una lettura isolata
ActionQuale raccomandazione diventa più difendibile

Usa questa traccia insieme agli esercizi: se un esempio, una formula o un frammento tecnico non chiarisce almeno una di queste aree, va trattato come dettaglio secondario.

Esercizio guidato

Al livello base, scrivi in cinque righe quale decisione concreta la conoscenza di ClickHouse dovrebbe migliorare, indicando metrica, unità di analisi, baseline e rischio principale. Se non riesci a nominare la decisione, il tema è ancora troppo astratto.

Al livello intermedio costruisci una tabella con quattro colonne: segnale osservato, interpretazione prudente, controllo necessario e azione consigliata. Usa almeno un caso in cui il segnale da solo non basta per decidere. Al livello research-grade trasforma l’esercizio in un memo decisionale che includa assunzioni, criteri di esclusione, soglia di intervento, sensitivity check e una proposta di monitoraggio dopo la decisione.

Typical mistake

L’errore tipico è usare ClickHouse come etichetta tecnica invece che come criterio di scelta. Succede quando il team presenta un numero senza dire quale decisione cambia, quale baseline lo rende interpretabile e quale rischio resta aperto. In quel caso il dato sembra preciso ma non guida l’azione. La domanda di controllo è semplice: se questo risultato fosse instabile, quale scelta sbaglierei?

ClickHouse è uno strumento decisionale, non un argomento da manuale. Lo storage column-oriented spiega perché le query analitiche sono veloci, ma il valore nasce solo quando colleghi problema, dati, metrica, segmentazione e azione. La forma corretta della lezione resta fatta di decisione, segnale, baseline, rischio e azione; tutto il resto serve solo se rende più affidabile uno di questi passaggi.