OceanBase 生态产品:时序数据库CeresDB 正式发布 1.0 版本

news2025/8/1 20:04:16

欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/

CeresDB 是一款拥有计算存储分离架构的分布式时序数据库,其存储层可以基于 OceanBase KV、OSS 等。经过近一年的开源研发工作,CeresDB 1.0 现已正式发布,达到生产可用标准。


CeresDB 团队已经在时序数据领域进行了 5 年的深耕。但是随着在领域内研究的深入以及用户场景的逐渐复杂化,我们发现了若干传统时序数据库尚未很好解决的一些技术问题,比如:

  • 高效处理高基数 Tag 组合(时间线膨胀问题)与分析型工作负载
  • 现代且完备的分布式技术方案
  • 云原生与计算存储分离

因此,CeresDB 开源项目发起之初,我们就将其定义为下一代的云原生时序数据库。希望它能同时较好支持传统时间序列工作负载(timeseries workload)与分析型工作负载(analytic workload),并且能拥有一个现代的云原生分布式技术架构,支持从简单的单节点到庞大分布式集群等各种部署场景。

这样的设计目标,也直接决定了我们过去一年在研发 CeresDB 1.0 过程中主要的精力投入方向。目前,随着 CeresDB 1.0 的正式发布,我们认为以上问题均得到了基本的解决。

CeresDB 1.0核心特性介绍

▋ 存储引擎

  • 支持列式混合存储

  • 高效 XOR 过滤器

▋ 云原生分布式

  • 实现了计算存储分离(支持 OSS 作为数据存储,WAL 实现支持 OBKV、Kafka)

  • 支持 HASH 分区表

▋ 部署与运维

  • 支持单机部署

  • 支持分布式集群部署

  • 支持 Prometheus + Grafana 搭建自监控

▋ 读写协议

  • 支持 SQL 查询与写入

  • 实现了 CeresDB 内置高性能读写协议,提供多语言 SDK

  • 支持 Prometheus,可以作为 Prometheus 的 remote storage 进行使用

▋ 多语言读写 SDK

实现了四种语言的客户端 SDK:Java、Python、Go、Rust

核心技术方案

这里简单介绍一下 CeresDB 在过去一年投入的几个重点方向的技术方案,由于篇幅限制,这里仅作简要说明。

▋ 存储引擎探索

经典时序模型会使用倒排索引的方式对数据进行组织。然而在某些场景如短生命周期 pod 监控、业务数据监控等,会产生高基数时间线,进而导致倒排索引膨胀问题,写入查询性能会急剧变差。

  • 写入时由于索引的复杂性高,写入耗时变高

  • 查询时由于索引的有效性低,查询耗时变高

下图为经典时序模型的示意图:

Image

为了解决高基数的问题,CeresDB 受 InfluxDB IOx 以及各类分析型数据库的启发,采用以下方式对时序数据进行组织来实现存储和查询:

  • 列式存储 + 混合存储

  • 分区扫描 + 剪枝 + 高效 fitler

下图展示了 CeresDB 内部的数据组织形式:

Image

▋ 分布式方案

CeresDB 采用存储计算分离架构,如下图所示。CeresDB 实例本身可以不存储任何数据,在此基础上可以较好实现关键的几项分布式特性,比如:计算存储弹性扩缩容、服务高可用和负载均衡等等。

Image

CeresDB 分布式集群主要由以下部分组成:

CeresMeta Cluster:集群的元数据中心,负责集群的整体调度;
CeresDB:一个 CeresDB 实例, 负责时序数据组织与存储;
WAL Service(外部):WAL 服务,在集群方案中,用于存储实时写入的数据;
Object Storage(外部):对象存储服务,用于存储从 memtable 生成的 SST 文件。

详细的集群方案可以参看官方文档:https://docs.ceresdb.io/cn/design/clustering.html

性能优化与实验结果

CeresDB 组合使用了列式混合存储、数据分区、剪枝、高效扫描等技术,解决海量时间线(high cardinality)下写入查询性能变差的问题。

▋ 写入优化

CeresDB 采用类 LSM(Log-structured merge-tree)写入模型,无需在写入时处理复杂的倒排索引,因此写入性能上较好。

▋ 查询优化

主要采用以下技术手段提高查询性能:

剪枝:
  • min/max 剪枝:构建代价比较低,在特定场景,性能较好

  • XOR 过滤器:提高对 parquet 文件中的 row group 的筛选精度

