
KDB+/Q: мова тікових баз даних
Як Волл-стріт зберігає й опитує мільярди точок ринкових даних
KDB+ і Q за одну хвилину
KDB+ — це стовпчикова (column-oriented) база даних часових рядів; Q — її векторна мова. Sell-side та buy-side компанії прийняли її для зберігання тіків, з’єднань та ковзної аналітики, де сканування стовпців перевершує цикли по рядках.
Продуктивність досягається завдяки стовпчиковій організації даних, активному використанню відображення пам’яті (memory mapping) та векторних примітивів, реалізованих близько до «металу». Це не заміна для загального OLTP — вона налаштована саме на append-heavy часові ряди (переважно дописування, а не оновлення).
Основи Q
Q — лаконічна мова, обчислення виконуються справа наліво. Вектори — рідний тип даних; цикли існують, але на «гарячих» шляхах виконання їх уникають. Таблиці — це словники стовпців, що відповідає способу зберігання тікових даних.
prices: 100.5 101.2 99.8
avg prices
deltas prices
Читабельний код Q досягається невеликими функціями та коментарями — сама лише щільність запису не є перевагою у спільних кодових базах.
Tickerplant, RDB, HDB
Типовий паттерн: tickerplant приймає потоки даних і розсилає їх підписникам; real-time database (RDB) утримує поточну сесію; historical database (HDB) зберігає партиційовану історію на диску. Процеси наприкінці дня переносять дані з RDB у партиції HDB.
select last price by sym from trades where time > .z.t - 00:05
Крипторинок ніколи не закривається, тому межі «сесії» — це операційне рішення, а не сигнал біржового дзвінка.
Де це застосовується
Компанії використовують KDB+ для дашбордів моніторингу, аналітики квот та дослідницьких датасетів. Назви й реалізації відрізняються; спільний паттерн — швидке порізане (slice-and-dice) вибирання даних із тіків та ордерів.
Крипторинки генерують безперервний потік даних — плануйте зберігання, повторне відтворення та експорт для комплаєнсу заздалегідь.
Вартість ліцензії та альтернативи
Комерційне ліцензування та специфічний найм персоналу — реальні витрати. Відкриті альтернативи (ClickHouse, Timescale, QuestDB, DuckDB над Parquet) обмінюють відповідність екосистемі на ціну. Тестуйте продуктивність на власному наборі запитів, а не на презентаціях постачальника.
Крипто-стеки тікових даних
Багато команд поєднують Kafka чи Redpanda зі стовпчиковим зберіганням та SQL-рушіями. Незмінне правило з часів KDB+ досі діє: партиціонуйте за часом, тримайте суворі схеми та вимірюйте наскрізну затримку від часової метки біржі до результату запиту.
Споживачам API GaiaEx варто логувати серверні часові метки й ідентифікатори послідовності, якщо вони доступні — кореляція краща за припущення.


