初识DolphinDB、KDB+ 时序数据库
本文于2021天之前发表,文中内容可能已经过时。
DolphinDB
概述
DolphinDB是一个速度极快的时序数据库和数据分析系统,可无限拓展。 它具有内置的并行和分布式计算功能,可用于实时数据处理和多节点计算分析。
DolphinDB支持常用的数据结构,包括向量、矩阵、字典和数据表以及相应的操作和查询。 它还提供了一种易于使用的脚本语言,方便用户以高速有效的方式开发自己的应用程序。 在DolphinDB中,数据库和开发语言无缝集成,因此DolphinDB可达到毫秒级的响应速度,为实时应用程序提供最佳性能。
DolphinDB中的脚本语言与Python或R非常相似。如果您对Python或R有一些了解,那么您将会觉得DolphinDB脚本非常容易上手。DolphinDB还支持与标准SQL非常相似的SQL语法。
DolphinDB是用C++编写的。 DolphinDB提供Java、Python、C++、C#和Excel的API,方便用户与已有应用程序集成。
性能优异
和其他很多语言一样,DolphinDB的脚本语言是解释执行的,比如Python、R、Matlab、SAS等。但是,由于DolphinDB做到了以下几点,所以DolphinDB的速度极快。
- DolphinDB无缝连接了高性能时间序列数据库、轻量级的分布式计算框架和功能齐全的向量化编程语言,最大程度地减少了功能模块间的数据移动。
- DolphinDB对所有内置函数和命令,无论是最基本的排序还是高阶函数(如表连接),都做了性能上的优化。
- DolphinDB使用自带的内存管理系统来优化性能。在处理大数据时,根据具体任务的计算要求,动态分配和释放内存。
- DolphinDB的脚本语言是向量语言,并提供函数化编程。它在数据管理和分析方面具有很强的表达能力,所以在编译执行时的系统耗费的时间与资源非常小。
- DolphinDB用C++编写。在DolphinDB里,所有并行或迭代的计算都使用轻量级的线程模式,这要比用Java编写的进程模式有更好的性能。
对DolphinDB 的认知
- 国产软件:DolphinDB,公司位于杭州市。
- 社区版长期免费:目前可以下载的版本显示试用期是2个月,不过官方消息,后续会推出长期license。
- 学习资料丰富:官网本身就提供了大量详细教程及手册。
- 支持Python和sql:可以良好对接已有知识。
- 支持Grafana连接DolphinDB数据源。
- 官方宣传性能全面超越kdb+,个人试用确实性能还不错,比InfluxDB快多了。
学习资料
KDB+
KDB+ 是专门处理金融tick数据的时序数据库。
关于KDB+ 的问答
- 金融分析量化系统,高频交易程序数据库通常采用哪种方式存贮数据?
- Kdb+有可能不再是最快的时序数据库?
- Quant 如何运算百万行的数据?
- 请问有人熟悉Q/KDB吗?
- q语言与量化分析利器kdb+
- KDB/Q是什么语言?
对KDB+ 的认知
- kdb+作为上一代时序数据库,最大的问题是为高性能计算机设计的,无法运行在pc服务器组成的分布式系统上。
- kdb+差不多是20年前开发的高性能时间序列数据库。除了速度快和语言表达能力强,价格昂贵和难以使用同样的出名。
- KDB+是上个时代投行标配,学习曲线陡峭。
- kdb+有32位、64位个人免费版。
- 不支持Grafana连接。
- kdb的很大的问题在于Arthur Whitney退休了,这个系统基本上就到此为止了,不会有啥大的改进了。First Derivatives买过来以后基本是在推广应用领域。现在新的公司上系统,除非很多人以前用过kdb,基本不会考虑它了。