量化新手初次听闻时序数据库

刷文看到有人说做高频交易的都用时序数据库,比MySQL之流牛逼的多,新鲜事物,学习一下。

特别是看到Jeff一段话:

时间(是)浩瀚的人类历史长河中总是一个耀眼的词汇,当科技的年轮划到数据时代,时间与数据库碰到一起,把数据库内建时间属性后,产生了时序数据库。

瞬间觉得,时序数据库,是个有温度的科技产物。DB-Engines从2014年起将时间序列数据库作为独立目录(链接)来分类统计,当前(2019.8.29),数据库中属于时序的江湖是:

Rank DBMS Database Model
1 Oracle Relational
2 MySQL Relational
3 Microsoft SQL Server Relational
4 PostgreSQL Relational
5 MongoDB Document
34 InfluxDB Time Series
60 Kdb+ Time Series
80 Prometheus Time Series
82 Graphite Time Series
93 RRDtool Time Series
105 OpenTSDB Time Series
128 TimescaleDB Time Series
189 KairosDB Time Series
210 GridDB Time Series
230 Heroic Time Series
238 Amazon Timestream Time Series
245 Axibase Time Series
248 Riak TS Time Series
264 DolphinDB Time Series
274 Warp 10 Time Series
276 Quasardb Time Series
278 Hawkular Metrics Time Series
285 TempoIQ Time Series
290 Blueflood Time Series
297 Machbase Time Series
298 M3DB Time Series
306 VictoriaMetrics Time Series
307 IRONdb Time Series
315 SiriDB Time Series
331 Newts Time Series
343 SiteWhere Time Series
344 Yanza Time Series
  • Wikipedia Time series database

    A time series database (TSDB) is a software system that is optimized for storing and serving time series through associated pairs of time(s) and value(s).

    时序数据库是一种带有时间戳业务属性的垂直型数据库。

    可以分拆为三个观察角度:时序特性、数据特性、数据库特性。(详细内容见参考2

    • 时序特性:
      • 时间戳:通用的业务场景内以秒和毫秒精度为主,在一些遥感等高频采集领域,时间戳可以达到纳秒级别。时间戳种类包括unix系统时间戳和Calendar, 并且支持时区的自动适配。
      • 采样频率:采集频率一般有2种,一种是周期性的时间采样频率,比如服务器性能相关的定期汇总指标。另外一种是离散型的采样,比如网站的访问等等
    • 数据特性:
      • 数据顺序追加
      • 数据可多维关联
      • 通常高频访问热数据
      • 冷数据需要降维归档
      • 数据主要覆盖数值,状态,事件
    • 数据库特性(CRUD)
      • 写入速率稳定并且远远大于读取
      • 按照时间窗口访问数据
      • 极少更新,存在一定窗口期的覆盖写
      • 批量删除
      • 具备通用数据库要求的高可用,高可靠,可伸缩特性
      • 通常不需要具备事务的能力
  • 时序数据库发展史

量化新手初次听闻时序数据库

通用关系数据库可以存储时序数据,但是并未针对时间进行特殊优化,因此各方面效率不高,第一代时序数据库基于监控领域,处理数据规模比较单一、单机容量不大,多内嵌于监控告警方案(RRDTool/Whisper…);随着大数据业务需求,在通用存储基础上利用时序的特性规避通用存储的劣势,出现第二代基于通用存储的时序数据库(OpenTSDB/KairosDB…);随着docker、kubernetes、IoT需求,出现高性能、低成本的垂直型时序数据库(influxDB…)。

KDB是Kx System开发的时序数据库,常用于处理交易行情相关数据。支持流、内存计算和实时分析Billion级别的记录以及快速访问TB级别的历史数据。

TDengine是国产开源时序数据库。

这两个值得后续研究。


  • Reference

  1. * TSDB
  2. 时序数据库连载系列:时序数据库那些事 本系列作者是高手
  3. 时序数据库介绍和使用