# questdb
**Repository Path**: zhubanghao/questdb
## Basic Information
- **Project Name**: questdb
- **Description**: QuestDB 是用于时间序列数据的高性能开源 SQL 数据库
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://www.oschina.net/p/questdb
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 10
- **Created**: 2023-03-20
- **Last Updated**: 2023-03-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
English | [简体中文](./i18n/README.zh-cn.md) | [繁體中文](./i18n/README.zh-hk.md) | [العربية](./i18n/README.ar-dz.md) | [Italiano](./i18n/README.it-it.md) | [Українська](./i18n/README.ua-ua.md) | [Español](./i18n/README.es-es.md) | [Português](./i18n/README.pt.md) | [日本](./i18n/README.ja-ja.md)
# QuestDB
QuestDB is an open-source time-series database for high throughput ingestion and
fast SQL queries with operational simplicity. It supports schema-agnostic
ingestion using the InfluxDB line protocol, PostgreSQL wire protocol, and a REST
API for bulk imports and exports.
QuestDB is well suited for financial market data, application metrics, sensor
data, real-time analytics, dashboards, and infrastructure monitoring.
QuestDB implements ANSI SQL with native time-series SQL extensions. These SQL
extensions make it simple to correlate data from multiple sources using
relational and time-series joins. We achieve high performance by adopting a
column-oriented storage model, parallelized vector execution, SIMD instructions,
and low-latency techniques. The entire codebase is built from the ground up in
Java and C++, with no dependencies and zero garbage collection.
## Try QuestDB
We provide a [live demo](https://demo.questdb.io/) provisioned with the latest
QuestDB release and sample datasets:
- Trips: 10 years of NYC taxi trips with 1.6 billion rows
- Trades: live crytocurrency market data with 30M+ rows per month
- Pos: geolocations of 250k unique ships over time
| Query | Execution time |
| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SELECT sum(double) FROM trips` | [0.15 secs]() |
| `SELECT sum(double), avg(double) FROM trips` | [0.5 secs]() |
| `SELECT avg(double) FROM trips WHERE time in '2019'` | [0.02 secs]() |
| `SELECT time, avg(double) FROM trips WHERE time in '2019-01-01' SAMPLE BY 1h` | [0.01 secs]() |
| `SELECT * FROM trades LATEST ON time PARTITION BY symbol` | [0.00025 secs](https://demo.questdb.io/?query=SELECT%20*%20FROM%20trades%20LATEST%20ON%20timestamp%20PARTITION%20BY%20symbol;&executeQuery=true) |
Our demo is running on `c5.metal` instance and using 24 cores out of 96.
## Get started
### Install QuestDB
To run QuestDB, [Docker](https://www.docker.com/) can be used to get started quickly:
```bash
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdb
```
macOS users can use Homebrew:
```bash
brew install questdb
brew services start questdb
questdb start // To start questdb
questdb stop // To stop questdb
```
The [QuestDB downloads page](https://questdb.io/get-questdb/) provides direct
downloads for binaries and has details for other installation and deployment
methods.
### Connect to QuestDB
You can interact with QuestDB using the following interfaces:
- [Web Console](https://questdb.io/docs/develop/web-console/) for interactive
SQL editor on port `9000`
- [InfluxDB line protocol](https://questdb.io/docs/reference/api/influxdb/) for
high-throughput ingestion on port `9009`
- [REST API](https://questdb.io/docs/reference/api/rest/) on port `9000`
- [PostgreSQL wire protocol](https://questdb.io/docs/reference/api/postgres/) on
port `8812`
### Insert data
Below are our official questdb clients for popular programming
languages:
- [.NET](https://github.com/questdb/net-questdb-client)
- [C/C++](https://github.com/questdb/c-questdb-client)
- [Go](https://pkg.go.dev/github.com/questdb/go-questdb-client)
- [Java](https://questdb.io/docs/reference/clients/java_ilp/)
- [NodeJS](https://questdb.github.io/nodejs-questdb-client)
- [Python](https://py-questdb-client.readthedocs.io/en/latest/)
- [Rust](https://docs.rs/crate/questdb-rs/latest)
## How QuestDB compares to other open source TSDBs
[This article](https://questdb.io/blog/2021/07/05/comparing-questdb-timescaledb-influxdb/)
compares QuestDB to other open source time series databases spanning
functionality, maturity and performance.
Here are high-cardinality
[Time Series Benchmark Suite](https://questdb.io/blog/2021/06/16/high-cardinality-time-series-data-performance/)
results using the `cpu-only` use case with 6 to 16 workers on 32 CPUs and 64GB RAM:
## Resources
### 📚 Read the docs
- [QuestDB documentation:](https://questdb.io/docs/introduction/) understand how
to run and configure QuestDB.
- [Tutorials:](https://questdb.io/tutorial/) learn what's possible with QuestDB
step by step.
- [Product roadmap:](https://github.com/questdb/questdb/projects) check out our
plan for upcoming releases.
### ❓ Get support
- [Community Slack:](https://slack.questdb.io) join technical discussions, ask
questions, and meet other users!
- [GitHub issues:](https://github.com/questdb/questdb/issues) report bugs or
issues with QuestDB.
- [Stack Overflow:](https://stackoverflow.com/questions/tagged/questdb) look for
common troubleshooting solutions.
### 🚢 Deploy QuestDB
- [AWS AMI](https://questdb.io/docs/guides/aws-official-ami)
- [Google Cloud Platform](https://questdb.io/docs/guides/google-cloud-platform)
- [Official Docker image](https://questdb.io/docs/get-started/docker)
- [DigitalOcean droplets](https://questdb.io/docs/guides/digitalocean)
- [Kubernetes Helm charts](https://questdb.io/docs/guides/kubernetes)
## Contribute
We are always happy to have contributions to the project whether it is source
code, documentation, bug reports, feature requests or feedback. To get started
with contributing:
- Have a look through GitHub issues labeled
"[Good first issue](https://github.com/questdb/questdb/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%22)".
- Read the
[contribution guide](https://github.com/questdb/questdb/blob/master/CONTRIBUTING.md).
- For details on building QuestDB, see the
[build instructions](https://github.com/questdb/questdb/blob/master/core/README.md).
- [Create a fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo)
of QuestDB and submit a pull request with your proposed changes.
✨ As a sign of our gratitude, we also send **QuestDB swag** to our
contributors. [Claim your swag here.](https://questdb.io/community)
A big thanks goes to the following wonderful people who have contributed to
QuestDB: ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project adheres to the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind are welcome!