0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CeresDB 1.0正式发布,Rust高性能云原生时序数据库

OSC开源社区 来源:OSC开源社区 2023-03-06 10:22 次阅读

CeresDB 是一款高性能、分布式的云原生时序数据库,采用 Rust 编写。其开发团队近日宣布:经过近一年的开源研发工作,时序数据库 CeresDB 1.0 正式发布,达到生产可用标准

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

CeresDB 1.0 核心特性介绍

存储引擎
  • 支持列式混合存储
  • 高效 XOR 过滤器
云原生分布式
  • 实现了计算存储分离(支持 OSS 作为数据存储,WAL 实现支持 OBKV、Kafka)
  • 支持 HASH 分区表
部署与运维
  • 支持单机部署
  • 支持分布式集群部署
  • 支持 Prometheus + Grafana 搭建自监控
读写协议
  • 支持 SQL 查询与写入
  • 实现了 CeresDB 内置高性能读写协议,提供多语言 SDK
  • 支持 Prometheus,可以作为 Prometheus 的 remote storage 进行使用
多语言读写 SDK
  • 实现了四种语言的客户端 SDK:JavaPython、Go、Rust

CeresDB 架构介绍

CeresDB 是一个时序数据库,与经典时序数据库相比,CeresDB 的目标是能够同时处理时序型和分析型两种模式的数据,并提供高效的读写。在经典的时序数据库中,Tag列(InfluxDB称之为TagPrometheus称之为Label)通常会对其生成倒排索引,但在实际使用中,Tag的基数在不同的场景中是不一样的 ———— 在某些场景下,Tag的基数非常高(这种场景下的数据,我们称之为分析型数据),而基于倒排索引的读写要为此付出很高的代价。而另一方面,分析型数据库常用的扫描 + 剪枝方法,可以比较高效地处理这样的分析型数据。因此 CeresDB 的基本设计理念是采用混合存储格式和相应的查询方法,从而达到能够同时高效处理时序型数据和分析型数据。下图展示了 CeresDB 单机版本的架构
┌──────────────────────────────────────────┐
│       RPC Layer (HTTP/gRPC/MySQL)        │
└──────────────────────────────────────────┘
┌──────────────────────────────────────────┐
│                 SQL Layer                │
│ ┌─────────────────┐  ┌─────────────────┐ │
│ │     Parser      │  │     Planner     │ │
│ └─────────────────┘  └─────────────────┘ │
└──────────────────────────────────────────┘
┌───────────────────┐  ┌───────────────────┐
│    Interpreter    │  │      Catalog      │
└───────────────────┘  └───────────────────┘
┌──────────────────────────────────────────┐
│               Query Engine               │
│ ┌─────────────────┐  ┌─────────────────┐ │
│ │    Optimizer    │  │    Executor     │ │
│ └─────────────────┘  └─────────────────┘ │
└──────────────────────────────────────────┘
┌──────────────────────────────────────────┐
│         Pluggable Table Engine           │
│  ┌────────────────────────────────────┐  │
│  │              Analytic              │  │
│  │┌────────────────┐┌────────────────┐│  │
│  ││      Wal       ││    Memtable    ││  │
│  │└────────────────┘└────────────────┘│  │
│  │┌────────────────┐┌────────────────┐│  │
│  ││     Flush      ││   Compaction   ││  │
│  │└────────────────┘└────────────────┘│  │
│  │┌────────────────┐┌────────────────┐│  │
│  ││    Manifest    ││  Object Store  ││  │
│  │└────────────────┘└────────────────┘│  │
│  └────────────────────────────────────┘  │
│  ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│           Another Table Engine        │  │
│  └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
└──────────────────────────────────────────┘

性能优化与实验结果

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。

66b64880-bb79-11ed-bfe3-dac502259ad0.png66d16606-bb79-11ed-bfe3-dac502259ad0.png

上图为 Influxdb,下图为 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 在不同工作负载下的表现

分布式

  • 自动负载均衡
  • 提高可用性、可靠性

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据存储
    +关注

    关注

    5

    文章

    986

    浏览量

    51148
  • 数据库
    +关注

    关注

    7

    文章

    3855

    浏览量

    64800
  • Rust
    +关注

    关注

    1

    文章

    230

    浏览量

    6681

