个人印象:ScyllaDB和clickhouse在金融时序数据的处理上不如kdb+和dolphindb。
kdb+是一款性能极佳的时间序列数据库。它是美国华尔街各大金融机构20多年来处理大规模数据的首选系统。它通常用于高频交易,非常适用于高速存储、分析、处理和检索大型数据集。在存取和实时分析海量股票、外汇等高频数据这个领域内,唯kdb+独尊。kdb+还提供了专门的编程语言q语言,它天生具有处理大规模数据的能力。
DolphinDB作为新一代的高性能时间序列数据库,与kdb+在编程语言和技术架构上有非常大的区别:
DolphinDB的编程语言与Python和SQL非常相似,非常简单易学,而很多使用过kdb+的人都表示它的q语言极其晦涩难懂,学习曲线陡峭,难以掌握。2. 在技术架构上,DolphinDB采用了分布式文件系统和分布式计算,可以通过增加集群的物理服务器来扩展分布式计算的速度。知乎上有篇《揭秘高性能DolphinDB》(+是为高性能计算机设计的,对服务器的要求较高。它没有集群的概念,也就是说它无法在多个物理服务器组成的分布式文件系统上运行。
kdb+号称是速度最快的时序数据库,很多客户和合作伙伴一直好奇DolphinDB与kdb+的性能对比。根据kdb+的license合规性要求,我们不提供官方的性能评测报告。最近有数据库领域的知乎网友使用纽约证券交易所的公开数据对DolphinDB和kdb+进行了性能测试对比。感兴趣的朋友可以查看知乎文章《Kdb+有可能不再是最快的时序数据库?》()。
根据网友的测试结果显示,
在加载数据和保存数据,“DolphinDB比kdb+要略胜一筹”。
2. 在网友测试的16种数据查询和38种计算任务中,“在数据没有分区的情况下,DolphinDB查询的速度是kdb+的2.5倍;在数据分区的情况下,DolphinDB查询的速度是kdb+的2倍”,“在其中的35种测试中,DolphinDB比kdb+表现得更出色。DolphinDB计算性能指标的中位数是kdb+的2.7倍。在包含NULL值的整数排序,移动最大值和移动平均值这些测试项目上,DolphinDB的的速度是kdb+的10倍以上 ”。
3.“左连接的时候,DolphindB稍微慢于kdb+,但在进行等值连接、asof join和窗口连接的情况下,DolphinDB比kdb+的速度明显要快得多。对于左连接,kdb+的速度大约比DolphinDB快10%~30%,对于等值连接,DolphinDB的速度大约是kdb+的2~4倍,对于asof join,DolphinDB的速度大约是kdb+的4~8倍,对于在窗口连接中使用常用的聚合函数(min、max、first、last、avg、wavg),DolphinDB比kdb+快1个数量级”。
最后测评的结论是,“DolphinDB表现着实耀眼,大部分场景下都比kdb+要快,小部分场景与kdb+相差不大。”