学习篇 | DolphinDB高性能时序数据库的核心特性与典型应用场景

面对海量时序数据,传统数据库系统已不堪重负,而DolphinDB正为此而生。

图片

DolphinDB 是一款高性能分布式时序数据库,集成了实时分析与流处理能力,能有效处理海量时序数据。在金融交易系统、物联网监测平台等场景中,常常需要处理数以亿计的时间序列数据点。这些数据不仅规模庞大,还需要实时的分析和处理。

在此背景下,DolphinDB作为一款完全自主研发的高性能分布式时序数据库,以其卓越的性能和一站式解决方案,成为了金融和物联网领域处理时序数据的理想选择。

表为其核心特性和主要应用场景:

核心维度

核心特性摘要

主要应用场景

数据存储

多模存储引擎(TSDB, OLAP, PKEY等);高压缩率;分布式架构支持水平扩展与高可用

海量历史时序数据存储(如金融行情数据、物联网传感器数据)

计算分析

内置2000+函数;分布式并行计算框架;支持 SQL 与多种编程范式

金融因子计算、大数据批量处理与分析、AI特征工程

实时处理

亚毫秒级延迟的流处理引擎;支持流批一体

实时行情中心、实时监控与预警、实时特征工程

生态集成

提供多语言API(Python/C++/Java等);支持模块与插件;集成 Grafana 等工具

对接现有数据分析与可视化生态,简化系统架构

1.首先了解 DolphinDB是什么?

DolphinDB是基于高性能时序数据库,支持复杂分析与流计算的实时计算平台。其针对数据存储、统计分析、实时计算和机器学习等多种场景需求,提供高效读写、快速查询、复杂分析、分布式并行计算、低延迟流处理等功能,支持高可用与水平扩展。

与传统数据库不同,DolphinDB设计理念出发点是时序数据场景优化,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为海量数据(特别是时间序列数据)提供快速存储、检索、分析及计算的一站式解决方案。

2. DolphinDB有哪些核心特性

2.1 分布式架构:DolphinDB采用自研分布式存储机制,该架构提供在线和离线扩展方式、支持横向(添加更多节点)和纵向(增加单个节点的资源)的扩展系统,提供无缝高效的数据迁移和再平衡技术。通过多副本机制保障集群可用性。

2.2 多模存储引擎:DolphinDB支持多种存储引擎和应用场景:

TSDB引擎:采用PAX行列混存,提供性能卓越的大数据分析与点查分析

OLAP引擎:采用列式存储,更适合用于对时间跨度较长的某些列数据进行聚合计算

PKEY引擎:提供主键唯一性保证,支持实时更新和高效查询,满足从OLTP数据库的主键表CDC到DolphinDB中进行数据分析的需求

IMOLTP引擎:内存数据库,以行存的形式来组织数据,支持事务,同时通过创建B+树索引的方式应对高频度、高并发的更新和查询操作

VECTORDB引擎:支持对向量数据创建索引,并实现了快速的近似最近邻搜索,满足对大规模向量数据高效检索和响应的需求

事务ACID特性,提供快照级别的隔离机制,并支持多种无损数据压缩算法,包括LZ4、delta-of-delta、zstd、chimp、字典压缩等,压缩率可达4:1~10:1。

2.3 流批一体处理DolphinDB的"流批一体"设计允许用户使用同一套代码处理历史数据和实时数据。这不仅能保证计算结果的一致性,还简化了从研发到生产的部署流程。例如,在量化金融中,基于历史数据研发的交易因子可以直接应用于生产环境处理实时行情。DolphinDB可接受在历史数据批量处理中编写的表达式或函数作为输入。用户只需要在历史数据的批量计算中验证正确性,就可保证流数据的实时计算正确性。

DolphinDB的流数据处理支持亚毫秒级的延迟,内置时间序列聚合、横截面处理、响应式状态处理、异常检测、会话窗口、多表关联等流式计算引擎。DolphinDB支持从多种数据源接入实时流数据实时写入,并自动处理数据格式转换和同步问题。

2.4 内置计算功能

DolphinDB内置了2000+多领域、多种类、多功能的函数,覆盖广泛的数据处理需求。函数包括不限于:时序处理函数、窗口函数、聚合函数、统计函数、分布函数、机器学习函数、分布式计算函数。DolphinDB支持多种计算模型如pipeline、Map-Reduce和迭代计算。通过SQL语言与函数、表达式的无缝结合,及向量化计算,用户可直接在数据库层面进行复杂的数据分析及运算,从而显著提升数据处理的速度和效率。

2.5 多范式编程语言

DolphinDB内置图灵完备的编程语言,支持命令式编程、函数式编程、向量化编程、SQL编程等多范式编程语言。语言语法与SQL和Python非常相似,易于学习,同时表达能力强,支持用户自定义函数和插件扩展现有功能。

