时序数据浪潮下,私募基金该如何进行数据库选型?

面对飞速增长的时序数据,传统关系型数据库难以支撑海量高频的数据处理。尤其在追求稳定性的金融行业,面对每日高达 GB 级新增数据的高速读写、实时计算等需求,多家金融机构开始寻求新一代的解决方案。其中,私募基金也面临着新一轮的业务挑战——行情存储,复杂计算,实时交易……

在这场时序数据的浪潮下,同样作为弄潮人的私募基金究竟该如何进行数据库选型?

时序数据库作为专门处理时序数据的新一代利器,可以实时处理海量数据,同时对数据进行复杂的分析计算。时序数据库不仅仅是关系型数据库的市场竞争者,更是在改变整个数据库行业的发展方向与格局。

在实际的数据库选型中,私募基金需要关注哪些数据库?又该从哪些维度对数据库进行对比测试?本文摘选 WILLIAM O'NEIL、辰钰资本和睿凝资本三家优秀私募的数据库选型经验,希望为各位读者提供些许参考。

WILLIAM O'NEIL:两家争霸,非 Kdb+即 DolphinDB?

下文引述自 WILLIAM O'NEIL 的高级工程师陆强

“之前我们研究中低频数据,主要使用 Python 进行分析计算。当公司有处理高频数据的需求时,我们发现这套系统并不能满足对数据处理的理想需求,尤其在数据分析方面,这套系统的反应速度非常慢。

是我们在市面上寻找匹配公司需求的新产品,希望这款产品能够实现高效处理时序数据,并且方便未来扩展。

经过一番市场调研与产品性能测试,我们在选型会议上讨论了三套方案。

第一套方案是 Kdb+。由于 Kdb+语言晦涩,学习成本过高,这套方案并没有被采纳。

第二套方案是 NoSQL Cassandra。经过讨论,这套方案需要额外招人进行系统的重构搭建,并且后续需要专人进行维护。这会极大增加成本,所以并没有采用。

第三套方案是 DolphinDB。当时是21年初,市面上已经出现了金融行业处理时序数据“非 Kdb+即 DolphinDB”的两家争霸趋势。我在会议上对照 Kdb+的算法例子做了一些 DolphinDB 的性能测试,然后展示了同样的例子使用 DolphinDB 语言来写,脚本明显会变得更加简洁。在一些例子中,DolphinDB 的性能超越了Kdb+。当时基金经理们大多熟悉 Kdb+,我在会议上做完演示后,他们也非常惊讶于 DolphinDB 的优秀性能。

最后在方案表决时,DolphinDB 以压倒性优势胜出。”

更多案例内容点击​​DolphinDB 助力 WILLIAM O’NEIL 笑傲股市_DolphinDB的技术博客_51CTO博客​​

时序数据浪潮下,私募基金该如何进行数据库选型?

辰钰资本:存储大 PK,谁才是处理高频交易数据的专家?

下文引述自辰钰投资董事长李栋、董事陈志凌、数据库工程师苏虎臣

“在使用 DolphinDB 前,我们先后使用过文件系统、MySQL 和 PostgreSQL 存储数据。

之前使用文件系统会先将数据落在本地,然后用 Python 进行计算。但是文件系统在实际应用中存在一些不足。首先,在存储过程中文件系统的 IO 是一个很大的瓶颈。其次,在处理大量数据时,文件系统过于庞大,进行存储、查询等操作费时且费力。同样地,MySQL 和 PostgreSQL 这两个数据库在实际测试中都非常慢。如果要处理的数据量很大,系统甚至会无法工作。

因此,我们想要搭建一套新的系统。主要考虑的数据库有 MongoDB、Kdb+和 DolphinDB。

由于 MongoDB 缺乏函数支持、旧代码改起来比较费劲,KDB+的语言较难学习,整体上手很慢,所以我们放弃了这两个数据库。

反观 DolphinDB,性能比 Kdb+更好,语言类 SQL 容易上手,同时提供丰富的金融函数。在低频转向高频的过程中,原来的系统无法处理骤然剧增的数据,但 DolphinDB 是这方面的专家,相较之下新系统的速度可以提升10倍左右。在处理逐笔数据时,相比之前使用过的文件系统,现在的系统效率得到大大提升,并且使用起来也非常方便。此外,DolphinDB 作为一站式数据库,综合了分布式存储、编程建模和高性能计算,可以在研究时快速抽取某些特定的数据,这大大加快了我们的研究进度。”

更多案例内容点击​​如何提升量化投研效率?来自辰钰投资的案例分享_DolphinDB的技术博客_51CTO博客​​

时序数据浪潮下,私募基金该如何进行数据库选型?

睿凝资本:性能之外,我们还应关注哪些方面?

下文引述自睿凝资本 CEO 王睿、CTO Jack

“针对业务需求,我们参考 DB-Engines 的排名将 InfluxDB、Kdb+和 DolphinDB 列入选型名单,并且从数据的批量写入、查询和实时计算等方面进行测试对比。根据实际结果来看,DolphinDB 作为当时国内排名第1、世界排名第12(目前排名第8)的时序数据库,性能远远超过其他几家排名更高的数据库。

  • 除了在批量写入、查询和实时计算等方面的性能卓越外,DolphinDB 已经超越了传统数据库简单的存储和查询功能,内置众多量化金融常用的数据分析函数,可以充分满足我们编程建模的需求。
  • 在学习成本方面,DolphinDB 支持类标准 SQL 的语法,脚本语言类似 Python。相比学习 Kdb+晦涩的脚本语言,我们的技术人员尤其是新人可以更快上手 DolphinDB,这大大节省了技术人员的培训成本和使用成本。
  • 在流计算方面,DolphinDB 自带优秀的流数据引擎,非常有利于研发的策略在生产环境落地。
  • 在技术服务方面,DolphinDB 具有国内专业的技术支持团队,可以及时解答我们的问题,也会配合我们的需求开发新功能。

综合考虑后,我们选择了性能强悍的国产数据库 DolphinDB。”

更多案例内容点击​​实时行情难处理?睿凝资本选择DolphinDB解决流数据难题_DolphinDB的技术博客_51CTO博客​​

时序数据浪潮下,私募基金该如何进行数据库选型?

时序数据库到底怎么选?

在数据库选型时,我们不仅要关注数据库在批量写入、查询和实时计算等方面的性能表现,还应该考虑数据库的时序特性与金融属性,同时要了解产品的学习曲线与技术服务。使用一款优秀便捷的数据库不仅可以有效提升团队的研发效率,同时能帮助我们把握更多的投资机会、挖掘更大的投资价值。