Time-series analytics at the speed it streams in.
ASOF joins, sliding windows, and inline forecasting on GPU — alongside your vector, graph, and spatial workloads in one engine.
Time-series lives in three places. Only one sits in your engine.
Purpose-built for ticks. Cut off from everything else.
Dedicated time-series stores handle ingest and bucket aggregations well. They're a separate system. When the question requires joining ticks with customer data, geofences, or vector similarity, you're back to extract-and-move — or you're not asking the question at all.
Columnar layout, vectorized GPU execution, and continuous materialized-view maintenance — the three things that make time-series fast at scale.
Time-series queries usually scan only a few columns. Columnar storage means you read what you need and skip the rest.
Window aggregates, ASOF, bucketing — all execute as vectorized kernels on GPU. Per-row work parallelizes across thousands of cores.
Materialized views refresh on change as new ticks arrive — your aggregates stay fresh without re-scanning history.
3× faster than SingleStore. 2.5× faster than ClickHouse.
3× SingleStore on QPS
4× ClickHouse under load
2× on data loading
Source: Tier-1 bank proof of concept · Phase 1 (Kinetica Lab, US, R620/T4) · Phase 2 (Dell Lab, Ireland, R760XA/L40s) · 2025. Numbers shown as published; benchmark refresh in progress.
The full temporal toolkit, in standard SQL.
OVER · PARTITION BY · sliding
Aggregate, rank, and offset over rows ordered by time. RANGE or ROWS framed.
SELECT ts, price, AVG(price) OVER ( PARTITION BY symbol ORDER BY ts RANGE INTERVAL '5' MIN PRECEDING ) AS ma5 FROM ticks;
TIME_BUCKET · DATE_BUCKET
Snap irregular timestamps to fixed intervals. Aligned buckets you can group by.
SELECT TIME_BUCKET( INTERVAL '1' MIN, ts ) AS bucket, SUM(volume) AS vol FROM ticks GROUP BY bucket;
PREDICT · OUTLIERS
Forecasting and anomaly detection inline in SQL. No separate ML pipeline.
SELECT * FROM PREDICT( SELECT ts, price FROM ticks ) FORECAST FOR INTERVAL '10' MINUTE;
ASOF join connects two time-series when timestamps don't align — for every row, at GPU speed, in standard SQL.
-- for each trade, find the most recent -- quote within 1ms tolerance after SELECT * FROM trades t LEFT JOIN quotes q ON t.symbol = q.symbol AND ASOF( t.ts, q.ts, INTERVAL '0' SECOND, INTERVAL '1' MILLISECOND, MIN );
The result: for every trade, the closest matching quote within the configured window. Trades with no qualifying quote return NULL (LEFT JOIN). The whole thing runs vectorized on GPU, in a single SQL statement.
“Kinetica's unique ASOF join capability — correlating different car sensor readings with offset timestamps across 8,000 tables of individual sensor time-series — set it apart from competitors and secured the deal.”
Materialized views refresh on change as ticks arrive, including across ASOF joins. The expensive computation runs once.
-- ASOF join, kept fresh as -- new ticks arrive — automatically CREATE OR REPLACE MATERIALIZED VIEW trades_q REFRESH ON CHANGE AS ( SELECT * FROM trades t LEFT JOIN quotes q ON ASOF( t.ts, q.ts, INTERVAL '0' SEC, INTERVAL '1' MS, MIN ) );
ASOF JOIN is where engines that "support time-series" usually fall apart. A naive plan does a cross-join and filters — quadratic on row count, fine for a million ticks, fatal at a billion. The right plan walks both series in sorted order with a moving pointer; each tick on the left finds its match in O(1), not O(log n) and definitely not O(n). Sorted column storage and partition-aligned shards are what make that pointer walk possible without a global sort.
Time-series operations built for the workloads that already broke your last database.
Frequently asked questions
What makes time-series workloads harder than other analytical workloads?
What is an ASOF join, and why is it considered the "killer operator" for time-series?
How does Kinetica compare to ClickHouse and SingleStore on time-series benchmarks?
Can I use standard SQL for window functions, time bucketing, and forecasting?
OVER clauses with RANGE or ROWS framing. TIME_BUCKET and
DATE_BUCKET snap irregular timestamps to fixed intervals. PREDICT runs
inline forecasting in the same SQL pipeline — no separate ML service to operate. Postgres-wireline
compatibility means your existing tools, your team's skills, and your LLMs all work the day you
start.
Do streaming materialized views work across ASOF joins too?
CREATE MATERIALIZED VIEW … REFRESH ON CHANGE on an ASOF join maintains the join
incrementally as new ticks land in the source tables. The heavy lifting runs once; subsequent
ticks update the view in place. Agents and dashboards reading the view always see a result that's
already current — without re-scanning history on every query.