多读书多实践,勤思考善领悟

初识DolphinDB、KDB+ 时序数据库

本文于1635天之前发表,文中内容可能已经过时。

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+ 的认知

  • kdb+作为上一代时序数据库,最大的问题是为高性能计算机设计的,无法运行在pc服务器组成的分布式系统上。
  • kdb+差不多是20年前开发的高性能时间序列数据库。除了速度快和语言表达能力强,价格昂贵和难以使用同样的出名。
  • KDB+是上个时代投行标配,学习曲线陡峭。
  • kdb+有32位、64位个人免费版。
  • 不支持Grafana连接。
  • kdb的很大的问题在于Arthur Whitney退休了,这个系统基本上就到此为止了,不会有啥大的改进了。First Derivatives买过来以后基本是在推广应用领域。现在新的公司上系统,除非很多人以前用过kdb,基本不会考虑它了。

学习资料