原文标题:CeresDB 1.0正式发布,Rust高性能云原生时序数据库

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    适用于SQLite的dbExpress数据库驱动程序

    驱动程序作为独立。由于数据访问层薄而简单,dbExpress 提供高性能数据库连接性,并且更加易于部署。 适用于 SQLite 的 dbExpress 驱动程序提供对 SQLite
    的头像 发表于 02-09 09:45 109次阅读

    云原生AI服务怎么样

    云原生AI服务,是指采用云原生的原则和技术来构建、部署和管理人工智能应用及工作负载的方法和模式。那么,云原生AI服务怎么样呢?下面,AI部落小编带您了解。
    的头像 发表于 01-23 10:47 142次阅读

    云原生LLMOps平台作用

    云原生LLMOps平台是一种基于云计算基础设施和开发工具,专门用于构建、部署和管理大型语言模型(LLM)全生命周期的平台。以下,是对云原生LLMOps平台作用的梳理,由AI部落小编整理。
    的头像 发表于 01-06 10:21 130次阅读

    鸿蒙原生页面高性能解决方案上线OpenHarmony社区 助力打造高性能原生应用

    NEXT的原生页面高性能解决方案,从页面滑动、跳转及应用冷启动等关键环节,为开发者提供全面的支持。目前,这些解决方案均已上线OpenHarmony开源社区,可在OpenHarmony三方中心仓进行搜索,欢迎开发者多多使用和共
    发表于 01-02 18:00

    时序数据库TDengine 2024年保持高增长,实现收入翻倍

    近日,时序数据库 (Time Series Database) TDengine 正式公布了 2024 年重大成就和发展成绩盘点。在这一年中,TDengine 以持续创新的技术能力、迅猛增长的市场
    的头像 发表于 01-02 13:50 200次阅读
    <b class='flag-5'>时序数据库</b>TDengine 2024年保持高增长,实现收入翻倍

    艾体宝与Kubernetes原生数据平台AppsCode达成合作

    虹科姐妹公司艾体宝宣布与Kubernetes 原生数据平台 AppsCode达成正式合作,致力于将其核心产品KubeDB引入中国市场,为企业提供专业、高效的云原生数据库管理解决方案。
    的头像 发表于 12-16 15:07 331次阅读

    什么是云原生MLOps平台

    云原生MLOps平台,是指利用云计算的基础设施和开发工具,来构建、部署和管理机器学习模型的全生命周期的平台。以下,是对云原生MLOps平台的介绍,由AI部落小编整理。
    的头像 发表于 12-12 13:13 199次阅读

    AI时代的数据库技术发展论坛亮点前瞻

    可以看到,数据库技术作为数字经济的基石,在全球范围内正经历着由传统架构向云原生、智能化的转型。而AI技术的融入,使得数据库系统在性能优化、自动化管理、智能决策等方面展现出前所未有的潜力
    的头像 发表于 12-12 11:31 325次阅读

    软通动力荣登2024云原生企业TOP50榜单

    近日,DBC德本咨询发布“2024云原生企业TOP50”榜单,软通动力凭借自研的“天鹤云原生数据库平台” 荣登该榜单第8名,彰显了公司在该领域的行业竞争力。
    的头像 发表于 12-04 11:27 302次阅读

    云原生数据库哪个好一些?

    云原生数据库哪个好一些?云原生数据库各有其独特的优势,适用于不同的场景。云原生强调高效资源利用、快速开发部署和高可伸缩性,适合需要高度灵
    的头像 发表于 11-29 10:07 229次阅读

    云原生和非云原生哪个好?六大区别详细对比

    云原生和非云原生各有优劣,具体选择取决于应用场景。云原生利用云计算的优势,通过微服务、容器化和自动化运维等技术,提高了应用的可扩展性、更新速度和成本效益。非云原生则可能更适合对延迟敏感
    的头像 发表于 09-13 09:53 486次阅读

    利用NVIDIA RAPIDS加速DolphinDB Shark平台提升计算性能

    DolphinDB 是一家高性能数据库研发企业,也是 NVIDIA 初创加速计划成员,其开发的产品基于高性能分布式时序数据库,是支持复杂计算和流数据
    的头像 发表于 09-09 09:57 547次阅读
    利用NVIDIA RAPIDS加速DolphinDB Shark平台提升计算<b class='flag-5'>性能</b>

    京东云原生安全产品重磅发布

    “安全产品那么多,我怎么知道防住了?”“大家都说自己是云原生的,我看都是换汤不换药”在与客户沟通云原生安全方案的时候,经常会遇到这样的吐槽。越来越的客户已经开始了云原生化的技术架构改造,也意识到
    的头像 发表于 07-26 10:36 564次阅读
    京东<b class='flag-5'>云原生</b>安全产品重磅<b class='flag-5'>发布</b>

    时序数据库是什么?时序数据库的特点

    时序数据库是一种在处理时间序列数据方面具有高效和专门化能力的数据库。它主要用于存储和处理时间序列数据,比如传感器数据、监控
    的头像 发表于 04-26 16:02 728次阅读

    华为云原生多模数据库 GeminiDB 架构与应用实践

    近日,2023 全球分布式云大会·深圳站顺利召开,华为云 NoSQL 数据库研发总监余汶龙在会上发表了题为《华为云原生多模数据库 GeminiDB 架构与应用实践》的精彩演讲。 余汶龙提出在智能
    的头像 发表于 04-08 18:23 1242次阅读
    华为<b class='flag-5'>云原生</b>多模<b class='flag-5'>数据库</b> GeminiDB 架构与应用实践