opengemini内核源码正式对外开源

华为云开发者联盟 华为云开发者联盟     2022-12-08     687

关键词:

摘要:openGemini是一个开源的分布式时序数据库系统,可广泛应用于物联网、车联网、运维监控、工业互联网等业务场景,具备卓越的读写性能和高效的数据分析能力。

本文分享自华为云社区《华为云面向全球正式开放openGemini内核源码》,作者: 云数据库创新Lab。

一、背景介绍

物联网时代已经来临,物联网设备走进我们的日常生活,例如智能冰箱、电动汽车、智能手表等等。公开报告显示,预计到2025年,中国的物联网连接数会占到全球的30%。这些联网的设备每时每刻都在产生大量的数据,每天的数据增长量可以达到GB级甚至TB级,给数据库带来非常大的挑战,例如:高并发写入大量数据导致数据入库太慢,海量数据引起过高的存储成本和查询时延等等。时序场景作为物联网领域的典型场景,与传统关系型数据库场景有很大区别,时序数据库专为时序场景设计和优化,近年来开始受到越来越多的关注。

华为云整合产业和技术优势,打造了业界领先的企业级时序数据库GaussDB for Influx,并经过外部公有云业务服务化的锤炼以及内部DevOps等业务的长时间打磨,在大规模集群、高性能查询、分级压缩存储等方面都有明显优势。今年6月,华为云宣布将GaussDB for Influx内核正式对外开源,开源品牌命名为openGemini。

openGemini是一个开源的分布式时序数据库系统,可广泛应用于物联网、车联网、运维监控、工业互联网等业务场景,具备卓越的读写性能和高效的数据分析能力。

二、openGemini软件架构

2.1架构设计

openGemini采用MPP 大规模并行处理分层架构,由ts-sql(计算引擎)、ts-store(存储引擎)、ts-meta(元数据引擎)三大部分组成。openGemini既支持集群部署,也可以单机部署。

ts-sql:统一处理客户端请求

  • 提供RESTful接口
  • 兼容InfluxDB Line Protocol和v1 API,同时也支持Prometheus的远程数据读写
  • 查询语句执行期间,从ts-store获取数据并汇总,并返回客户端
  • 支持横向扩展

ts-store:数据管理

  • 将原始数据按优化设计的数据格式进行统一组织和存储
  • 按时间范围和时间线ID查询数据
  • 支持横向扩展

ts-meta:元数据管理

  • 数据库集群元数据管理,如节点信息等
  • 数据库元数据管理,如数据保留时间、数据分区信息、表信息等

2.2关键特性

高性能读写

  • 每秒千万级指标数据并发写入,毫秒级查询响应支持时序数据分析
  • 内置AI数据分析算法,支持实时异常检测和预测

兼容时序生态

  • 完全兼容InfluxDB Line Protocol 和 InfluxQL
  • 无缝集成现有InfluxDB工具链
  • 支持Prometheus远程数据存储

分布式

  • 提供了水平扩展能力,支持数百节点集群规模

海量时序数据高效管理

  • 支持亿级时间线管理
  • 内置高效数据压缩算法,存储成本只有传统关系数据库的1/20

部署灵活

  • 部署只需运行编译生成的可执行文件,无需外部依赖
  • 所有数据库配置参数均有合理的默认值,无需手动设置
  • 支持单机和集群部署

三、openGemini有什么优势

3.1性能优势

针对物联网、运维监控等领域海量数据管理和分析的需求,openGemini对计算引擎和存储引擎做了大量的优化设计。

  • 查询引擎,实现了向量化、分布式计算、算子下推、预聚合等多种查询优化和执行技术,提升了数据查询效率。在工业物联网、运维监控等场景中实现交互级的查询时延,并且在超大数据基数(万亿级)的情况下,也能够达到很低的查询时延。
  • 存储引擎,设计列式数据存储格式,将多元时间序列数据按时间对齐,减少时间戳的重复存储,并开发了一套高效的存储引擎,实现了数据有序存储、数据分区分级、数据预取、稀疏索引等丰富功能。