高效扫描:
  • 多个 SST 间并发:同时扫描多个 SST 文件

  • 单个 SST 内部并发:支持 Parquet 层并行拉取多个 row group

  • 合并小 IO:针对 OSS 上的文件,合并小 IO 请求,提高拉取效率

  • 本地 cache:缓存 OSS 拉取文件,支持内存和磁盘缓存

▋ 性能测试结果

采用 TSBS 进行性能测试。压测参数如下:

  • 10个 Tag

  • 10 个 Field

  • 时间线(Tags 组合数)100w 量级

压测机器配置:24c90g

  • InfluxDB 版本:1.8.5

  • CeresDB 版本:1.0.0

▋ 写入性能对比

InfluxDB 写入性能随着时间下降较多。CeresDB 在写入稳定后,写入速率趋于平稳,并且总体写入性能表现为 InfluxDB 的 1.5 倍以上(一段时间后可达 2 倍以上差距)

下图中,单行 row 包含 10 个 Field。

Image
Influxdb

Image
CeresDB

▋ 查询性能对比

低筛选度条件(条件:os=Ubuntu15.10),CeresDB 比 InfluxDB 快 26 倍,具体数据如下:

  • CeresDB 查询耗时:15s

  • InfluxDB 查询耗时:6m43s

高筛选度条件(命中的数据较少,条件:hostname=[8个],此时理论上传统倒排索引会更有效),这是 InfluxDB 更有优势的场景,此时在预热完成条件下,CeresDB 比 InfluxDB 慢 5 倍。

  • CeresDB:85ms

  • InfluxDB:15ms

2023 roadmap一览

2023 年,在 CeresDB 1.0 发布之后,我们的大部分工作将聚焦在性能、分布式与周边生态方面的工作。尤其周边生态的对接支持工作,希望能让各种不同的用户更加简单的用上 CeresDB:

▋ 周边生态

生态兼容,包括 PromQL、InfluxdbQL、OpenTSDB 等常用时序数据库协议兼容

运维工具支持,包括 k8s 支持、CeresDB 运维系统、自监控等

开发者工具,包括数据导入导出等

▋ 性能

探索新的存储格式

增强不同类型索引,强化 CeresDB 在不同工作负载下的表现

▋ 分布式

自动负载均衡

提高可用性、可靠性

*代码主仓库的 GitHub 地址为:https://github.com/CeresDB/ceresdb

*CeresDB 1.0 官方文档:https://docs.ceresdb.io

欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/394442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tcsh常用配置

查看当前的shell类型 在 Linux 的世界中,有着许多 shell 程序。常见的有: Bourne shell (sh) C shell (csh) TC shell (tcsh) Korn shell (ksh) Bourne Again shell (bash) 其中,最常用的就是bash和tcsh,本次文章介绍tcsh的…

HACKTHEBOX——Help

nmap可以看到对外开放了22,80,3000端口可以看到80端口和3000端口都运行着http服务,先从web着手切入TCP/80访问web提示无法连接help.htb,在/etc/hosts中写入IP与域名的映射打开只是一个apache default页面,没什么好看的使用gobuster扫描网站目…

配电室常见6大隐患,你中了几个?

当今社会,电力的重要性不言而喻,在变电站、配电室等一些场景中放置有大量的电气设备。 为保障这些设备正常运行,以免因为这些设备故障导致无法正常进行电力供应,严重影响生产和生活,我们需要运行一套动环监控系统。 配…

【MySQL】约束

文章目录1. 约束2. 非空约束 NOT NULL3. 唯一性约束 UNIQUE4. 主键约束 PRIMARY KEY5. 自增约束 AUTO_INCREMENT6. 外键约束FOREIGN KEY7. 默认值约束 DEFAULT8. 小结1. 约束 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面…

达人合作加持品牌布局,3.8女神玩转流量策略!

随着迅猛发展的“她经济”,使社区本就作为内容种草的平台,自带“营销基因”。在3.8女神节即将到来之际,如何充分利用平台女性资源优势,借助达人合作等手段,实现迅速引流,来为大家详细解读下。一、小红书节日…

数据的标准化处理

假设各个指标之间的水平相差很大,此时直接使用原始指标进行分析时,数值较大的指标,在评价模型中的绝对作用就会显得较为突出和重要,而数值较小的指标,其作用则可能就会显得微不足道。 因此,为了统一比较的标…

