GaiaEx AcademyGaiaEx Academy
KDB+/Q: die Sprache der Tick-Datenbanken
EntwicklerProgrammierung11 min read

KDB+/Q: die Sprache der Tick-Datenbanken

Wie die Wall Street Milliarden von Marktdatenpunkten speichert und abfragt

Beiträge teilen

KDB+ und Q in einer Minute

KDB+ ist eine spaltenorientierte Zeitreihendatenbank; Q ist ihre Vektorsprache. Sell-Side- und Buy-Side-Firmen setzten es für Tick-Speicherung, Joins und rollierende Analysen ein, wo das Scannen von Spalten schneller ist als zeilenweise Schleifen.

Die Performance kommt aus dem spaltenweisen Layout, dem aggressiven Einsatz von Memory Mapping und Vektor-Primitiven, die nah an der Hardware implementiert sind. Es ist kein allgemeiner OLTP-Ersatz; es ist auf anhängeintensive Zeitreihen zugeschnitten.

Columnar layout (conceptual) sym A A B time t₁ t₂ t₃ price p₁ p₂ p₃ Vector ops touch contiguous arrays → cache-friendly scans Schema and types still matter: bad sym lists cost space
Tabellen sind Spaltenvektoren; Analytics filtern und aggregieren entlang von Spalten und Zeit.

Q-Grundlagen

Q ist knapp und arbeitet von rechts nach links. Vektoren sind nativ; Schleifen existieren, aber Hot Paths vermeiden sie. Tabellen sind Dictionaries von Spalten, was dazu passt, wie Tick-Daten gespeichert werden.

prices: 100.5 101.2 99.8
avg prices
deltas prices

Lesbares Q entsteht aus kleinen Funktionen und Kommentaren — Dichte allein ist in gemeinsam genutzten Codebasen keine Tugend.

Tickerplant, RDB, HDB

Ein gängiges Muster: Eine Tickerplant nimmt Feeds auf und verteilt sie an Subscriber; eine Real-Time-Datenbank hält die aktuelle Session; eine historische Datenbank speichert partitionierte Historie auf der Festplatte. End-of-Day-Prozesse rollen RT in HDB-Partitionen.

select last price by sym from trades where time > .z.t - 00:05

Krypto schließt nie, daher sind „Session“-Grenzen betriebliche Entscheidungen, keine Börsenglocken.

Tick pipeline (classic three-piece) Feed handlers Normalize symbols Timestamp at boundary Tickerplant Log + pub/sub No long-term store RDB + HDB Intraday vs history Partition by date Gap recovery uses logs; verify feed gaps and late corrections Crypto feeds can burst: size buffers and back-pressure
Die Trennung von Echtzeit und Historie hält Hot Paths klein und Abfragen vorhersehbar.

Wo es zum Einsatz kommt

Firmen nutzen KDB+ für Überwachungs-Dashboards, Quote-Analytics und Forschungsdatensätze. Namen und Deployments variieren; das Muster ist schnelles Slice-and-Dice über Ticks und Orders.

Krypto-Venues erzeugen kontinuierliche Daten — plane Aufbewahrung, Replay und Compliance-Export im Voraus.

Lizenzkosten und Alternativen

Kommerzielle Lizenzierung und spezialisierte Einstellung sind echte Kosten. Offene Alternativen (ClickHouse, Timescale, QuestDB, DuckDB über Parquet) tauschen Ökosystem-Passung gegen Preis. Benchmarke gegen deinen Query-Mix, nicht gegen Vendor-Folien.

Krypto-Tick-Stacks

Viele Teams kombinieren Kafka oder Redpanda mit spaltenweisem Speicher und SQL-Engines. Die Invariante aus KDB+ gilt weiterhin: partitioniere nach Zeit, halte Schemas strikt und messe die Ende-zu-Ende-Verzögerung vom Börsen-Zeitstempel bis zum Abfrageergebnis.

GaiaEx-API-Konsumenten sollten Server-Zeitstempel und Sequenz-Identifikatoren protokollieren, wenn diese exponiert werden — Korrelation ist besser als Raten.