English | 简体中文 | 繁體中文 | العربية | Italiano | Українська | Español | Português | 日本
QuestDB 是一個開源的 SQL 時序數據庫,支持高吞吐量數據和快速 SQL 查詢,操作簡單。 其應用範圍包括金融市場數據、感測器數據、實時數據、儀表板和基礎設施監控。它兼容 InfluxDB 行協議以提供不受模式影響的高吞吐量數據,也兼容 PostgreSQL 線路協議,並 提供 REST API 以便於批量導入和導出。
QuestDB 以 ANSI SQL 為基礎,並使用時間導向的 SQL 語義。這些 SQL 語義能更簡單的連 接(JOIN)不同來源的關聯數據以及時間序列數據。QuestDB 通過列導向的存儲模型、大規 模並行的矢量執行、SIMD 指令和各種低延遲技術實現了高性能。整個代碼庫是用 Java 和 C++從頭開始構建的,沒有任何外部依賴,並且 100% 不受垃圾回收的影響。
我們提供了一個在線演示,其中包括最新的 QuestDB 版本和幾個樣本數據集:
- Trips: 近 10 年的紐約市出租車行程軌跡數據集,含 1.6 億行的數據。
- Trades: 即時加密貨幣(比特幣、乙太幣)交易數據集。
- Pos: 含有 25 萬艘船的時序地理數據集。
查詢 | 執行时间 |
---|---|
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 |
我們的在線演示運行在 c5.metal
上並且僅使用了 96 個線程中的 24 個線程。
你可以使用 Docker 來快速啓動一個 QuestDB 實例:
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdb
macOS 用戶可以使用 Homebrew 來啓動:
brew install questdb
brew services start questdb
questdb start // 啓動 questdb
questdb stop // 停止 questdb
QuestDB 下載頁面 提供二進制文件的直接下載,並提供其他安裝和部署方法的詳細資訊。
你可以使用以下接口與 QuestDB 進行交互。
- Web 控制台 在端口
9000
- REST API 在端口
9000
- PostgreSQL 在端口
8812
(支持 wire 協議) - InfluxDB Line Protocol 在端口
9009
(支持 line 協議的高吞吐量數據獲取)
以下是我們官方開發的 InfluxDB line protocol 用戶端,支持多種程式语言:
下面是 時間序列基準測試套件 運行 cpu-only
用例的測試結果,基於 6 個 worker 的 AMD Ryzen 3970X 上測試對比得到:
- QuestDB documentation: 描述了如何運行 和配置 QuestDB 的技術參考。
- 由我們的社區成員編寫的教程展示了 QuestDB 的可 能應用。
- 產品路線圖列出了我們目前正在 進行的任務和功能。
- Community Slack: 是一個進行技術討論和認識其他用戶 的好地方。👋
- GitHub issues: 回報問題或提案建議新功能。
- Stack Overflow: 尋找常見 問題的解決方法。
我們總是樂於收到原始碼、文檔、錯誤報告、功能請求等個項目的貢獻和建議。如果要開始貢獻:
- 請看一下 GitHub 上標有 "Good first issue" 的問題。
- 閱讀貢獻指南。
- 有關構建 QuestDB 的詳細信息,請參見構建說明。
- 創建 QuestDB 的一個分叉, 並提交一個 pull request,說明你的修改建議。
✨ 為了表示感謝,我們將向貢獻者發送一些我們的 QuestDB 禮品,如貼紙和 T 恤衫 在這裡申領
衷心感謝以下為 QuestDB 作出貢獻的優秀人士: (表情符號鍵):
本項目遵循 all-contributors 標準. 歡迎任何形式的貢獻!