Software:QuestDB
Initial release | 13 October 2016[1] |
---|---|
Stable release | 5.0.5[2]
/ 1 December 2020 |
Repository | https://github.com/questdb/questdb |
Written in | C and Java |
Operating system | Cross-platform |
Type | Time series database |
License | Apache License 2.0 |
Website | questdb.io |
QuestDB is an open source time series database (TSDB) optimized for fast data ingestion and real-time queries. It is used for financial services, event monitoring, application metrics, and internet of things. QuestDB is written in Java and C[3], supports the SQL query language and implements PostgreSQL wire protocol.[4]
History
Started as an open-source side project, QuestDB was founded by Vlad Ilyushchenko in 2014[5]. The project philosophy is to apply low-latency trading principles to databases in order to extract maximum performance from any hardware. The first official release was in October 2012[1]. QuestDB was incorporated in August 2019 and is licensed under the Apache 2 License, with source code available on GitHub[6].
Y Combinator-backed[7] QuestDB raised a $2.3m seed round[8] financing led by Episode1 Ventures[9], with participation from Seedcamp and other funds in July 2020.[10]
Technical overview
QuestDB adopts a relational data model with column-based storage. It is written in C and zero garbage collection Java and designed for fast data ingestion and queries in a vast array of applications and industries such as real-time data processing, Internet of Things (IoT), operations monitoring, trading and market data in financial services [11], logistics, and energy.
QuestDB ingests data via HTTP, PostgreSQL wire protocol, InfluxDB line protocol or directly from Java. Reading data is done using SQL via HTTP, PostgreSQL wire protocol or from Java API.
Architecture
QuestDB is a column-oriented DBMS that partitions columns by time. Data is stored in files with a single file for each table represented in the database.
QuestDB leverages SIMD parallel execution and memory-mapped files to achieve high performance throughput for both writing and querying. To ensure consistency while still maintaining read and write performance, all data is persisted to disk.
Features
QuestDB enhances ANSI SQL with time series extensions to manipulate time stamped data for both rows- and columns-based access to data. Data is stored in chronological order with the data time partitioned. The database achieves immediate consistency while maintaining scalable, high-speed data ingestion and is ACID compliant.
Vectorized query execution improves performance of data access giving real-time query performance. Both time series and relational joins are fully supported along with aggregations, down-sampling, and unlimited sub-queries.
A Web console is also provided for the users to run queries[12], where data can be displayed in a table or as a chart. The console also includes upload and download features for bulk data sets.
References
- ↑ 1.0 1.1 Initial Release
- ↑ Releases at GitHub
- ↑ "Database of Databases detailing QuestDB feature description". https://dbdb.io/db/questdb.
- ↑ "DB-Engines entry with QuestDB system properties". https://db-engines.com/en/system/QuestDB.
- ↑ Fitzpatrick, KellyAnne. "RedMonk New Client Profile: QuestDB". https://redmonk.com/kfitzpatrick/2020/08/31/new-client-profile-questdb/.
- ↑ "QuestDB source on GitHub". https://github.com/questdb/.
- ↑ "QuestDB company listing at Y Combinator". https://www.ycombinator.com/companies/21795.
- ↑ "QuestDB nabs $2.3M seed to build open source time series database". https://techcrunch.com/2020/07/02/questdb-nabs-2-3m-seed-to-build-open-source-time-series-database/.
- ↑ McNabb, Paul. "QuestDB – Why we invested". https://www.episode1.com/blog/questdb-why-we-invested/.
- ↑ "Our investment in QuestDB – the 'Usain Bolt' of databases". https://seedcamp.com/our-investment-in-questdb-the-usain-bolt-of-databases/.
- ↑ "Optimizing Time Series Databases for Machine Learning". https://www.tradersinsight.news/ibkr-quant-news/optimizing-time-series-databases-for-machine-learning.
- ↑ "Web Console reference". https://questdb.io/docs/reference/client/web-console.
QuestDB