時間序列
金融市場數據開源時間序列數據庫的性能
我們希望將金融報價數據儲存在數據庫中(可能有數十億行),然後從中創建聚合(開-高-低-收)柱數據(例如 1 分鐘或 5 分鐘柱)。
有人向我們提到,NoSQL 或時間序列數據庫可能是一個不錯的選擇。任何人都可以就哪種開源產品最適合此要求提供任何建議。
注意:查詢性能對我們來說非常重要。
在我們的研究中,我們遇到了以下產品(也許還有更多):
我們確實使用 InfluxDB 進行了大約 1000 萬次滴答的測試。不幸的是,創建 1 分鐘柱比使用關係數據庫(即 MySQL)慢 3-5。
我們知道 KDB 現在提供免費的 32 位版本,但不幸的是 32 位不足以滿足我們的案例。
任何建議表示讚賞。
編輯(2015 年 9 月):我們還使用 OpenTSDB 進行了測試,這似乎相當快。進口10米。價格大約需要一分鐘,聚合成 1 分鐘柱大約需要 5 秒。
編輯(2017 年 1 月):在最初的測試一年多之後,我們再次嘗試了 InfluxDB,結果證明他們在此期間取得了巨大的進步。寫入性能現在高達 2 mio。每秒數據點數(版本 1.2)!我們現在決定將 InfluxDB 集成到我們自己的產品AlgoTrader 中
你可以試試北極。您可能沒有考慮過的其他面向列的開源數據庫包括 LucidDB 和 C-Store。
(我在 Axibase 工作)
Axibase 時間序列數據庫不是開源的,但它在單節點上是免費的。
時間精度為微秒。
它支持 SQL 和 REST API 中的 OLCHV+VWAP 聚合器,具有用於按交易日曆、拍賣階段、指數等進行過濾的各種功能。
SELECT datetime, symbol, close(), vwap() FROM atsd_trade WHERE in_index('<index-name>') AND in_session(DAY, CLOSING) AND datetime BETWEEN '2021-01-01' AND '2021-01-15' EXCL GROUP BY exchange, class, symbol, PERIOD(1 DAY)
(我在 Axibase 工作)