GaiaEx AcademyGaiaEx Academy
KDB+/Q: Bahasa Basis Data Tick
DeveloperPemrograman11 min read

KDB+/Q: Bahasa Basis Data Tick

Bagaimana Wall Street menyimpan dan mengkueri miliaran data pasar

Bagikan Postingan

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.

Layout kolumnar (konseptual) sym A A B time t₁ t₂ t₃ price p₁ p₂ p₃ Operasi vektor menyentuh array yang kontigu → scan yang cache-friendly Schema dan tipe tetap penting: daftar sym yang buruk memakan ruang
Tabel adalah vektor kolom; analitik memfilter dan mengagregasi di sepanjang kolom dan waktu.

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.

Pipeline tick (tiga bagian klasik) Feed handler Normalisasi simbol Timestamp di batas Tickerplant Log + pub/sub Tanpa penyimpanan jangka panjang RDB + HDB Intraday vs historis Partisi per tanggal Recovery gap memakai log; verifikasi gap feed dan koreksi yang terlambat Feed crypto bisa meletup: sesuaikan ukuran buffer dan back-pressure
Pemisahan real-time dan historis membuat jalur hot tetap kecil dan query tetap bisa diprediksi.

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.