Looking for peak time-series? Amplify ingestion and query speeds and significantly reduce infrastructure costs and complexity.
QuestDB outperforms every database we have tested and delivered a 10x improvement in querying speed. It has become a critical piece of our infrastructure.
Enter overdrive
QuestDB significantly outpaces InfluxDB in pure performance. Ingest speeds are 3-10x faster, while more complex queries can see orders of magnitude improvement. Overcome infrastructure bottlenecks and break free from cardinality limits.
QuestDB's remarkable performance is evident through significantly faster query response times and outstanding real-time data ingestion. Deployment and maintenance of QuestDB proved to be trivial with literally zero production hiccups for over a year now.
Aggregate data into one-minute intervals, reduce the granularity and size of the dataset for efficiency.
from(bucket: "example-bucket") |> range(start: -1h) |> filter(fn: (r) => r._measurement == "cpu" and r.cpu == "cpu-total" ) |> aggregateWindow(every: 1m, fn: mean)
SELECT timestamp, avg(cpu), avg(cpu-total)FROM 'example-bucket'WHERE timestamp > dateadd('h', -1, now())SAMPLE BY 1m;
Join two tables and get a column from each table where the timestamp matches.
f1 = from(bucket: "example-bucket-1") |> range(start: "-1h") |> filter(fn: (r) => r._field == "f1") |> drop(columns: "_measurement")
f2 = from(bucket: "example-bucket-2") |> range(start: "-1h") |> filter(fn: (r) => r._field == "f2") |> drop(columns: "_measurement")
union(tables: [f1, f2]) |> pivot( rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value" )
SELECT a.timestamp, f1, b.timestamp, f2FROM 'example-table-1' aASOF JOIN 'example-table-2' b;
QuestDB was our choice for real time data due to high performance, open source, high flexibility and great support. Performance was significantly better than the competition and we believe that QuestDB will become market leading.
Full ILP compatibility
QuestDB supports the InfluxDB Line Protocol (ILP). Apply first-party ILP in QuestDB clients, from Rust to Python. Top performance, useful feedback and clear docs. Upgrade your ingress with a string change.
InfluxDB could not deal with the shape of our data, which includes wide tables with thousands of column. Instead, we could ingest this data flawlessly into QuestDB, and then query it with SQL easily.