
KDB+/Q: Il Linguaggio dei Tick Database
Come Wall Street memorizza e interroga miliardi di punti di dati di mercato
KDB+ e Q in un minuto
KDB+ è un database time-series column-oriented; Q è il suo linguaggio vettoriale. Le società sell-side e buy-side lo hanno adottato per lo storage dei tick, i join, e le analitiche rolling dove scansionare le colonne batte i loop riga per riga.
La performance viene dal layout columnar, dall'uso aggressivo del memory mapping, e da primitive vettoriali implementate vicino al metallo. Non è un sostituto OLTP generico; è ottimizzato per serie temporali ad append intensivo.
Basi di Q
Q è conciso e da destra a sinistra. I vettori sono nativi; i loop esistono ma i percorsi caldi li evitano. Le tabelle sono dizionari di colonne, il che corrisponde a come vengono memorizzati i dati tick.
prices: 100.5 101.2 99.8
avg prices
deltas prices
Il Q leggibile viene da piccole funzioni e commenti — la densità da sola non è una virtù nei codebase condivisi.
Tickerplant, RDB, HDB
Un pattern comune: un tickerplant ingerisce i feed e li distribuisce ai subscriber; un database in tempo reale detiene la sessione corrente; un database storico memorizza la storia partizionata su disco. I processi di fine giornata fanno rollare l'RT nelle partizioni HDB.
select last price by sym from trades where time > .z.t - 00:05
Il crypto non chiude mai, quindi i confini di «sessione» sono scelte operative, non campane di apertura dell'exchange.
Dove si trova
Le società usano KDB+ per dashboard di sorveglianza, analitiche sulle quotazioni, e dataset di ricerca. Nomi e deployment variano; il pattern è il taglia-e-scomponi rapido su tick e ordini.
Le piattaforme crypto generano dati continui — pianifica retention, replay, ed esportazione compliance in anticipo.
Costo della licenza e alternative
Il licensing commerciale e le assunzioni specializzate sono costi reali. Le alternative open (ClickHouse, Timescale, QuestDB, DuckDB su Parquet) scambiano l'adattamento all'ecosistema per il prezzo. Fai il benchmark sul tuo mix di query, non sulle slide del vendor.
Stack tick per il crypto
Molti team accoppiano Kafka o Redpanda con storage columnar e motori SQL. L'invariante da KDB+ si applica ancora: partiziona per tempo, mantieni gli schemi rigorosi, e misura il lag end-to-end dal timestamp dell'exchange al risultato della query.
I consumer delle API GaiaEx dovrebbero registrare i timestamp del server e gli identificatori di sequenza se esposti — la correlazione batte l'indovinare.