数据吞吐量和查询时延是评价一个时序数据库性能的关键指标,openGemini经过大量优化后,整体性能表现出色。下方的测试结果显示了openGemini 从4U扩展到32U的性能表现,可以看出:

  • 从4U到32U,openGemini写入性能可以线性扩展(扩展比为0.8)
  • 从4U的155万Metrics/s平稳增长到32U的560万Metrics/s

在业界流行的时序数据库Benchmark测试工具TSBS的15个标准测试场景中,openGemini性能表现优异,15个标准测试场景可分为简单查询、中等查询和复杂查询三大类型:

  • 简单查询:少量或者没有使用函数或表达式,查询时间范围在24小时以内,查询时延数毫秒。
  • 中等查询:使用多个函数或表达式,查询时间范围在几周内,并且使用了GROUP BY分组,查询时延在数十毫秒到数百毫秒。
  • 复杂查询:使用了多个聚合函数或表达式,按月或者按年为时间范围查询,查询时延通常可能会达分钟级。

openGemini相比开源InfluxDB,简单查询场景提升2倍多,中等查询场景提升4倍多;复杂查询场景下,openGemini依然可以快速响应,然而InfluxDB则出现OOM无法工作。

3.2丰富的数据分析能力

时序数据采集的最终目的是让数据被理解和使用,数据分析是其中关键的一环。时序数据库具有广泛的应用场景,使得时序应用日益多样化,数据分析需求在不断变化和增加,这要求时序数据库能快速应对不同数据分析需求,不断丰富内部的分析算子。

与此同时,传统的大数据分析工具(比如Spark、Flink等)过于厚重,部署成本高;搭配时序数据库进行分析时,离数据较远,数据分析实时性无法满足要求。随着物联网、传感器技术、5G的快速发展,迫切需要一种更有效的方法来处理海量、高速的时序数据,而用户真正需要的是一个能够以最低时延和最高吞吐量处理、检测和预测信息的系统,这样的系统在业界开源的数据库中少之又少。

相对应的,openGemini具有丰富的聚合分析算子(COUNT、SUM、MAX、MIN等共计60余种)、统计分析算子(PERCENTILE分位数、HISTOGRAM直方图等)、异常检测和预测算子(内置13种异常检测器,可覆盖常见的离群点、数值变化、阈值、持续上升下降等时序异常场景)。其中基于AI的异常检测的实现过程中,充分考虑了数据分布,提供近数据计算能力,能提升端到端数据分析和计算效率。

3.3降低成本,增加效益

openGemini 源于华为云GaussDB for Influx,GaussDB for Influx已经在华为云许多内部重要业务上使用,通过技术的升级,替代了Cassandra、InfluxDB、HBase、OpenTSDB等多套系统部署,实现了降本增效。

openGemini在承载相同业务场景下,较原系统端到端时延减低50%,CPU资源上可以节省68%,内存资源可以节省50%,硬盘资源可以节省90%以上。

四、为什么开源

开源是开放创新的有效手段,是数字时代的事实标准和专利。DB-Engines的统计数据表明,从 2021 年开始,开源数据库的流行指数已经超过商用数据库,开源时序数据库占比更是高达80%,openGemini时序数据库作为基础软件,也需要拥抱开源。

源于开源,回馈开源

openGemini时序数据库经历了几个发展阶段。从最初基于开源InfluxDB的架构改造,到应对内部数十亿海量时间线挑战,再到自研数据库引擎,一路打磨,经受住了华为云内、外部100余家用户的生产检验。openGemini现在以及将来取得的成绩,都离不开开源社区肥沃的土壤。openGemini的开源,希望可以倡导开源文化,以实际行动回馈开源。

开放合作,共建共享

我们深知独木难成林,百川聚江海的道理,但开源生态建设并非朝夕之功,也并非一个企业自身就能完成,而是一个聚沙成塔、集腋成裘的过程,唯有携手伙伴共建、共享,方能打造出健康繁荣的开源生态。我们希望把openGemini社区作为一个支点、一个开放创新平台,通过释放华为云内部多年积累的时序数据库技术研发和应用的实践经验,吸引更多的伙伴与开发者参与贡献,不断改善openGemini生态和竞争力,持续打造开放的技术产品和应用生态,使能物联网、工业互联网等行业数字化转型,促进产业协同,以应对生存环境愈发复杂,行业竞争愈发激烈,业务发展愈发多样的数字化时代。

