您现在的位置是:首页 > 文章详情

QuestDB 9.0 正式发布,高性能开源时序数据库

日期:2025-07-17点击:351

QuestDB 是一款开源的时序数据库,提供了超低延迟、高吞吐量和多层存储引擎,支持多种协议(如 InfluxDB 行协议、PostgreSQL 协议、REST API),并与许多工具和语言集成,非常适合金融市场数据、实时分析等场景。

QuestDB 近日发布重大版本 9.0,增加了 N 维数组、日历感知的物化视图 (materialized views)、提高了数据去重效率、实现了更智能的 JOIN,并重构了 Web 控制台的 UX。

下面介绍 QuestDB 9.0 值得关注的新特性。

  • 支持 N 维数组

引入真正的 N 维数组(类似 NumPy 的数组),支持零拷贝切片、转置、累积操作和聚合,适用于市场数据订单簿深度或机器学习权重快照,目前支持 DOUBLE[] 类型,更多数据类型即将推出。

  • 二进制行协议

支持二进制 DOUBLE[] / DOUBLE 协议,提升高吞吐量摄取效率,降低带宽使用,加快服务器端处理速度。

import pandas as pd
from questdb.ingress import Sender

df = pd.DataFrame({
    'symbol': pd.Categorical(['ETH-USD', 'BTC-USD']),
    'side': pd.Categorical(['sell', 'sell']),
    'price': [2615.54, 39269.98],
    'amount': [0.00044, 0.001],
    'ord_book_bids': [
        np.array([2615.54, 2618.63]),
        np.array([39269.98, 39270.00])
    ],
    'timestamp': pd.to_datetime(['2021-01-01', '2021-01-02'])})

conf = f'http::addr=localhost:9000;'
with Sender.from_conf(conf) as sender:
    sender.dataframe(df, table_name='trades', at='timestamp')
  • 升级物化视图

新增高效的 replace commit 机制、支持自 UNION 查询、延迟或推迟刷新,并引入三种新的视图刷新模式(TIMERMANUALPERIOD),后者支持时区感知、日历调度的刷新。

  • 优化数据去重

提高数据去重效率,新增优化以跳过未更改的数据,减少 I/O 开销。

import pandas as pd
from questdb.ingress import Sender

df = pd.DataFrame({
    'symbol': pd.Categorical(['ETH-USD', 'BTC-USD']),
    'side': pd.Categorical(['sell', 'sell']),
    'price': [2615.54, 39269.98],
    'amount': [0.00044, 0.001],
    'ord_book_bids': [
        np.array([2615.54, 2618.63]),
        np.array([39269.98, 39270.00])
    ],
    'timestamp': pd.to_datetime(['2021-01-01', '2021-01-02'])})

conf = f'http::addr=localhost:9000;'
with Sender.from_conf(conf) as sender:
    sender.dataframe(df, table_name='trades', at='timestamp')
  • 改进 Web 控制台

界面焕然一新,支持多行查询同时执行、查询日志记录,以及通过右键点击运行箭头获取查询计划,便于调试。

  • ASOF JOIN with TOLERANCE

新增 TOLERANCE 参数,允许为匹配设置合理的时间范围,便于处理特定时间后“过期”的数据。

DECLARE
  @level := insertion_point(bids[2], bid_volume),
  @price := bids[1][@level]
SELECT
  md.timestamp market_time,
  @level level,
  @price market_price,
  cp.timestamp core_time,
  cp.bid_price core_price
FROM  (
  core_price
  WHERE timestamp IN today()
  AND symbol = 'GBPUSD'
  LIMIT -6
) cp
-- Match the bid to its nearest price within one second.
ASOF JOIN market_data md
ON symbol TOLERANCE 1s;

详情查看发布公告

原文链接:https://www.oschina.net/news/360851/questdb-9-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章