kdb+ is KX's commercial columnar time-series database, long the standard for financial tick data, queried through the vector language q rather than standard SQL.
Self-hosted q processes composed into a pipeline: a tickerplant publishes to an in-memory real-time database, history lives in an on-disk HDB of splayed, date-partitioned columnar files (S3-tierable), and gateways fan queries across processes. One q process serves one query at a time; scaling means more processes.
How kdb+ answers the questions OLAP Engines turns on.
| How it works | |
| Specialization | Financial tick data and real-time market analytics |
| SQL dialect | q, a vector language; qSQL and an ANSI SQL subset |
| Joins | Native join primitives, including as-of joins |
| Updates and deletes | In-memory tables mutable; on-disk append-only |
| Ingest to queryable | Sub-millisecond: the tickerplant publishes to an in-memory RDB |
| Storage format | Own columnar files, splayed and partitioned |
| Compute and storage | Tickerplant, in-memory RDB, on-disk HDB; S3 with local cache |
| Indexes | Column attributes: sorted, parted, unique, grouped; date partitions |
| Pre-aggregation | None built in: aggregate tables are written and scheduled in q |
| Running it | |
| Concurrent users | Multiple processes behind a gateway; one q process, one query |
vs kdb+: Open source (permissive) · Self-hosted · Managed · Hybrid · Operational complexity: Medium · Java, C++
vs kdb+: Open source (permissive) · Self-hosted · Managed · Hybrid · Operational complexity: High · Java
vs kdb+: Open source (permissive) · Self-hosted · Managed · Hybrid · Operational complexity: High · Java