English | 简体中文 | 繁體中文 | العربية
QuestDB 是一個高性能的開源 SQL 數據庫,適用於金融服務、物聯網、機器學習、DevOps 和可觀測性領域的應用場景。它兼容 PostgreSQL 的 wire 協議,也兼容 InfluxDB Line 協議以獲取不受模式影響的高吞吐量數據,以及提供用於查詢、批量導入和導出的 REST API。
QuestDB 使用了包含時間導向的原生擴展語言功能的 ANSI SQL。這些擴展能更簡單的連接(JOIN)多個來源的關聯數據以及時間序列數據。QuestDB 通過列導向的存儲模型、大規模並行的矢量執行、SIMD 指令和各種低延遲技術實現了高性能。整個代碼庫是用 Java 和 C++從頭開始構建的,沒有任何外部依賴,並且 100% 不受垃圾回收的影響。
我們提供了一個在線演示,其中包括最新的 QuestDB 版本和幾個樣本數據集:
- 一個 16 億行的數據集,包括近 10 年的紐約市出租車行程軌跡。
- 一個即時的加密貨幣(比特幣、乙太幣)交易數據集。
- 一個包括 25 萬艘船的時序地理數據集。
你可以使用 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 協議的高吞吐量數據獲取)
下面是 時間序列基準測試套件 運行 cpu-only
用例的測試結果,基於 6 個 worker 的 AMD Ryzen 3970X 上測試對比得到:
下表顯示了在 c5.metal
實例上使用 96 個線程中的 16 個線程運行 10 億條記錄的查詢執行時間。
查詢 | 運行時間 |
---|---|
SELECT sum(double) FROM 1bn |
0.061 secs |
SELECT tag, sum(double) FROM 1bn |
0.179 secs |
SELECT tag, sum(double) FROM 1bn WHERE timestamp='2019' |
0.05 secs |
- QuestDB documentation: 描述了如何運行 和配置 QuestDB 的技術參考。
- 由我們的社區成員編寫的教程展示了 QuestDB 的可 能應用。
- 產品路線圖列出了我們目前正在 進行的任務和功能。
- Community Slack: 是一個進行技術討論和認識其他用戶 的好地方。👋
- GitHub issues: 回報問題或建議。
- GitHub discussions: 提案新的 特性以及查看已經構建的功能。
- Stack Overflow: 尋找常見 問題的解決方法。
我們總是樂於收到原始碼、文檔、錯誤報告、功能請求等個項目的貢獻和建議。如果要開始貢獻:
- 請看一下 GitHub 上標有 "Good first issue" 的問題。
- 閱讀貢獻指南。
- 有關構建 QuestDB 的詳細信息,請參見構建說明。
- 創建 QuestDB 的一個分叉, 並提交一個 pull request,說明你的修改建議。
✨ 為了表示感謝,我們將向貢獻者發送一些我們的 QuestDB 禮品,如貼紙和 T 恤衫 在這裡申領
衷心感謝以下為 QuestDB 作出貢獻的優秀人士: (表情符號鍵):
本項目遵循 all-contributors 標準. 歡迎任何形式的貢獻!