diff --git a/.github/tsbs-results.png b/.github/tsbs-results.png index d4cf9cf4988706532658f7a8c6fb79a53ae90456..a8f2fbeb14ce7f29da5ce0b9b10146dd192bd41e 100644 Binary files a/.github/tsbs-results.png and b/.github/tsbs-results.png differ diff --git a/README.md b/README.md index 9bfba57535dc3cdb73b22347108bf6de5ede4edf..bcdfb048e5f5b0026b333b160e272cdde99991a3 100644 --- a/README.md +++ b/README.md @@ -19,19 +19,20 @@ English | [简体中文](./i18n/README.zh-cn.md) | [繁體中文](./i18n/README. # QuestDB -QuestDB is a high-performance, open-source SQL database for applications in -financial services, IoT, machine learning, DevOps and observability. It includes -endpoints for PostgreSQL wire protocol, high-throughput schema-agnostic -ingestion using InfluxDB Line Protocol, and a REST API for queries, bulk -imports, and exports. - -QuestDB implements ANSI SQL with native extensions for time-oriented language -features. These extensions make it simple to correlate data from multiple -sources using relational and time series joins. QuestDB achieves high -performance from a column-oriented storage model, massively-parallelized vector -execution, SIMD instructions, and various low-latency techniques. The entire -codebase was built from the ground up in Java and C++, with no dependencies, and -is 100% free from garbage collection. +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 semantics. These SQL +semantics 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.
@@ -48,7 +49,9 @@ QuestDB release and sample datasets: - live trading data from a cryptocurrency exchange - geolocations of 250k unique ships over time -## Install QuestDB +## Get started + +### Install QuestDB To run QuestDB, Docker can be used to get started quickly: @@ -74,16 +77,33 @@ methods. You can interact with QuestDB using the following interfaces: -- [Web Console](https://questdb.io/docs/develop/web-console/) listening on port - `9000` +- [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](https://questdb.io/docs/reference/api/postgres/) wire protocol on +- [PostgreSQL wire protocol](https://questdb.io/docs/reference/api/postgres/) on port `8812` -- [InfluxDB](https://questdb.io/docs/reference/api/influxdb/) line protocol for - high-throughput ingestion on port `9009` + +### Insert data + +Below are our official InfluxDB line protocol 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 workers on an AMD Ryzen 3970X: @@ -120,8 +140,6 @@ The following table shows query execution time of a billion rows run on a questions, and meet other users! - [GitHub issues:](https://github.com/questdb/questdb/issues) report bugs or issues with QuestDB. -- [GitHub discussions:](https://github.com/questdb/questdb/discussions) propose - new features or show what you've built. - [Stack Overflow:](https://stackoverflow.com/questions/tagged/questdb) look for common troubleshooting solutions. diff --git a/i18n/README.zh-cn.md b/i18n/README.zh-cn.md index a206e88329315e64b829f16e59f2b1289105f79e..165b7f0278609dbf53c2ed9647c64af2c796099f 100644 --- a/i18n/README.zh-cn.md +++ b/i18n/README.zh-cn.md @@ -31,11 +31,15 @@ [English](https://github.com/questdb/questdb) | 简体中文 | [繁體中文](README.zh-hk.md) | [العربية](README.ar-dz.md) | [Italiano](README.it-it.md) | [Українська](README.ua-ua.md) | [Español](README.es-es.md) | [Português](README-PT.md) | [日本](./README.ja-ja.md) # QuestDB -QuestDB 是一个高性能、开源的 SQL 数据库,适用于金融服务、物联网、机器学习 -、DevOps 和可观测性应用等场景。它兼容 PostgreSQL 的 wire 协议,也兼容 InfluxDB -Line 协议以提供不受数据库模式影响的高吞吐数据获取能力,并提供用于查询、批量导入 -和导出的 REST API。QuestDB 使用了 ANSI SQL ,其包含时间导向的原生扩展语言功能。 -这些扩展能更简单的连接(JOIN)多个来源的关联数据以及时间序列数据。QuestDB 通过列导向的存储模型、大规模并行的矢量执行、SIMD 指令和各种低延迟技术实现了高性能。整个代码库是用 Java 和 C++从头开始构建的,没有任何外部依赖,并且 100% 不受垃圾回收的影响。 +QuestDB 是一个开源的時序数据库,支持高吞吐数据获取和快速 SQL 查询,操作简单。 +应用场景包括金融市场数据、传感器数据、实时分析、数据仪表板和基础设施监控。它兼容 +InfluxDB 行协议以提供不受数据库模式影响的高吞吐数据获取能力,也兼容 PostgreSQL +的线路协议,並提供 REST API 以便于批量导入和导出。 + +QuestDB 使用 ANSI SQL ,並包含时间导向的 SQL 语义。这些 SQL 语义能更简单的连接 +(JOIN)不同来源的关联数据以及时间序列数据。QuestDB 通过列导向的存储模型、大规模 +并行的矢量执行、SIMD 指令和各种低延迟技术实现了高性能。整个代码库是用 Java 和 +C++从头开始构建的,没有任何外部依赖,并且 100% 不受垃圾回收的影响。
@@ -56,7 +60,9 @@ Line 协议以提供不受数据库模式影响的高吞吐数据获取能力, - 一个即時的加密货币(比特币、以太坊)交易数据集。 - 一个包括 25 万艘船的时序地理数据集。 -## 安裝 QuestDB +## 如何開始 + +### 安裝 QuestDB 你可以使用 Docker 来快速启动一个 QuestDB 实例: @@ -81,14 +87,33 @@ questdb stop // To stop questdb 你可以使用以下接口与 QuestDB 进行交互。 -- [web 控制台](https://questdb.io/docs/develop/web-console/): QuestDB将会启动一个web控制台,默认运行在 `9000` 端口 -- [REST API](https://questdb.io/docs/reference/api/rest/) : QuestDB也支持使用REST API 来进行交互,默认需要使用 `9000` 端口进行访问 -- [PostgreSQL wire Protocol](https://questdb.io/docs/reference/api/postgres/): QuestDB也支持PostgreSQL wire protocol协议,默认运行在 `8812` 端口 -- [InfluxDB Line Protocol](https://questdb.io/docs/reference/api/influxdb/): QuestDB 实现了[InfluxDB Line Protocol](https://docs.influxdata.com/influxdb/v1.8/write_protocols/line_protocol_tutorial/) 协议来支持高性能,高吞吐量单向数据插入。默认运行在 `9009` 端口 +- [web 控制台](https://questdb.io/docs/develop/web-console/): 将会启动一个 web + 控制台,默认运行在 `9000` 端口 +- [InfluxDB line protocol](https://questdb.io/docs/reference/api/influxdb/): 支 + 持高性能、高吞吐量单向数据插入,默认运行在 `9009` 端口 +- [REST API](https://questdb.io/docs/reference/api/rest/) : 使用 REST API 来进行 + 交互,默认需要使用 `9000` 端口进行访问 +- [PostgreSQL wire protocol](https://questdb.io/docs/reference/api/postgres/): + 默认运行在 `8812` 端口 + +### 获取数据 + +以下是我們官方开发的 InfluxDB line protocol 客户端,支持多种编程语言: + +- [.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) ## QuestDB 与其他开源 TSDB 的对比情况 -下面是 [时间序列基准测试套件](https://github.com/timescale/tsbs) 运行 `cpu-only` +参考[我们的文章](https://questdb.io/blog/2021/07/05/comparing-questdb-timescaledb-influxdb/), +其中在功能、性能和成熟度上比较了 QuestDB 和其他的开源时序资料库。 + +以下是 [时间序列基准测试套件](https://github.com/timescale/tsbs) 运行 `cpu-only` 用例的测试结果,基于 6 个 worker 的 AMD Ryzen 3970X 上测试对比得到:
@@ -125,9 +150,7 @@ questdb stop // To stop questdb - [Community Slack:](https://slack.questdb.io) 是一个进行技术讨论和认识其他用户 的好地方。👋 - [GitHub issues:](https://github.com/questdb/questdb/issues) 报告 QuestDB 缺陷 - 或是反馈问题。 -- [GitHub discussions:](https://github.com/questdb/questdb/discussions) 提案新的 - 特性以及查看已经构建的功能。 + 、功能建议或是反馈问题。 - [Stack Overflow:](https://stackoverflow.com/questions/tagged/questdb) 寻找常见 问题的解决方法。 diff --git a/i18n/README.zh-hk.md b/i18n/README.zh-hk.md index 07b6e8731145fa4ca29053c073d1077ee2601bfd..8bbe207292b8a21b48d63b1a5a56a61027b2f0ed 100644 --- a/i18n/README.zh-hk.md +++ b/i18n/README.zh-hk.md @@ -31,9 +31,15 @@ [English](https://github.com/questdb/questdb) | [简体中文](README.zh-cn.md) | 繁體中文 | [العربية](README.ar-dz.md) | [Italiano](README.it-it.md) | [Українська](README.ua-ua.md) | [Español](README.es-es.md) | [Português](README-PT.md) | [日本](./README.ja-ja.md) # QuestDB -QuestDB 是一個高性能的開源 SQL 數據庫,適用於金融服務、物聯網、機器學習、DevOps 和可觀測性領域的應用場景。它兼容 PostgreSQL 的 wire 協議,也兼容 InfluxDB Line 協議以獲取不受模式影響的高吞吐量數據,以及提供用於查詢、批量導入和導出的 REST API。 +QuestDB 是一個開源的 SQL 時序數據庫,支持高吞吐量數據和快速 SQL 查詢,操作簡單。 +其應用範圍包括金融市場數據、感測器數據、實時數據、儀表板和基礎設施監控。它兼容 +InfluxDB 行協議以提供不受模式影響的高吞吐量數據,也兼容 PostgreSQL 線路協議,並 +提供 REST API 以便於批量導入和導出。 -QuestDB 使用了包含時間導向的原生擴展語言功能的 ANSI SQL。這些擴展能更簡單的連接(JOIN)多個來源的關聯數據以及時間序列數據。QuestDB 通過列導向的存儲模型、大規模並行的矢量執行、SIMD 指令和各種低延遲技術實現了高性能。整個代碼庫是用 Java 和 C++從頭開始構建的,沒有任何外部依賴,並且 100% 不受垃圾回收的影響。 +QuestDB 以 ANSI SQL 為基礎,並使用時間導向的 SQL 語義。這些 SQL 語義能更簡單的連 +接(JOIN)不同來源的關聯數據以及時間序列數據。QuestDB 通過列導向的存儲模型、大規 +模並行的矢量執行、SIMD 指令和各種低延遲技術實現了高性能。整個代碼庫是用 Java 和 +C++從頭開始構建的,沒有任何外部依賴,並且 100% 不受垃圾回收的影響。
@@ -45,7 +51,7 @@ QuestDB 使用了包含時間導向的原生擴展語言功能的 ANSI SQL。這
-## 開始使用 QuestDB +## 嘗試 QuestDB 我們提供了一個[在線演示](https://demo.questdb.io/),其中包括最新的 QuestDB 版本和幾個樣本數據集: @@ -53,7 +59,9 @@ QuestDB 使用了包含時間導向的原生擴展語言功能的 ANSI SQL。這 - 一個即時的加密貨幣(比特幣、乙太幣)交易數據集。 - 一個包括 25 萬艘船的時序地理數據集。 -## 安裝 QuestDB +## 開始使用 + +### 安裝 QuestDB 你可以使用 Docker 來快速啓動一個 QuestDB 實例: @@ -77,10 +85,22 @@ questdb stop // 停止 questdb 你可以使用以下接口與 QuestDB 進行交互。 -- [Web 控制台](https://questdb.io/docs/develop/web-console/) 在端口 `9000` -- [REST API](https://questdb.io/docs/reference/api/rest/) 在端口 `9000` +- [Web 控制台](https://questdb.io/docs/develop/web-console/) 在端口 `9000` +- [REST API](https://questdb.io/docs/reference/api/rest/) 在端口 `9000` - [PostgreSQL](https://questdb.io/docs/reference/api/postgres/) 在端口 `8812` (支持 wire 協議) -- [InfluxDB Line Protocol](https://questdb.io/docs/reference/api/influxdb/) 在端口 `9009` (支持 line 協議的高吞吐量數據獲取) +- [InfluxDB Line Protocol](https://questdb.io/docs/reference/api/influxdb/) 在端口 `9009` (支持 line 協議的高吞吐量數據獲取) + +### 擷取數據 + +以下是我們官方開發的 InfluxDB line protocol 用戶端,支持多種程式语言: + +- [.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) ## QuestDB 與其他開源 TSDB 的比較 @@ -98,7 +118,7 @@ questdb stop // 停止 questdb 下表顯示了在 `c5.metal` 實例上使用 96 個線程中的 16 個線程運行 10 億條記錄的查詢執行時間。 -| 查詢 | 運行時間 | +| 查詢 | 運行時間 | | --------------------------------------------------------- | ---------- | | `SELECT sum(double) FROM 1bn` | 0.061 secs | | `SELECT tag, sum(double) FROM 1bn` | 0.179 secs | @@ -119,9 +139,7 @@ questdb stop // 停止 questdb - [Community Slack:](https://slack.questdb.io) 是一個進行技術討論和認識其他用戶 的好地方。👋 -- [GitHub issues:](https://github.com/questdb/questdb/issues) 回報問題或建議。 -- [GitHub discussions:](https://github.com/questdb/questdb/discussions) 提案新的 - 特性以及查看已經構建的功能。 +- [GitHub issues:](https://github.com/questdb/questdb/issues) 回報問題或提案建議新功能。 - [Stack Overflow:](https://stackoverflow.com/questions/tagged/questdb) 尋找常見 問題的解決方法。