DolphinDB支持SQL-92标准,并在此基础上扩展了如组内计算、透视表等多种功能。同时兼容Oracle和MySQL等主流SQL方言。此外,Python Parser支持Python的部分原生对象(dict、list、tuple、set)、语法以及pandas库的部分功能,用户能够在DolphinDB客户端中直接使用Python语法来访问和操作DolphinDB的数据。

2.6 完善生态系统

DolphinDB提供丰富全面的SDK生态,包括Python、C++、C#、Go、R和JavaScript等多种主流编程语言。提供多种客户端,包括Web集群管理器、DolphinDB VS Code、JAVA GUI、Jupyter Notebook、DolphinDB终端。DolphinDB支持多领域、多种类、多方式的插件,涵盖数据存取、行情接入、金融相关、消息队列、数值计算、机器学习、网络、云存储、文件等。集成专属的DataX、Grafana等第三方工具,可衔接数据传输与可视化等多种解决方案。

3. DolphinDB的典型应用场景

3.1 在金融领域,DolphinDB被广泛应用于多个场景:

1.实时行情中心搭建:DolphinDB的流数据功能非常适合吞吐量大、时延要求高的实时行情处理场景。它可实现行情历史数据毫秒级查询与秒级计算响应,以及亚毫秒级实时因子计算。

2.量化交易中的实时多因子计算:DolphinDB的响应式状态引擎可处理有状态的复杂因子计算,这些因子不仅与当前的多个指标有关,而且与多个指标的历史状态相关。与传统计算方式相比,DolphinDB的性能有10-1000倍的提升。

3.量化交易订单实时监控:通过内置的CEP引擎(Complex Event Processing,复杂事件处理),DolphinDB能够接收实时数据流,定义事件并从事件流中检测特定事件,进而对满足指定规则的事件执行预设的操作。

4.AI算法交易中的实时特征工程:DolphinDB能够实时处理流式数据,构建AI算法交易所需的特征工程和模型在线推断。

3.2 AI与大数据分析:丰富的内置函数和并行计算能力,可以加速机器学习特征准备过程。向量化分析:VECTORDB引擎支持对向量数据创建索引,并实现了快速的近似最近邻搜索,满足对大规模向量数据高效检索和响应的需求。

3.3 云边协同架构

DolphinDB支持云边协同部署,边端通过remoteRun函数将需要执行的函数代码等发送到云端,使函数在云端执行。

使用remoteRun传输数据时可选择压缩方式,目前压缩方式有lz4与zstd压缩两种。lz4压缩方案压缩比低,但是在云端解压快;zstd压缩的压缩比高,但是解压速度慢。

这种架构特别适合资源受限的边端环境,实测表明即使在边端设备配置为4C8G的情况下,DolphinDB也能高效完成数据同步任务。

4. DolphinDB还有哪些优势

4.1 一站式解决方案

与传统方案相比,DolphinDB的一个显著优势是提供了一站式数据解决方案。可进行实时计算和预警,并把结果展示给操作员或直接反馈给机器,同时需要将这些原始的工艺数据保存到数据库,供在线或离线查询。可在DolphinDB一个系统内完成。

对于系统集成商或企业来说,在一套系统上进行开发和维护,比起在多套系统上集成、开发和维护,无论是开发成本、维护成本,还是硬件的采购成本都会低得多。

4.2 卓越的性能表现

DolphinDB的主要优势是"快",主要体现在四个方面:开发快、运行快、部署快和学习快。

在同样的硬件设备上,关系型数据库(Oracle、SQL Server)可支持亿级的时序数据,DolphinDB可支持万亿级的时序数据。其流数据处理能力可实现亚毫秒级的延迟,批量计算则充分利用多机多核CPU资源,凭借精细的并行处理策略与高效的任务调度算法,实现对海量数据的快速处理。

4.3 轻量级跨平台部署

DolphinDB是一个非常轻量级的系统,用GNU C++开发,系统大小仅20余兆,无任何依赖,可部署在Linux、Windows等多种平台上;极大节约了系统集成商的开发和维护成本。

4.4 安全可控

DolphinDB是一个从零开始,完全自主研发的分布式时序数据库。从底层的分布式文件系统和存储引擎,到数据库和核心类库,到分布式计算引擎,到脚本语言,到各种编程语言的开发接口,甚至外围的开发集成环境GUI、集群管理工具都是百分百自主研发的,无任何外部依赖,安全可控。

文章小结

DolphinDB作为一款高性能分布式时序数据库,凭借其分布式架构、多模存储引擎、流批一体处理能力等核心特性,在金融和物联网等领域展现出强大优势。不仅解决了海量历史数据的存储和批计算问题,还广泛支持了流数据的实时计算和实时存储,真正实现了一站式大数据分析处理。

这对于正在寻找高性能时序数据处理方案的企业和开发者来说,DolphinDB是一个值得考虑的选择。尤其面向需要处理海量时序数据、有实时计算要求、希望降低系统复杂度和总拥有成本的场景。

文章至此。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值