
KDB+/Q: Bahasa Basis Data Tick
Bagaimana Wall Street menyimpan dan mengkueri miliaran data pasar
KDB+ dan Q dalam satu menit
KDB+ adalah sebuah database time-series yang berorientasi kolom; Q adalah bahasa vektornya. Firma sell-side dan buy-side mengadopsinya untuk penyimpanan tick, join, dan analitik rolling di mana memindai kolom mengalahkan loop baris-per-baris.
Performanya datang dari layout kolumnar, pemakaian memory mapping yang agresif, dan primitif vektor yang diimplementasikan dekat dengan hardware. Ini bukan pengganti OLTP umum; ini dituning untuk time series yang berat append.
Dasar-dasar Q
Q bersifat ringkas dan kanan-ke-kiri. Vektor bersifat native; loop tetap ada tapi jalur hot menghindarinya. Tabel adalah dictionary dari kolom, yang cocok dengan cara data tick disimpan.
prices: 100.5 101.2 99.8
avg prices
deltas prices
Q yang mudah dibaca datang dari fungsi-fungsi kecil dan komentar — kepadatan semata bukanlah sebuah kebaikan di codebase yang dipakai bersama.
Tickerplant, RDB, HDB
Pola yang umum: sebuah tickerplant menyerap feed dan menyebarkannya ke subscriber; sebuah real-time database menyimpan sesi saat ini; sebuah historical database menyimpan sejarah yang dipartisi di disk. Proses end-of-day meng-roll RT ke partisi HDB.
select last price by sym from trades where time > .z.t - 00:05
Crypto tidak pernah tutup, jadi batas 'sesi' adalah pilihan operasional, bukan bel exchange.
Di mana ia muncul
Firma memakai KDB+ untuk dashboard surveillance, analitik kuotasi, dan dataset riset. Nama dan deployment berbeda-beda; pola-nya adalah slice-and-dice yang cepat atas tick dan order.
Venue crypto menghasilkan data yang kontinu — rencanakan retensi, replay, dan ekspor compliance sejak awal.
Biaya lisensi dan alternatif
Lisensi komersial dan perekrutan yang terspesialisasi adalah biaya nyata. Alternatif terbuka (ClickHouse, Timescale, QuestDB, DuckDB di atas Parquet) menukar kecocokan ekosistem dengan harga. Benchmark pada campuran query-mu sendiri, bukan slide vendor.
Stack tick crypto
Banyak tim memasangkan Kafka atau Redpanda dengan penyimpanan kolumnar dan engine SQL. Invarian dari KDB+ tetap berlaku: partisi berdasarkan waktu, jaga schema tetap ketat, dan ukur lag end-to-end dari timestamp exchange sampai hasil query.
Konsumen API GaiaEx sebaiknya mencatat timestamp server dan identifier urutan jika diekspos — korelasi mengalahkan menebak-nebak.


