Favicon of kdb+

kdb+

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.

LicenseCommercial
DeploymentSelf-hostedHybrid
PricingFreeSubscription
Operational complexityLow
WorkloadInteractiveStreaming

Use it when

  • The workload is financial tick data and the latency bar sits where kdb+ has lived for decades.
  • As-of joins, whole-column vector operations, and sub-millisecond in-memory reads define the queries.
  • The team is committing to q; its expressiveness over time-series is the payoff for the learning curve.
  • A tickerplant, real-time database, and historical database pipeline matches how your market data actually flows.

Think twice when

  • The team will not learn q; qSQL and an ANSI subset exist, but the native language is where the performance assumptions and the hiring pool live.
  • Budgets favor open source; licensing is commercial, with free editions capped (Community for bounded commercial use, Personal strictly non-commercial).
  • The data is not time-series; general OLAP engines cover mixed analytics more cheaply.

How it runs

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.

Details

Compare

How kdb+ answers the questions OLAP Engines turns on.

OLAP Engines
How it works
SpecializationFinancial tick data and real-time market analytics
SQL dialectq, a vector language; qSQL and an ANSI SQL subset
JoinsNative join primitives, including as-of joins
Updates and deletesIn-memory tables mutable; on-disk append-only
Ingest to queryableSub-millisecond: the tickerplant publishes to an in-memory RDB
Storage formatOwn columnar files, splayed and partitioned
Compute and storageTickerplant, in-memory RDB, on-disk HDB; S3 with local cache
IndexesColumn attributes: sorted, parted, unique, grouped; date partitions
Pre-aggregationNone built in: aggregate tables are written and scheduled in q
Running it
Concurrent usersMultiple processes behind a gateway; one q process, one query

Share:

Alternatives to kdb+

Favicon

 

  
  
Favicon

 

  
  
Favicon