本文分享自华为云社区《一文带你全面了解openGemini》,作者: 华为云社区精选。
7月19日,openGemini社区联合华为云DTT(技术公开直播课栏目)共同举办了一期主题为《openGemini时序数据库应用场景与技术实践》的直播活动,华为云开源DTSE技术布道师 & openGemini社区发起人向宇,与广大开发者开展了一次线上的直播交流,就openGemini的特点、应用场景、开源目标和价值、差异化竞争力、核心能力、技术生态、运维管理、社区路标等8个方面进行了全面细致的介绍。在临近结尾时,向宇表示openGemini是一个开放、包容、合作的开源社区,欢迎更多开发者和伙伴加入,共同推动技术创新。
openGemini是一款存储和分析并重的时序数据库,具有三大显著特点:
openGemini采用的开源License是Apache 2.0,对商业友好,伙伴和开发者可以基于openGemini发布自己的商业版本,也可以基于openGemini搭建运维监控系统,还可以基于openGemini开发监控类产品和服务、构建车联网、物联网以及工业物联网平台等。
openGemini从孵化到开源,长期背靠华为云SRE运维监控业务,在产品打磨的过程中造就了openGemini卓越的读写性能和高效的数据分析能力。
单机版数据库始终受计算资源限制,无法获得更高的吞吐量和性能。因此,openGemini从诞生一刻起就设计了分布式集群架构,具备良好的可扩展性和灵活性。
近年来,随着云计算、AI、5G、物联网等众多新技术的发展和普及,数字化转型如火如荼,在车联网、制造业、物流、电力、物联网、工业互联网、运维监控等领域的数据量出现猛增,例如大型车企一天采集的车辆数据就在PB级;TOP级云厂商每天采集的运维数据超过数十TB。
面对如此海量的遥测数据,openGemini通过对上述场景中数据和业务特点深入了解,提出针对性的设计和技术优化方案,实现了集群高并发、高扩展、低时延、低成本的时序数据库系统。
目前,openGemini已正式在华为云工业物联平台中商业化落地,同时也在支撑整个华为云的运维监控业务,在全网部署有约25套集群,最大集群规模为70节点,日均处理20TB数据,写TPS 4000万条/秒,读QPS 5万/秒。
在openGemini开源的数个月里,和社区取得联系并正式接入业务进行测试和适配的已知企业有46家。后起之星火,大有燎原的态势。
性能优势:在openGemini差异化竞争力中,高性能是最重要的一项。openGemini 相比开源 InfluxDB,简单查询场景提升 2 倍多,中等查询场景提升 5 倍多,复杂查询场景下,openGemini 依然可以快速响应,然而 InfluxDB 则出现 OOM 无法工作。此外,openGemini新研发的高基数引擎,支持时间线无上限,进一步扩大了应用范围。需要了解与其他同类产品的性能对比,可以在官网找到联系方式进行索要。
除此之外,openGemini在数据存储和数据分析方面推出一系列实用功能,以此构建更多差异化竞争力,主要功能如下:
流式聚合:流式聚合是一种前置聚合方式,一边写数据、一边对数据进行降采样,其目的是解决传统降采样方法从磁盘读取大量历史数据进行计算,造成I/O放大严重的问题。
多级降采样:对于存量的历史数据,传统降采样方式会保留历史数据明细。在某些场景下,历史数据明细并不重要,只需保留数据特征即可,多级降采样功能可以实现对历史数据明细的特征提取,并原地替换历史数据明细,可进一步降低50%的存储成本。
日志检索:日志数据是一种特殊的时序数据,多数时序数据库支持日志存储,但仅仅是存储日志数据时还远远不够,日志检索和分析才是存储日志的最终目的。主流针对日志的处理多使用ELK技术栈,但面对海量日志时,ES也变得很吃力。openGemini采用动态分词方法,在内核实现了全文索引,且具有内存资源占用少,检索效率高的优点,欢迎大家试用和反馈。
异常检测和预测:openGemini针对时序数据的最终应用开发了基于AI的数据分析框架,可实现对时序数据的异常检测和预测,可检测13种常见的异常场景,具有检测速度快、准确性高、流批一体的优点,让数据就近处理,提高数据分析效率。
高基数引擎:高基数会带来索引膨胀,从而引起内存资源消耗过高,读写性能降低,长期以来一直困扰着时序数据库的发展。openGemini从AP系统中寻找到解决办法,研发了全新的高基数引擎HSCE,可支持时间线无上限。目前核心能力已具备,正在完善高基数引擎下的各种聚合方法(计划9月可完成)。
除上述差异化能力之外,openGemini的核心能力还包括完全兼容InfluxDB 1.x APIs、算子(函数)和数据行协议,可作为普罗和openTelemetry的后端存储,支持数据可靠性(计划9月份推出)、物化视图、数据分区分片(支持指定分区键)、数据保留策略等。
为提升openGemini的运维效率,社区开发了ts-monitor组件,专门采集节点和内核指标,可搭配Grafana实现对openGemini运行状态的全面监控。例如CPU和内存利用率、写入带宽、写时延、写并发、QPS等指标可以通过可视化界面一目了然。
由于openGemini对InfluxDB的兼容,因此应用于InfluxDB的数据接入工具、SDK、数据洞察工具、大数据分析工具等都能直接应用在openGemini之上。
操作系统方面,openGemini目前已经对主流Linux系统、X86和ARM64的CPU架构支持,下个版本上可支持MAC和Windows
云原生方面,openGemini支持Docker、K8s、KubeEdge等平台的部署,为方便在K8s部署,社区创建了openGemini-operator项目。
数据迁移方面,提供了InfluxDB向openGemini的数据迁移工具,ES迁移数据到openGemini的工具正在开发中,预计8月份可提供。
管理工具方面,数据导出已支持,备份恢复和GUI管理工具正在社区开发中,9月份可以和大家见面。
总结起来,openGemini支持多种主流开发语言和操作系统平台、与InfluxDB的第三方工具无缝衔接、支持多形态的部署及应用。
在今年召开的多个国内外行业峰会上,openGemini进行了主题技术分享和展览展示,充分感受到了大家对openGemini的关注,也与很多的开发者进行了技术和业务交流,非常感谢华为云DTT技术公开课栏目,借助这次机会得以在广大开发者面前全面而细致的介绍了openGemini的方方面面,希望大家自此对openGemini有更深的了解。
感谢参与互动和聆听的新老朋友,祝事业蒸蒸日上,百尺竿头,祝同学学业有成,前程似锦!
openGemini将持续专注于海量遥测数据的存储与分析,为业界提供有效应对海量数据存储和分析的开源解决方案。与此同时,希望成长为一流时序数据库技术社区,培养更多优秀的数据库技术人才,促进数据库行业蓬勃发展!
最后,openGemini是一个年轻的技术开源社区,空间广阔,充满了无限可能,社区属于所有开发者,希望有更多的企业和开发者共同参与进来,营造良好的开源社区文化,让开源惠及千万家,一起共建、共治、共享未来!