基于数据服务平台的时序数据持久化的方法及系统技术方案

技术编号:37986934 阅读:22 留言:0更新日期:2023-06-30 10:01
本发明专利技术公开了基于数据服务平台的时序数据持久化的方法及系统,属于时序数据库技术领域,本发明专利技术要解决的技术问题为如何提高数据服务平台总时序数据的查询性能,同时提高文件利用率,采用的技术方案为:该方法是将采集到的时序数据写入内存中,在内存中按固定大小分成多个block填充,当block写满后,将数据filsh写入到文件系统中;具体如下:定义文件结构:包括数据文件.data和索引文件.idx;行式数据转列式数据;按列压缩:配置compress参数,用于是否开启压缩;同时每列根据数据类型使用不同的压缩算法;将压缩后的数据持久化到文件系统。将压缩后的数据持久化到文件系统。将压缩后的数据持久化到文件系统。

【技术实现步骤摘要】
基于数据服务平台的时序数据持久化的方法及系统


[0001]本专利技术涉及时序数据库
,具体地说是一种基于数据服务平台的时序数据持久化的方法及系统。

技术介绍

[0002]浪潮数据服务平台(Inspur KaiWu Data Platform,简称KDP),KDP是浪潮开务数据库公司研发的以多模数据库为核心的数据中台产品,面向数字能源等多种场景。在数字能源场景中,设备终端多,设备类型多,每秒钟产生的数据量多,要求KDP支撑每秒钟上千万甚至上亿的写入能力,并对采集到的海量数据进行高效稳定的存储。
[0003]在大数据广泛应用的大环境下,积极探索互联网、大数据、云平台等信息技术与能源技术的深度融合,发挥能源+大数据的核心优势,加快能源一体化新产业融合发展,挖掘大数据价值,形成大数据资产,打造了一个云边端协作的分布式新能源微电网管理平台。KDP作为数字能源管理平台的核心组件,以多模数据库ZNBase为核心,分别为云端多租户能量管理SaaS服务和边缘端能源路由器微电网管理系统提供数据和算法支撑。
[0004]基于上述的场景,时序数据本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于数据服务平台的时序数据持久化的方法,其特征在于,该方法是将采集到的时序数据写入内存中,在内存中按固定大小分成多个block填充,当block写满后,将数据filsh写入到文件系统中;具体如下:定义文件结构:包括数据文件.data和索引文件.idx;行式数据转列式数据;按列压缩:配置compress参数,用于是否开启压缩;同时每列根据数据类型使用不同的压缩算法;将压缩后的数据持久化到文件系统。2.根据权利要求1所述的基于数据服务平台的时序数据持久化的方法,其特征在于,数据文件.data包括各个表的block,每个block的开始部分是block header,记录对应block的索引信息;block header之后是每个列的列信息ZColInfo,记录列的id、数据类型、偏移量、长度、预聚合结果及bitmap[],根据偏移量及长度定位任一列数据在文件中的位置,根据列类型使用相应的解压缩算法获取原始列数据,bitmap[]中每个bit标识列值是否为空。3.根据权利要求1或2所述的基于数据服务平台的时序数据持久化的方法,其特征在于,索引文件.idx的开始部分记录表索引的开始位置、长度以及表的个数信息,表索引的开始位置、长度以及表的个数信息之后是按照Table ID排序的表索引,表索引之后为每个表的块索引,同一个表的块索引是连续的,表索引记录对应表第一条块索引在索引文件中的位置;当block追加写入成功后,更新内存中的块索引信息,再定时将内存中的索引信息写入索引文件;若系统宕机时,内存中的最新索引信息未及时下盘时,根据数据文件.data中的block header重建内存索引。4.根据权利要求3所述的基于数据服务平台的时序数据持久化的方法,其特征在于,行式数据转列式数据具体如下:(1)、获取block对应的元数据信息;其中,元数据信息包括表的列数、列的类型和列id;(2)、从block中逐行获取数据:若当前读取到第N行,根据对应的元数据信息遍历解析第N行的每一列;(3)、判断所有行是否遍历解析完毕:

、若是,则结束;

、若否,则执行步骤(4);(4)、依次读取对应解析行的每一列;(5)、判断该解析行当前列值初始值是否为NULL:

、若是,则执行步骤(6);

、若否,则跳转至步骤(8);(6)、该解析行当前列值value是否为NULL:

、若是,则跳转至步骤(4);

、若否,则执行步骤(7);(7)、根据列类型type和block中总行数row_count,获取该列存所需要空间大小sizeof
(type)*count,并申请临时空间pData;(8)、将列值value插入临时空间pData中,并设置bitmap;其中,列值value根据列类型读取;(9)、判断该解析行所有的列是否解析完毕:

、若是,则跳转至步骤(2);

、若否,则跳转至步骤(4)。5.根据权利要求4所述的基于数据服务平台的时序数据持久化的方法,其特征在于,按列压缩具体如下:根据所有非空列的原始数据总长度申请压缩数据空间;从第0列开始遍历,获取第0列的对象指针;判断该列长度是否为0:若该列长度为0,则处理下一列;若该列长度不为0,则再判断是否开启压缩选项:若未开启压缩,则直接将原始列数据拷贝到底层存储;若开启压缩,则根据数据类型选择对应的压缩算法压缩;判断是否开启了二级压缩:若开启了二级压缩,则再进行二级通用压缩,同时更新列信息中该列数据在block中的偏移量和长度,继续遍历非空列进行压缩,直到所有列处理完毕,最后将压缩后的数据持久化到文件系统。6.根据权利要求5所述的基于数据服务平台的时序数据持久化的方法,其特征在于,持久化到文件系统具体如下:将压缩后的数据持久化到block队列中,flush线程从队列中依次持久化;一个flush刷盘流程结束,需要更新内存中的索引结构,根据block对应的table_id更新内存中的块索引;定时将内存中的索引写入索引文件,因内存索引写入文件为覆盖写,为避免写入失败损坏原有文件,先将原索引文件rename为同名的隐藏文件,内存索引写入新的索引文件,写入成功删除隐藏文件。7.一种基于数据服...

【专利技术属性】
技术研发人员:魏力贾德星赵钦虎
申请(专利权)人:上海沄熹科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1