首页 > 数据库 > 国内数据库 > 券商头部都用的金融时序数据库DolphinDB



DolphinDB是一款为海量时序数据场景而生的高性能分布式数据库。目前最成功的是在金融时序场景,其他场景比如电力、烟草、新能源等工业场景…他们也已经有了很多案例。它不仅在架构设计上兼顾了扩展性与稳定性,更通过独创的存储引擎技术,实现了真正的HTAP能力,能够同时高效处理高并发的实时事务与复杂的分析查询。在我简单的学习中能初步了解他们的时序和分析的设计好在哪里?
LSM——Tree这种就是天生应对大量写入的,而时序场景第一个要面对的就是写的压力。而至于读不是LSM-Tree的强项,DolphinDB是用列存去支持的。
其实对于AP系统场景如何使用索引也是一个学问,但是这不是技术壁垒点。大家都是用索引那么SQL效率也应该差不多,至少不是数量级的差异。
真正有差异的地方是金融工程函数多 开箱即用 有流计算引擎 比如订单簿引擎 可以直接在实际场景中落地。也就是说更加懂金融业务做了很多定制化的函数这才是护城河。
例如看到这个我第一反应是懵的(贝塔分布)
cdfBeta(alpha, beta, X) 返回 Beta 分布的累计密度函数的值。
cdfBeta(2.31, 0.627, [0.001, 0.5, 0.999]);
// output
[0, 0.116056, 0.976416]
借助AI得到如下分析
在 x = 0.001 处,累积概率几乎为 0(说明该分布几乎不包含小于 0.001 的概率质量)。
在 x = 0.5 处,累积概率约为 0.116,即只有约 11.6% 的概率落在 0.5 以下。
在 x = 0.999 处,累积概率约为 0.976,即 97.6% 的概率落在 0.999 以下,仍有约 2.4% 的概率超过 0.999(因为 β 小,分布尾部延伸到 1)。
以上可能通过其他方式也能去做,但是这里直接提供现场的函数。这就像做证明题你可能需要去做很多证明,而你的同学知道有一个定理,直接用了。这样少了很多步骤。
这说的只是冰山一角。这些自定义的金融场景的工程化函数还有很多。


上面这些图是 AI 从官网文档上抓的从这里可以看出,发力的重点和规模化了吧。这些创造能力极大简化了用户的使用。都是深入贴合和金融业务的定制化。
DolphinDB的HTAP能力并非通过单一的“万 能”引擎实现,而是通过为不同工作负载量身定制的双存储引擎来达成的。
TSDB引擎:为时序与点查优化,是类似TP场景的解决方案
这个引擎的核心是基于LSM-Tree模型的深度定制。它创新性地引入了排序列的概念,用户可以将时间戳、设备ID等关键字段指定为排序列,数据在分区内即按此排序。这本质上构建了一个高效的排序键索引,使得基于这些字段的等值或范围查询速度极快,非常适合监控、金融等场景下的高频点查。
在存储结构上,它采用了PAX行列混合存储格式。数据文件内部先按排序键分组,组内再按列独立压缩存储。这种设计巧妙地结合了行存利于键值检索和列存利于压缩扫描的双重优势。配合LSM的多层合并与去重策略,它能很好地处理时序数据常见的乱序写入和更新操作。
OLAP引擎:为分析扫描而生,是纯AP场景的解决方案
这是一个纯粹的列式存储引擎。每个数据列都被单独存储和压缩。当进行统计分析时,系统只需读取查询涉及的列,避免了读取整行数据的IO浪费,特别适合进行大规模的历史数据扫描、聚合和关联分析。写入时同样经过缓存和日志缓冲,以追加方式落到列文件,保证了写入性能。
用户可以根据业务表的特点灵活选择引擎:需要高频更新和点查的表选用TSDB引擎;用于复杂报表和深度分析的宽表则选用OLAP引擎。在同一套数据库内混合使用这两种引擎,正是DolphinDB实现HTAP的秘诀。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/637517/viewspace-3112077/ ,如需转载,请注明出处,否则将追究法律责任。