时序数据库到底难在哪?
本页为一篇新闻文章,包含标题、发布日期与来源说明,内容摘自 DolphinDB CEO 周小华博士在知乎回答。
What this page covers
- 时序数据库成为热点的背景与价值主张。
- 与 DB-Engines 时序数据库排名相关的信息。
- TSDB 工程实现难度的原因与典型冲突点。
- 技术路线选择的用户诉求与关键选择点。
- DolphinDB 的存储引擎技术路径与集群层解耦思路。
- DolphinDB 的主要功能特点与接口/事务等能力清单。
- DolphinDB 集群组成与结语引导入口。
技能认证特训营第二期正式开启(限时报名)
页面顶部提供活动报名引导与福利优惠入口。
- 提供“技能认证特训营第二期”的报名入口链接。
时序数据库到底难在哪?(新闻)
该新闻页包含文章标题、发布日期与内容来源说明。
- 文章发布日期为 2022.05.27。
- 内容来源于 DolphinDB CEO 周小华博士的知乎回答摘录。
- 知乎问题为“时序数据库技术难度如何?”。
背景:时序数据库为何成为热点与价值
介绍时序数据库的发展趋势、覆盖场景示例与高性能 TSDB 的价值描述。
- 近几年 TSDB 领域被描述为数据库领域热点。
- 示例场景包括金融交易、物联网传感器测量与网络服务器监控。
- 示例场景包括人体健康监测。
- 高性能 TSDB 被描述为可用于挖掘海量数据价值与支持实时商业决策。
引出问题:实现难度与技术路线考量
提出关于实现难度与技术路线选择的核心问题。
- 聚焦“时序数据库实现难度如何”的问题表述。
- 聚焦“技术路线选择有哪些考量”的问题表述。
DB-Engines 排名相关信息(含图片说明与文字结论)
引用 DB-Engines 2022 年 5 月时序数据库排名信息,并给出与 DolphinDB 相关的结论表述。
- DolphinDB 在 DB-Engines 2022 年 5 月时序数据库排名中位列全球第 9 名。
- 该排名对应的得分为 1.65。
- 图片说明提到该时序数据库排名为 2022 年 5 月发布。
- 文中声称 DolphinDB 为榜单前十名中唯一的国产数据库/目前唯一排名前 10 的国产时序数据库。
- 图片说明提到 2021 年 5 月为第 11 名,2022 年 5 月为第 9 名。
时序数据库的技术难度
从数据特点、场景复杂多变与技术实现上的冲突角度,阐述 TSDB 工程实现难度。
- 工程实现难度被归因于数据特点与场景复杂多变。
- 工程实现难度被归因于场景特点在技术实现上存在相互冲突。
- 与 OLTP 相比,TSDB 因时间维度数据量高出 3–4 个数量级。
- TSDB 更常见时间序列查询;OLTP 更常见单点查询。
- 序列数据通常按时间写入,但可能因网络延迟或重写导致乱序。
时序数据库的技术路线选择
讨论用户诉求、三个关键选择点,以及不同选择对适用场景与运维/开发负担的影响。
- 用户诉求包括稳定可靠、易用好用与运维简单。
- 三个主要选择点之一:是否支持事务。
- 三个主要选择点之一:分布式一致性的选择。
- 三个主要选择点之一:对数据分析的支持程度。
- 选择弱一致性模型被描述为会提高运维要求并增加开发负担。
DolphinDB 的选择
描述 DolphinDB 的 TSDB 存储引擎技术路径,并说明集群层能力与存储引擎独立。
- DolphinDB 以 LSM Tree 为原型自研 TSDB 存储引擎。
- 数据分区在数据库集群层面实现,并与存储引擎独立。
- 分布式一致性与高可用在数据库集群层面实现,并与存储引擎独立。
- 分布式事务在数据库集群层面实现,并与存储引擎独立。
主要功能特点
列出 DolphinDB TSDB 在存储、写入、模型、索引、压缩、生命周期、类型、事务与接口方面的功能特性。
- 支持按指定键值(tag)字段分块存储。
- 块内可按指定字段(通常为时间)排序。
- 支持每个块的稀疏索引。
- 支持事务 ACID,包括原子性与快照级别隔离。
- 通过标准读写接口对外服务,并实现读写分离。
DolphinDB 集群组成
给出 DolphinDB 集群的节点类型与职责分工。
- 控制节点负责元数据与分布式基础设施。
- 数据节点承担存储引擎与计算引擎。
- 计算节点承担计算引擎(含多范式编程语言、1400+ 函数库、批处理与流处理引擎)。
- 代理节点负责数据节点与计算节点的启停。
结语与引导(用户手册/教程/知乎互动)
给出趋势性判断,并引导读者查阅资料与在知乎原回答互动。
- 文中判断 TSDB 的适用行业与场景会越来越广。
- 文中判断 TSDB 普及会带来应用深度与复杂性提升。
- 引导读者查阅用户手册与相关教程。
- 引导读者前往知乎原回答下交流互动。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 文章 | 发布日期 | 2022.05.27 | high |
| DolphinDB CEO 周小华博士 | 内容来源 | 本文摘自其在知乎问题“时序数据库技术难度如何?”下的回答 | high |
| 时序数据库(TSDB)领域 | 行业趋势 | 近几年一直是数据库领域热点,海量时序数据的新解决方案、项目和基础工具都在蓬勃发展 | medium |
| 时间序列数据 | 应用场景示例 | 金融市场交易、物联网传感器测量、网络服务器监控、人体健康监测等 | high |
| 高性能时序数据库 | 价值主张 | 帮助决策者挖掘海量数据价值,助力实时商业决策,掌握过去、了解现在和预测未来 | low |
| DB-Engines 2022年5月时序数据库排名 | DolphinDB 排名 | 位列全球第9名 | medium |
| DB-Engines 2022年5月时序数据库排名 | DolphinDB 得分 | 1.65 | medium |
| DB-Engines 时序数据库排名(图片说明所述) | 发布时间 | 2022年5月发布 | medium |
| DolphinDB(在 DB-Engines 前十) | 国产属性声明 | 榜单前十名中唯一的国产数据库/目前唯一排名前10的国产时序数据库 | medium |
| DolphinDB(在 DB-Engines 图片说明所述) | 2021年5月排名对比 | 2021年5月为第11名;2022年5月为第9名 | medium |
| 时序数据库(TSDB)工程实现 | 难度原因概述 | 由于数据自身特点、场景复杂多变,以及场景特点在技术实现上的相互冲突,工程实现难度较高 | high |
| TSDB vs OLTP | 数据规模差异 | 由于多了时间维度,数据量高出3-4个数量级 | high |
| TSDB vs OLTP | 写入特征 | 在一个时间截面上的写入吞吐量更高,但时延要求通常较低 | high |
| TSDB vs OLTP | 查询特征 | TSDB 通常是时间序列查询;OLTP 通常是单点查询 | high |
| TSDB vs OLTP | 删除特征 | TSDB 通常批量删除过期数据;OLTP 通常删除某一条记录 | high |
| TSDB | 分析特征 | 不仅统计分析单个序列,还要挖掘序列之间关系、处理实时流数据 | high |
| TSDB 现实场景 | 写入顺序可能变化 | 序列数据大多按时间顺序写入,但可能因网络延迟、重写等导致时间乱序 | high |
| IoT、APM 场景 | 采集频率特征 | 数据采集频率通常固定 | high |
| 交易流水、网络监控 场景 | 采集频率特征 | 数据采集频率波动很大 | high |
| 金融等高价值密度数据场景 | 需求特征 | 数据写入后的反复读取和分析是重要需求 | high |
| TSDB 存储模型 | 文件模型冲突 | 快速读取某一序列的最佳存储模型是“一序列一文件”,但每秒打开文件数量取决于测点数量,效率低 | high |
| TSDB 建模与分析 | 需求冲突 | 仅满足时序分析按序列建模即可,但深入统计分析/数据挖掘更需关注不同序列之间关系 | high |
| 写入模式 | append-only 的代价 | append only 模式有利于写入性能,但会带来乱序数据和重复数据问题 | high |
| 数据库发展经验(NoSQL 到 NewSQL) | 用户最大诉求 | 稳定可靠、易用好用、计算简便、运维简单(吞吐量重要但不是唯一) | medium |
| 技术路线选择(从用户角度) | 三个主要选择点 | (1)是否支持事务;(2)分布式一致性的选择;(3)对数据分析的支持程度 | high |
| 弱一致性模型选择 | 影响 | 会对数据库运维提出高要求,给开发增加额外负担 | medium |
| 不支持事务的选择 | 影响 | 会对应用场景和客户端产生限制 | medium |
| TSDB 若选择强一致性+事务+更高数据量+更强分析 | 技术难度判断 | 若像分布式关系数据库一样支持强一致性与事务,同时支撑比关系数据库高3~4个量级数据并支持更强分析功能,则技术难度不会低 | medium |
| DolphinDB | TSDB 存储引擎技术路径 | 根据时序数据特点,选择较难技术路径:以 LSM Tree 为原型自研 TSDB 存储引擎 | high |
| DolphinDB | 集群层能力与存储引擎关系 | 数据分区、分布式一致性和高可用、分布式事务在数据库集群层面实现,与存储引擎独立 | high |
| DolphinDB TSDB 存储 | 分块与索引 | 支持按指定键值(tag)字段分块存储;块内按指定字段(通常时间)排序;支持每个块的稀疏索引 | high |
| DolphinDB TSDB | 数据模型 | 支持单值和多值数据模型 | high |
| DolphinDB TSDB | 去重 | 支持数据去重或不去重 | high |
| DolphinDB TSDB | 更新方式 | 支持通过插入一条记录来快速更新数据 | high |
| DolphinDB TSDB | 写入顺序 | 支持乱序写入 | high |
| DolphinDB TSDB | 压缩 | 支持数据压缩 | high |
| DolphinDB TSDB | 数据生命周期与存储 | 支持数据的 TTL 和分级存储 | high |
| DolphinDB TSDB | 数据类型 | 除常规数据类型外,还支持数组类型和 BLOB 类型 | high |
| DolphinDB TSDB | 高基数解决方案 | 支持对键值字段进行映射,以解决序列高基数的问题 | high |
| DolphinDB | 事务能力 | 支持事务 ACID,包括原子性和快照级别隔离 | high |
| DolphinDB | 对外服务接口 | 通过标准读写接口对外服务,实现读写分离 | high |
| DolphinDB 集群 | 控制节点职责 | 负责元数据和分布式基础设施 | high |
| DolphinDB 集群 | 数据节点职责 | 存储引擎以及计算引擎 | high |
| DolphinDB 集群 | 计算节点职责 | 计算引擎(多范式编程语言、1400+函数库、批处理引擎、流处理引擎) | high |
| DolphinDB 集群 | 代理节点职责 | 负责数据节点和计算节点的启停 | high |
| TSDB 行业应用 | 趋势判断 | 适用行业和场景越来越广,应用深度与复杂性会随 TSDB 普及而增加 | low |
| DolphinDB 相关资料与互动 | 引导入口 | 可查阅用户手册和相关教程;可前往知乎原回答下与 Davis 交流互动 | medium |
| 技能认证特训营第二期 | 报名链接 | https://www.qingsuyun.com/h5/e/217471/5/ | high |