首页 > 其他分享 >3招解决时序数据高基数难题,性能多维度提升!

3招解决时序数据高基数难题,性能多维度提升!

时间:2023-11-27 14:36:45浏览次数:36  
标签:openGemini 多维度 时序 索引 引擎 基数 列存

本文分享自华为云社区《DTSE Tech Talk | 3招解决时序数据高基数难题,性能多维度提升!》,作者:华为云开源。

本期《openGemini全新列存引擎,为您解决时序数据高基数难题》的主题直播中,华为云开源DTSE技术布道师&数据库创新Lab技术专家黄飞腾,与开发者朋友们分享了时序数据库的特点和遥测数据应用场景下的优势,通过解析openGemini的框架引出了数据库行业长期存在的一大痛点—由于高基数导致的性能大幅下降,并向大家介绍了openGemini时序数据库针对这一难题而开发的列存引擎是如何有效改善高基数带来的不利影响。

为什么面对海量遥测数据,时序数据库才是更佳选择?

市面上有很多不同类型的数据存储系统,它们在不同场景具有不同的优势和局限性。那海量遥测数据场景下,我们应该选择什么类型的数据库呢?先感受一下遥测数据的庞大,全国每天光智能电表就能生成500亿条记录,10万辆车的企业每天采集约1PB数据。海量的数据产生后给存储带来了巨大的压力,传统数据库已不能满足如今的实际业务需求。因此,面向运维监控、物联网等众多领域,专注海量遥测数据存储与分析的时序数据库应运而生。

以openGemini时序数据库为例,它具有高并发、低时延、低成本的特性,完美契合企业的需要。更重要的是,openGemini框架中自带全新开发的“列存引擎”,重点解决时序高基数问题,为性能保驾护航。

高基数会带来什么样的问题?

首先了解一下基数是什么,基数:表示某一列数据中唯一值的个数。

那高基数就可以理解为一个列中不同值的数量很大。不同的标签或者列有不同的基数,如 ip 地址基数可能达到亿级,时间戳则与采样频率相关,采样频率越高则基数越高。

在高基数的场景下,tag组合数量、SID数量会急剧膨胀,倒排索引中的 SID lists 膨胀,导致倒排索引的维护与查询开销增大。

最终,对外表现的性能会急剧下降,那高基数给时序引擎带来的具体问题为:

  • 内存资源
  • 读写性能下降

openGemini如何应对高基数问题?

openGemini目前解决该问题应对措施为:列式存储+排序+聚簇索引。

简单来说,我们把时间线的约束去掉,采取部分的标签和列做排序,排序完成后会按照排序键排序列示存储,存储之后再构造一个稀疏(聚簇)索引,这样的优势是:索引相对于数据而言,总是稀疏的,与时间线无关,构建开销不会随时间线的增加而增加。聚簇索引存储每个 Block 的第一条记录,数据有序时,该索引有良好得过滤效果。

列存引擎和时序引擎最主要的差别是数据排序的方式和索引方式的不同。时序引擎是按照时间线力度来做聚簇,然后再按时间做排序。而高基数列存引擎是按照特定的列做排序,跟时间线无关。时序引擎采用倒排索引,时间线膨胀会导致倒排索引的开销变大,列存引擎的构建与时间线无关。继而以上的列存引擎设计思路可以大大提升数据库的读写性能。

时序引擎的倒排索引,本质上存储了一个 kv 对,其中 key 对应到所有的 tag 列名 + tag 值,value 对应该 tag 值所对应的所有时间线,所以通过倒排索引可以快速查找到特定 tag 列的所有唯一值。如果没有倒排索引,则需要完全扫描该列数据,并进行去重,查询开销与数据量成正比,在数据量较大的情形,开销非常大。新引入的列式存储方案,基于现有倒排索引对 key 的去重能力,直接存储了该列的唯一值。

手把手教你轻松使用列存引擎

openGemini 从 v1.1.0 版本开始支持列存引擎以及 Arrow 协议。

文档:https://docs.opengemini.org/zh/guide/features/high_series_cardinality.html

Arrow Flight 配置


创表


接下来请查看实操演示视频,复制链接查看直播完整版:https://bbs.huaweicloud.com/live/DTT_live/202311151630.html

列存引擎在高基数场景的验证结果

如下图所示,与其他数据库做测试对比,从时间线支持规模来看,openGemini达到无上限;单核写入性格提升到60万rows/s/cpu;

在特定4个场景下,亿级时间线并发查询时延都远远低于测试产品,最低时延为0.012s。在全量数据统计查询场景下,openGemini与对比产品基本相当,整体时延都非常低。总体看,openGemini不论是写入还是查询,性能都十分优秀。


欢迎大家加入openGemini社区

openGemini社区旨在打造开放、合作、包容的全球性技术社区,社区正在快速发展中,接下来会聚焦于开发更多功能,对性能进行调优。社区尚有理想未达,在此诚邀大家参与openGemini的建设(不限于代码、文档、生态贡献),同社区一起成长,彼此携手方能到达远方。

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

 