版本说明

本次发布的v0.1.0是具有完整时序数据库功能的版本,详细信息请点击查看用户指南。

v0.1.0版本主要特性:

  • 支持单机和分布式集群部署,高性能和可扩展
  • 支持证书验证和用户鉴权
  • 完全兼容InfluxDB Line Protocol v1、InfluxQL
  • 支持Prometheus远程数据读写
  • 支持Linux操作系统
  • 丰富的内核运行指标(60余项),提供指标监测的工具ts-monitor

详细版本路标已发布,请前往社区查阅。

加入社区

为方便了解和参与社区贡献,我们为您准备了贡献指南

其他

社区合作、寻求社区帮助、相关问题咨询渠道:

  1. 推荐在GitHub上给社区提交Issue和Discussion
  2. 发送邮件到openGemini社区邮箱(community.ts@opengemini.org),1-2个工作日内给与回复
  3. 加入openGemini社区微信交流群(微信添加 xiangyu5632,备注openGemini)
  4. 加入Slack。

openGemini官网主页: http://www.openGemini.org/

openGemini开源地址: openGemini · GitHub

点击关注,第一时间了解华为云新鲜技术~

重磅:腾讯正式开源springcloudtencent,功能真心强大!!

...#xff1a;腾讯云中间件导语近日,SpringCloudTencent于6月14日正式对外开源,作为腾讯开源的一站式微服务框架,SpringCloudTencent实现了SpringCloud标准微服务SPI,开发者可以基于SpringC 查看详情

再传捷报!dataease开源项目githubstar数突破2000!

...化分析平台GitHubStar数突破2000个。此时距DataEase开源项目正式对外发布仅经历了40天。DataEase开源项目于2021年6月28日正式对外发布,6月30日晚间即进入GitHub趋势榜主榜,并且在Java趋势榜中位列第一。7月29日 查看详情

查询作业

