关于 DolphinDB

欢迎阅读 DolphinDB 技术文档!

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

如下为 DolphinDB 的系统架构图:

1. DolphinDB 系统架构图


结合架构图,以下对 DolphinDB 的核心组件进行详细介绍。

分布式架构

  • 自研的分布式存储机制,数据有序分散存储在不同的数据节点上,由控制节点统一精准地管理所有分区的元数据信息,包括分区和副本信息、分区版本号等要素,从而确保各节点上分区数据和副本的一致性,以提升集群的容错性和可扩展性。

  • 提供在线和离线扩展方式、支持横向(添加更多节点)和纵向(增加单个节点的资源)的扩展系统、并且提供无缝高效的数据迁移再平衡技术。

  • 提供控制节点、数据节点和客户端的高可用方案,以确保系统在任何单节点故障下都能提供稳定的服务,从而有力保障业务的连续性。

  • 具备全面灵活的备份与恢复机制,以保障数据安全,为业务保驾护航。

  • 提供高容错性的异步复制方案,其具有低延迟、高吞吐量的特点,方便实现数据跨节点、跨地域的异步复制,从而增强数据资产的安全性。

多模存储引擎

  • 支持 TSDB, OLAP存储引擎。分别满足不同场景需求:
    • TSDB 引擎采用 PAX 行列混存,提供性能卓越的大数据分析与点查分析。
    • OLAP 引擎采用列式存储,与 TSDB 引擎相比,更适合用于对时间跨度较长的某些列数据进行聚合计算。
  • 保证事务ACID 特性,提供快照级别的隔离机制。
  • 支持多种无损数据压缩算法,包括 LZ4, delta-of-delta, zstd, chimp,字典压缩等,压缩率可达 4:1~10:1。
  • 支持分级存储,区分热数据和冷数据存储,减少存储成本。

批计算处理

  • 使用内嵌的分布式文件系统,不仅简化数据管理流程,还显著增强了分布式计算环境的负载均衡能力,同时提供了强大的容错机制,确保数据的高可用性和计算任务的连续执行。
  • 内置 2000+ 多领域、多种类、多功能的函数,覆盖广泛的数据处理需求,并开放接口支持用户自定义函数,帮助用户轻松应对各类复杂应用场景的挑战。
  • 分布式计算框架集成了 pipelineMap-Reduce 和迭代计算等多种计算模型,为用户提供性能最优的一站式多样化数据解决方案。
  • 通过 SQL 语言与函数、表达式的无缝结合,以及向量化计算,开拓性地助力用户直接在数据库层面进行复杂的数据分析及运算,从而显著提升数据处理的速度和效率。
  • 充分利用多机多核 CPU 资源,凭借精细的并行处理策略与高效的任务调度算法,实现了对海量数据的快速处理。

流数据处理

  • 支持通过流数据表进行流数据订阅与发布。

  • 内置时间序列聚合横截面处理响应式状态处理异常检测会话窗口多表关联等流式计算引擎,提供滑动窗口累计窗口统计函数等算子。用户可通过串联调用计算引擎构建高效强大的计算流水线,或借助流数据引擎解析器(streamEngineParser)自动构建计算流水线,从而满足复杂多变的业务需求。

  • 支持回放历史数据,支持 1 对 1,N 对 N,N 对 1 三种回放形式。

  • 支持流批一体,即将研发环境中基于历史数据建模分析得到的因子或表达式直接应用于生产环境的实时数据中,并保证流计算的结果和批量计算完全一致。该功能可为用户的测试、验证和回溯分析提供极大便利。

  • 支持从多种数据源接入实时流数据实时写入 DolphinDB 中,并自动处理数据格式转换和同步问题。

  • 实现亚毫秒级的延迟,确保实时数据处理的极致性能。

多范式编程语言

  • DolphinDB 内置图灵完备的编程语言。其支持命令式编程、函数式编程、向量化编程、SQL 编程等多范式编程语言,凭借语言简洁灵活、表达能力强的优势,帮助用户实现开发效率的飞跃式提升。
  • 支持 SQL-92 标准 ,更在此基础上扩展了如组内计算、透视表等多种功能。同时兼容 Oracle 和 MySQL 等主流 SQL 方言。
  • Python Parser 支持 Python 的部分原生对象(dict, list ,tuple, set)、语法以及 pandas 库的部分功能。用户能够在 DolphinDB 客户端中直接使用 Python 语法来访问和操作 DolphinDB 的数据。(点击阅读 Python Parser 在金融量化分析场景的应用

良好生态