标签:openGemini,多维度,时序,索引,引擎,基数,列存
From: https://www.cnblogs.com/huaweiyun/p/17859260.html

相关文章

  • 【略读论文|时序知识图谱补全】Tucker Decomposition with Frequency Attention for T
    会议:ACL,时间:2023,学校:北京航空航天大学,多伦多大学关键词:基于张量分解;频率注意力;正则化摘要:之前基于张量分解的TKGC模型存在仅独立考虑一种关系与一个时间戳的组合,忽略了嵌入的全局性质的问题。本文的方法:一种频率注意力(FA)模型来捕获一个关系与整个时间戳之间的全局时间依赖性。......
  • 3招解决时序数据高基数难题,性能多维度提升!
    本文分享自华为云社区《DTSETechTalk|3招解决时序数据高基数难题,性能多维度提升!》,作者:华为云开源。本期《openGemini全新列存引擎,为您解决时序数据高基数难题》的主题直播中,华为云开源DTSE技术布道师&数据库创新Lab技术专家黄飞腾,与开发者朋友们分享了时序数据库的特点和遥测数......
  • 写写Redis十大类型hyperloglog(基数统计)的常用命令
    hyperloglog处理问题的关键所在和bitmap差不多,都是为了减少对sql的写操作,提高性能,用于基数统计的算法。基数就是一种数据集,用于收集去重后内容的数量。会有0.81%的误差hyperloglog是string类型,但是不会存储数组的本身,不会像集合一样返回数组应用场景:①统计某个网站某个文章的uv(u......
  • 不常见的排序算法 - 桶排序、计数排序、基数排序
    提到排序,我们最先想到的肯定是常见的那些排序算法:选择排序、冒泡排序、快速排序、归并排序考虑到性能的情况下,我们应该会优先使用快速排序,因为它的平均时间复杂度是O(nlogn),至于归并排序,虽然它也是一个拥有O(nlogn)平均时间复杂的一个算法,但是它的空间复杂度较快排也较为苛刻,它......
  • 【略读论文|时序知识图谱补全】Learn from Relational Correlations and Periodic Eve
    会议:SIGIR,时间:2023,学校:国防科技大学摘要:之前模型存在的问题:未能利用快照内结构信息的关系之间的语义相关性与快照间时间交互沿时间轴的周期性时间模式。本文的工作:提出了一种新的推理模型(RPC);它通过两个新的通信单元,即关系通信单元(RCU)和周期通信单元(PCU),充分挖掘关系关联和周......
  • 【略读论文|时序知识图谱补全】Hierarchical Self-Atention Embedding for Temporal K
    会议:WWW,时间:2023,学校:东北大学计算机与通信工程学院摘要:目前TKGC模型存在的问题:只考虑实体或关系的结构信息,而忽略了整个TKG的结构信息。此外,它们中的大多数通常将时间戳视为一般特征,不能利用时间戳的潜在时间序列信息。本文的方法:一种基于自注意机制和历时嵌入技术的分层自注意......
  • 【略读论文|时序知识图谱补全】DREAM: Adaptive Reinforcement Learning based on Att
    会议:SIGIR,时间:2023,学校:苏州大学计算机科学与技术学院,澳大利亚昆士兰布里斯班大学信息技术与电气工程学院,Griffith大学金海岸信息通信技术学院摘要:原因:现在的时序知识图谱推理方法无法生成显式推理路径,缺乏可解释性。方法迁移:由于强化学习(RL)用于传统知识图谱上的多跳推理开......
  • 【略读论文|时序知识图谱补全】Adaptive Path-Memory Network for Temporal Knowledge
    会议:IJCAI,时间:2023,学校:1中国科学院计算机网络信息中心,北京2中国科学院大学,北京3澳门大学智慧城市物联网国家重点实验室,澳门4香港科技大学(广州),广州5佛罗里达大学计算机科学系,奥兰多摘要:提出一种新的具有TKG关联特征的体系结构建模方法,即自适应路径-记忆网络(DaeMon)。......
  • 【略读论文|时序知识图谱补全】Temporal Knowledge Graph Reasoning with Historical
    会议:AAAI,时间:2023,学校:上海交通大学摘要:大多数时序知识图谱的推理方法高度依赖于事件的递归或周期性,这给推断与缺乏历史交互的实体相关的未来事件带来了挑战。本文提出一种新的基于历史对比学习训练框架的对比事件网络(CENET)的新事件预测模型。1.CENET学习历史和非历史依赖来区......
  • 【略读论文|时序知识图谱补全】Logic and Commonsense-Guided Temporal Knowledge Gra
    会议:AAAI,时间:2023,学校:北京航空航天大学文中谓词可以视为关系。以往的TKG补全(TKGC)方法不能同时表示事件的时效性和因果关系。为了应对这些问题,作者提出了一个逻辑和尝试引导嵌入模型(LCGE),从常识的角度共同学习涉及事件的及时性和因果关系的时间敏感表示,以及事件的时间无关表示......