开源指开源你对源码进行二次开发进行修改bug修复等版权可以标为自己开发。不开源则和开源相反你不知道源码内容无法对源码进行修改等版权也是开发人所有。开源(OpenSource,开放源码)被非盈利软件组织(美国的OpenSourceInitia... 查看详情

dataease模板市场正式发布

2022年6月21日,DataEase开源数据库可视化分析平台正式发布模板市场(https://dataease.io/templates/)。作为广大社区用户期待已久的功能之一,模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方... 查看详情

《源码分析转载收藏向—数据库内核月报》

月报原地址:​​​数据库内核月报​​​现在记录一下,我可能需要参考的几篇文章吧,不然以后还得找:​​MySQL·代码阅读·MYSQL开源软件源码阅读小技巧​​​​MySQL·源码分析·聚合函数(AggregateFunction)的实现过程​​... 查看详情

tensorflow源码解析1--内核架构和源码结构

1主流深度学习框架对比当今的软件开发基本都是分层化和模块化的,应用层开发会基于框架层。比如开发LinuxDriver会基于Linuxkernel,开发Androidapp会基于AndroidFramework。深度学习也不例外,框架层为上层模型开发提供了强大的多语... 查看详情

鸿蒙轻内核m核源码分析:中断hwi

摘要:本文带领大家一起剖析了鸿蒙轻内核的中断模块的源代码,掌握中断相关的概念,中断初始化操作,中断创建、删除,开关中断操作等。本文分享自华为云社区《鸿蒙轻内核M核源码分析系列五中断Hwi》,原文作者:zhushy... 查看详情

面向web3.0提升存储性能,蚂蚁鲸探底层区块链存储引擎正式对外开放

11月3日,蚂蚁集团数字科技在云栖大会上宣布,其历经4年的关键技术攻关与测试验证的区块链存储引擎LETUS(Log-structuredEfficientTrustedUniversalStorage),首次对外开放。该产品主要用于可信数据在区块链上的存储&... 查看详情

分析开源项目源码,我们该如何入手分析?(授人以渔)

1前言本文接上篇文章跟大家聊聊我们为什么要学习源码?学习源码对我们有用吗?,那么本篇文章再继续跟小伙伴们聊聊源码这个话题。在工作之余开始写SpringBoot源码分析专栏前,跟小伙伴们聊聊“分析开源项目源码,我们该... 查看详情

微软智能云azure–中国首家官方支持coreos的公有云

...论坛”上,微软亚太研发集团云计算高级总监梁戈碧女士正式对外宣布一个令人振奋的消息:CoreOSLinux开源版本正式向中国地区提供服务, 微软智能云Azure成为第一个在中国官方支持CoreOSLinux的公有云! 倪光南院士高峰论... 查看详情

nexus5内核编译烧录过程记录

1、下载nexus5对应的内核源码    Android系统使用的是Linux内核,但与主线分枝的Linux内核又有一些差异,各个不同的厂商又有自己的修改。内核源码位于谷歌境外服务器,不FQ无法访问,这给同步源码造成很大的不便... 查看详情

linux6.1发布,微软贡献linux内核代码

...源社区Linux这几年发展之迅速,就连微软都在贡献Linux内核代码了。Linux6.1内核正式发布LinusTorvalds宣布Linux6.1内核系列正式发布!Linux6.1内核系列集成了改进的页面回收代码的多代LRU(MGLRU)、初始的Rust语言支持(仍在构... 查看详情

linux6.1发布,微软贡献linux内核代码

...源社区Linux这几年发展之迅速,就连微软都在贡献Linux内核代码了。Linux6.1内核正式发布LinusTorvalds宣布Linux6.1内核系列正式发布!Linux6.1内核系列集成了改进的页面回收代码的多代LRU(MGLRU)、初始的Rust语言支持(仍在构... 查看详情

linux内核加速支持rust开发;中科院计划每半年升级一次risc-v芯片;python3.10.1发布|开源日报

...源大事件吧!一分钟速览新闻点!2022年,Linux内核或将正式支持Rust开发MongoDBCTOMarkPorter:AWSDocumentDB与MongoDB并不兼容开源诉讼事件发生转折,Vizio丑态百出中科院计划每半年升级一次RISC-V芯片开源论坛软件NodeBB... 查看详情

openyurt开源|云原生生态周报vol.51

...ACK@Edge(边缘集群托管服务)发布一周年之际,阿里巴巴正式对外宣布将其核心能力开源,并向社区贡献完整的边缘计算云原生项目——OpenYurt。OpenYurt是阿里巴巴首个边缘计算云原生开源项目,汇聚了阿里巴巴众多边缘计算业务... 查看详情

openyurt开源|云原生生态周报vol.51

...ACK@Edge(边缘集群托管服务)发布一周年之际,阿里巴巴正式对外宣布将其核心能力开源,并向社区贡献完整的边缘计算云原生项目——OpenYurt。OpenYurt是阿里巴巴首个边缘计算云原生开源项目,汇聚了阿里巴巴众多边缘计算业务... 查看详情

极客日报:百度网盘青春版正式上线,被吐槽是“一次性app”;小米12全系内核源码公开;7-zip21.07发布

...pp”吉利与谷歌旗下Waymo合作开发无人驾驶的士小米12全系内核源码已公开,基于Android12华为成功注册鸿蒙元服务商标,该商标申请于今年6月消息称抖音正测试短视频“赞赏”功能小米发布全新字体MiSans,供全社会免... 查看详情

极客日报:百度网盘青春版正式上线,被吐槽是“一次性app”;小米12全系内核源码公开;7-zip21.07发布

...pp”吉利与谷歌旗下Waymo合作开发无人驾驶的士小米12全系内核源码已公开,基于Android12华为成功注册鸿蒙元服务商标,该商标申请于今年6月消息称抖音正测试短视频“赞赏”功能小米发布全新字体MiSans,供全社会免... 查看详情