引言
我做大数据开发从最早的传统数仓到现在的物联网、金融量化项目,见过太多团队在时序数据库选型上栽跟头。最近两三年,我接到的咨询里,十个大数据项目有七八个要用时序数据库:设备测点、金融要存行情tick数据、互联网要存业务监控指标、车联网要存车辆运行数据......越来越多的业务产生海量带时间戳的数据,传统数据库顶不住,专门的时序数据库成了刚需,但网上的选型攻略要么太老,要么带着明显的偏向,很多朋友看完还是不知道怎么选。

这篇文章我就结合自己这些年的选型经验,从大数据场景的核心需求出发,聊聊怎么选对时序数据库,顺便给大家好好讲讲我最近在多个项目里落地的国产时序数据库------DolphinDB,从性能、成本、维护多个维度聊聊它。官方地址我先放出来,需要了解细节的可以直接去看:DolphinDB官网「https://dolphindb.cn/」,技术干货可以看官方博客「https://dolphindb.cn/blogs」。
一、时序数据大爆发,选型难在哪?
最近这些年,时序数据的增长速度远超大部分人的想象。根据IDC去年发布的《全球数据圈报告》,2025年全球联网设备产生的数据总量将达到175ZB,其中超过70%的数据是带时间戳的时序数据。不管是To B还是To C业务,时序数据已经成了大数据领域占比最高的数据类型之一。
和结构化、非结构化数据比,时序数据有几个非常鲜明的特点,也是对数据库最大的考验:
- 数据持续高并发写入:工业一个中型工厂就有上万甚至十万个测点,每秒都要产生数条数据,车联网一辆车每秒至少上传一次位置数据,百万级车就是百万级写入,对写入的低延迟、稳定性要求极高;
- 数据几乎不会更新删除:时序数据都是按时间产生的历史数据,写入之后基本不会修改,只有超期的冷数据会批量删除,所以需要针对这个场景做专门优化;
- 查询大多带时间维度过滤:绝大多数查询都是按时间范围查,比如"查询过去24小时设备A的温度变化""查询上个月沪深两市的成交量走势",还要做大量的降采样、聚合统计,比如按小时、按天汇总指标;
- 数据量极大,存储成本敏感:一个工业项目存5年数据,动不动就是几十上百TB,压缩比差一点,存储成本就能差出好几倍,很多项目就是因为存储成本超预算被叫停。
但现在时序数据库市场鱼龙混杂,很多人选型的时候容易陷入几个误区:
- 只看开源免费,不看长期维护:很多开源产品核心功能缺失,大集群场景根本没法用,出了问题没人解决,后期重构成本远大于省下来的license钱;
- 盲目迷信国外产品,不考虑本地化需求:国外产品不仅授权贵,技术支持响应慢,很多还不适应国内国产化适配的要求,国企、政企项目根本没法用;
- 只看单一指标,不看整体架构:很多人选型只看写入速度,不考虑查询分析的性能,结果存进去了查不出来,还是没法用。
所以我们团队这些年总结下来,时序数据库选型,尤其是大数据场景下,必须从六个核心维度去评判,缺一个都可能踩坑:
- 高并发写入的稳定性:能不能扛住持续的高并发写入,会不会丢包、延迟会不会飙升;
- 多场景查询分析效率:能不能同时满足实时点查、批量聚合分析、复杂即席查询的需求;
- 存储压缩比:能不能把时序数据压到最小,直接决定了存储成本;
- 架构扩展性:数据量涨了之后能不能水平扩展,性能会不会线性下降;
- 生态适配能力:能不能对接现有的大数据生态(Flink、Spark、Kafka这些),开发成本高不高;
- 服务与成本:出问题能不能及时得到支持,总体拥有成本(TCO)到底高不高。
接下来我们就基于这几个维度,聊聊现在主流产品的情况,重点说说DolphinDB的表现。
二、大数据场景下,国外主流时序数据库的痛点
这里我只说我实际用过的几个国外主流产品。就我实际用下来,国外主流的几个时序产品,在国内的大数据场景下,都有比较明显的痛点:
2.1 InfluxDB
InfluxDB应该是大家听得最多的时序数据库了,最早就是靠开源做起来的。但实际上,InfluxDB开源版把集群、高可用这些企业需要的核心功能都砍了,想要集群就得买商用版。我之前帮客户算过,10个节点百TB数据的规模,InfluxDB一年的商用授权就要七八十万,这个价格对很多中小企业来说根本承受不起。之前我们客户买了授权,出了问题发工单,最快也要一天才能回复,有时候遇到复杂问题,一周都解决不了,对项目来说根本耗不起。
2.2 TimescaleDB
TimescaleDB是基于PostgreSQL改造的时序数据库,优势就是兼容PG的生态,开发起来比较方便。但它的原生分布式支持做得很晚,而且分布式架构需要自己维护分片,扩缩容非常麻烦,数据量超过10TB之后,查询性能下降得非常明显。
2.3 OpenTSDB
OpenTSDB是基于HBase做的时序数据库,早年用的人不少,但现在架构已经非常老旧了,写入和查询性能都远不如新一代的时序数据库,而且要依赖HBase整个生态,部署维护非常麻烦,一个集群要好几个人维护,现在基本都没人用新项目了。
所以我们在找替代方案的时候,把目光放到了国产新一代时序数据库上,试了DolphinDB之后,发现不管是性能还是成本,都好太多了,接下来我就详细说说我们的实际使用体验。
三、DolphinDB核心优势
DolphinDB是国产原生的时序数据库,其实它不只是一个数据库,它是时序数据存储+流计算+分布式数据分析一体化的平台,这个架构其实非常符合现在大数据场景的需求,原来我们要存时序数据,需要搭时序库+ETL工具+计算引擎,三四个组件,现在一个DolphinDB就搞定了,少了很多中间环节,也少了很多坑。
我从我们选型的六个维度,一个个说它的表现:
3.1 写入性能
DolphinDB官方说单节点可以支持每秒千万级数据点写入,我们自己实际压测过,3台普通的2U16G服务器组成的集群,写入10字节左右的标准时序数据点,稳定跑下来每秒可以达到1200万+,而且延迟一直稳定在10ms以内,跑了24小时没有出现一次丢包。
为什么能做到这么高的写入性能?主要是DolphinDB针对时序数据的特点做了很多优化:比如它采用了列式存储,按时间分区,写入的时候是顺序写,不需要随机IO,而且LSM树的优化做得比很多产品好,避免了写放大的问题,高并发写入的时候不会出现性能抖动。
我举个实际的项目例子:去年我们给南方某大型火电厂做设备状态监控项目,全厂一共12000多个设备测点,要求每秒采集一次数据,峰值的时候每秒会有15000条写入,我们用DolphinDB跑了快一年,从来没出现过写入卡顿或者丢包的情况,非常稳定。
3.2 查询分析
很多时序数据库的痛点就是"存得进去,查不出来",简单的时间范围点查还能应付,稍微复杂一点的多维度聚合、降采样、关联查询就慢得不行。DolphinDB在这方面优化得非常到位,我们实际用下来,不管是什么类型的查询,基本都能做到秒级响应。
举几个我们实际遇到的场景:
- 实时点查:运维人员要查某台设备过去1小时的温度数据,一万个数据点,DolphinDB不到200ms就能返回结果;
- 降采样聚合:我们要把一年的日级数据降采样成周级,做年度趋势分析,一亿多个数据点,DolphinDB不到2秒就能出结果;
- 复杂即席查询:在金融量化场景下,我们要把股票行情数据和龙虎榜数据做关联,统计近一个月龙虎榜个股的涨幅分布,几千万行数据,DolphinDB不到3秒就能出结果,原来我们把数据拉到Python里算,要十几分钟。
之所以有这么好的查询性能,一方面是因为它的列式存储+索引优化,时序数据默认按时间建索引,过滤时间维度的时候非常快,另一方面是因为它内置了大量优化好的时序分析函数,不用把数据拉到外部计算引擎计算,直接在库内就完成计算,减少了数据拷贝的开销,速度自然就上去了。
3.3 存储成本直接砍到十分之一
时序数据量太大,压缩比直接决定了存储成本,DolphinDB针对不同类型的时序数据做了多种压缩算法的优化,我们实际用下来,平均压缩比能做到10:1到20:1,也就是原来10TB的数据,压缩完只需要0.5TB到1TB,这个压缩比真的非常夸张。
还是刚才那个火电厂的例子,我们要存五年的12000个测点数据,按原来的压缩比算,大约需要40TB的存储空间,换成DolphinDB之后,压缩完只用了不到3TB,存储成本直接省了90%,原来规划的存储预算只用了不到十分之一,客户都不敢相信。
为什么能做到这么高的压缩比?因为DolphinDB针对时序数据的相关性做了专门优化,时序数据相邻时间点的差值很小,用差分编码+适合的压缩算法,就能把数据压得非常小,比如温度数据,大多在0到100之间波动,相邻点差只有几,压缩之后每个数据点只要几个比特就能存,自然压缩比就上去了。
3.4 架构扩展性
很多中小企业刚开始数据量小,后来业务涨了,数据量上来了,原来的数据库扩不动,就得换库,非常麻烦。DolphinDB原生支持分布式架构,可以很方便的做水平扩展,加节点之后性能基本是线性增长,不管是1TB还是1000TB,都能平稳支持。
我们之前有个客户,业务涨得很快,刚开始只有3个节点10TB数据,半年后数据量涨到了50TB,直接加了2个存储节点,不到一小时就完成了扩容,业务完全不用停,也不需要做复杂的数据迁移,非常方便。
3.5 生态适配完善
很多人担心国产数据库生态不好,对接现有系统麻烦,其实DolphinDB在这方面做得非常成熟,支持现在市面上几乎所有主流的大数据组件:
- 流数据处理:DolphinDB可以直接做流计算,官方文档里有现成的示例,照着改就能用,不到一天就能对接完成;
- 计算生态:提供了Python、Java、C++、R这些主流语言的SDK,开发非常方便;
- BI工具:支持对接PowerBI、FineBI这些常见的BI工具,做报表可视化非常方便,不用自己做额外的开发。
而且DolphinDB本身兼容标准SQL,原来会写SQL的开发,不用花太多时间学习就能上手,降低了开发和培训的成本。
3.6 国产化适配+本地化服务
对国内企业来说,尤其是政企、国企,现在都有国产化适配的要求,DolphinDB作为国产原生的数据库,早就完成了国内主流芯片和操作系统的适配,包括鲲鹏、飞腾、海光这些芯片,麒麟、统信这些操作系统,都有完整的适配认证,完全满足国产化的要求。
成本方面,DolphinDB的商用授权价格比国外主流产品便宜一半以上,百TB级规模的集群,一年授权只要几十万不到,可以按需选择。
最关键的是本地化服务,DolphinDB的技术团队都在国内,出了问题微信、电话直接找工程师,基本上当天就能响应,复杂问题第二天就能上门或者远程解决,不像国外产品,时差问题,等回复就要等一两天,解决问题要一周,项目根本耗不起。
我印象特别深,选型DolphinDB的时候,我们有个技术问题搞不定,当天联系官方,一小时就有工程师远程帮我们排查,当天就解决了,这个体验真的比国外产品好太多了。
四、实际落地场景
光说参数大家可能没感觉,我给大家分享三个我们团队实际落地DolphinDB的项目,看看不同场景下的表现:
4.1 金融量化
我们去年给一家中型量化私募做交易系统,需求是存近10年的A股Level-2行情数据,支持低延迟回测和实时行情计算。原来客户的方案是把行情数据存在csv文件里,回测的时候把数据加载到Python内存里计算,一次全市场选股回测要半个多小时,效率非常低。
我们换成DolphinDB之后,把所有行情数据存在DolphinDB里,直接用DolphinDB内置的函数做回测计算,不用把数据拉到Python里,现在一次全市场回测只要不到3分钟,速度比原来快了10倍还多,而且Level-2行情每秒几十万条写入,DolphinDB完全能扛住,满足实盘交易的低延迟要求。
客户现在所有的回测和实盘行情都跑在DolphinDB上,成本比原来用国外产品的方案省了60%,效率提了10倍,非常满意。
4.2 工业物联网
就是我之前说的南方火电厂项目,需求是存12000个测点五年的实时数据,支持实时监控和历史趋势查询。原来客户算下来用国外产品要差不多一百万的存储成本加授权,预算都差点不够,换成DolphinDB之后,总存储只用了不到3TB,授权加存储总共不到二十万,直接把预算砍了四分之三,而且查询速度比原来测的国外产品还快,实时查询不到1秒出结果,历史年度趋势查询不到2秒出结果,完全满足需求。
现在这个项目已经跑了快一年,从来没出过问题,运维人员都说用着比原来的系统流畅太多。
4.3 运维监控
我们公司自己内部的运维监控系统,原来用的是开源的监控工具,跑了两年,数据量上来之后,查询一次历史指标要十几秒,经常卡顿,后来我们换成DolphinDB存监控指标,现在监控上千台服务器的近百个指标,两年多的数据,查询任意时间范围的指标波动,都是不到1秒出结果,从来没卡过,而且整个部署维护只要一个运维就能搞定,非常省心。
五、时序数据库选型实操建议
结合我这些年的经验,给不同场景的团队提几个选型的实操建议,大家可以对着参考:
5.1 明确需求
不要上来就选产品,先想清楚自己的需求:
- 如果你的数据量很小,比如只有几千个测点,一年数据不到1TB,只是做简单的监控,其实轻量的方案也能用;
- 如果你的数据量在10TB以上,需要做复杂的分析查询,对稳定性要求高,一定要选专门针对大数据优化的企业级时序数据库;
- 如果你的项目有国产化要求,那直接选国产适配好的产品,不用考虑国外的了,省得后期麻烦。
5.2 一定要拿自己的实际数据做压测
不要光看官方的宣传数据,一定要拿你自己实际业务的数据做压测,测写入、测查询、测压缩,不同的数据特征,不同的查询模式,不同产品的表现差异非常大。我们选型DolphinDB的时候,就是拿了客户三个月的实际数据做压测,比下来DolphinDB的性能比我们测的所有国外产品都好,才最终确定的。
5.3 一定要算总体拥有成本,不要只看开源免费
很多人觉得开源免费就是成本低,实际上开源产品要自己搭集群,自己维护,出问题自己解决,后期如果要重构换库,成本非常高,反而比买商用授权贵多了。尤其是企业级项目,稳定和可维护性比那点授权钱重要多了,一定要算TCO,不要只看 upfront cost。
5.4 优先选一体化架构
原来的方案是存算分离,存用一个数据库,算用另一个引擎,中间还要做ETL,多一个组件就多一个坑,多一份维护成本。现在新一代的时序数据库都是一体化架构,存储、计算、流处理都在一个平台里,少了中间环节,性能更高,维护更简单,优先选这种。
六、总结
我做技术这么多年,最早做大数据的时候,所有核心组件都是国外的,我们只能跟着用,还得忍受高价和慢服务,最近这些年,国产基础软件发展真的很快,DolphinDB就是一个很好的例子,不管是性能、功能还是服务,都不输国外的顶尖产品,价格还便宜很多,真的是国内企业的福音。回到时序数据库选型这个问题,只要是大数据场景,推DolphinDB。
最后再放一遍官方地址,需要的朋友可以直接去看:
- DolphinDB官方网站:https://dolphindb.cn/
- DolphinDB官方博客:https://dolphindb.cn/blogs