
KDB+/Q: język baz danych tickowych
Jak Wall Street przechowuje i odpytuje miliardy punktów danych rynkowych
KDB+ i Q w jednej minucie
KDB+ to kolumnowa baza danych szeregów czasowych; Q to jej język wektorowy. Firmy sell-side i buy-side przyjęły ją do przechowywania danych tickowych, złączeń i analityki przesuwnej, gdzie skanowanie kolumn pobija pętle wiersz-po-wierszu.
Wydajność pochodzi z układu kolumnowego, agresywnego użycia mapowania pamięci i operacji wektorowych zaimplementowanych blisko sprzętu. To nie jest ogólne zastąpienie OLTP; jest dostrojona do szeregów czasowych z intensywnym dopisywaniem.
Podstawy Q
Q jest zwięzły i czytany od prawej do lewej. Wektory są natywne; pętle istnieją, ale gorące ścieżki ich unikają. Tabele są słownikami kolumn, co odpowiada temu, jak dane tickowe są przechowywane.
prices: 100.5 101.2 99.8
avg prices
deltas prices
Czytelny Q pochodzi z małych funkcji i komentarzy — sama gęstość nie jest cnotą we współdzielonych bazach kodu.
Tickerplant, RDB, HDB
Typowy wzorzec: tickerplant pobiera kanały danych i rozprowadza je do subskrybentów; baza danych czasu rzeczywistego przechowuje aktualną sesję; baza danych historyczna przechowuje partycjonowaną historię na dysku. Procesy końca dnia przenoszą RT do partycji HDB.
select last price by sym from trades where time > .z.t - 00:05
Krypto nigdy się nie zamyka, więc granice „sesji" są decyzjami operacyjnymi, nie dzwonkami giełdowymi.
Gdzie się pojawia
Firmy używają KDB+ do paneli nadzoru, analityki kwotowań i zestawów danych badawczych. Nazwy i wdrożenia się różnią; wzorzec to szybkie krojenie i dzielenie tików i zleceń.
Giełdy krypto generują ciągłe dane — zaplanuj retencję, odtwarzanie i eksport zgodności z wyprzedzeniem.
Koszt licencji i alternatywy
Licencjonowanie komercyjne i specjalizowane zatrudnienie są realnymi kosztami. Otwarte alternatywy (ClickHouse, Timescale, QuestDB, DuckDB nad Parquet) wymieniają dopasowanie ekosystemu na cenę. Testuj benchmarki na swoim mixie zapytań, nie na slajdach dostawcy.
Stosy tickowe krypto
Wiele zespołów łączy Kafka lub Redpanda z przechowywaniem kolumnowym i silnikami SQL. Niezmiennik z KDB+ wciąż się stosuje: partycjonuj według czasu, utrzymuj ścisłe schematy i mierz opóźnienie od-do-końca od znacznika czasu giełdy do wyniku zapytania.
Konsumenci API GaiaEx powinni logować znaczniki czasu serwera i identyfikatory sekwencji, jeśli są udostępnione — korelacja pobija zgadywanie.