60% 程序员大呼:我要远程办公!

近几年数字化的普及,白领们从挤地铁、打卡、开会、写日报转变成“早上9点视频会议”,企业的办公场所也从写字楼、会议室、工位变成了手机、电脑中的线上会议室,远程办公已经成为一种流行的办公形式。《财富》杂志发现,75%的员工表…

全网火爆,软件测试面试题大全,接口测试题+回答 (18k+的offer)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 面试测试工程师的时…

UML全解

目录UML结构性图表类图类图中具体类、抽象、接口和包的表示法在UML类图中表示具体类在UML类图中表示抽象类在UML类图中表示接口在UML类图中表示包关系泛化(Generalization)实现(Realization)关联(Association&#xff…

Pyspark基础入门7_RDD的内核调度

Pyspark 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase Hi…

20230307 LS-DYNA易拉罐变形学习笔记

一、定义材料 定义铝合金材料 在左侧把density拖至alumium处 即可在下方输入密度值 同样的道理,将各向同性弹性拉到材料处,即可定义杨氏模量、泊松比等参数

TDengine | 04 | TDengine3.0.2.6二进制包部署

1 前期准备 1.1 版本 TDengine :3.0.2.6 Linux:centos 7 1.2 机器规划 机器IPhostname192.168.3.21master.bafang.com192.168.3.22node1.bafang.com192.168.3.23node2.bafang.com 1.3 修改这三个节点上的hostname hostnamectl set-hostname master.bafang.com…

HBase常用Shell命令

HBase提供了一个非常方便的命令行交互工具HBase Shell。通过HBase Shell,HBase可以与MySQL命令行一样创建表、索引,也可以增加、删除和修改数据,同时集群的管理、状态查看等也可以通过HBase Shell实现。 一、数据定义语言 数据定义语言&…

Acwing: 一道关于线段树的好题(有助于全面理解线段树)

题目链接🔗:2643. 序列操作 - AcWing题库 前驱知识:需要理解线段树的结构和程序基本框架、以及懒标记的操作。 题目描述 题目分析 对区间在线进行修改和查询,一般就是用线段树来解决,观察到题目一共有五个操作&…

查看python第三方库的依赖pkgs

课题组的服务器不给连外网,安装python第三方库就只能手动离线安装。但是python第三方库可能会迭代依赖,单纯的pip show [pkg]是看不出来的…… 参考链接:查看python第三方库的依赖 https://blog.csdn.net/qq_38316655/article/details/127943…

【多层交叉transformer:高光谱和多光谱图像融合】

MCT-Net: Multi-hierarchical cross transformer for hyperspectral and multispectral image fusion (MCT-Net:用于高光谱和多光谱图像融合的多层交叉transformer) 考虑到光学成像的局限性,图像采集设备通常在空间信息和光谱信…

04-SQL基础(表管理,约束,多表连接,子查询)

本文章主要内容 1、表的管理:创建表,修改表结构,删除字段,修改字段,添加字段,删除表,添加表约束; 2、数据管理:新增记录,修改记录,删除记录&…

分享10个不错的C语言开源项目

今天跟大家分享10个重量级的C语言开源项目,C语言确实经得住考验: Redis:Redis是一个开源的高性能的键值对数据库。它以C语言编写,具有极高的性能和可靠性。 Nginx:Nginx是一个高性能的HTTP和反向代理服务器&#xff0…

KPN对任意形状文本检测

文章目录一、研究背景二、方法流程1. 特征提取2. 核建议3. 实例无关特征图4. 轮廓生成5. 其余部分内容三、不足一、研究背景 相比起基于 FCN 网络的文本边缘检测网络,KPN网络可以更好地处理文本之间的间隔。 二、方法流程 1. 特征提取 FCN 和 FPN FCN(全卷积神经…

第十四届蓝桥杯第三期模拟赛原题与详解

​​​​​​​ 文章目录 一、填空题 1、1 找最小全字母十六进制数 1、1、1 题目描述 1、1、2 题解关键思路与解答 1、2 给列命名 1、2、1 题目描述 1、2、2 题解关键思路与解答 1、3 日期相等 1、3、1 题目描述 1、3、2 题解关键思路与解答 1、4 乘积方案数 1、4、1 题目描…