发明名称 一种海量时序数据的存储方法
摘要 一种海量时序数据的存储方法,属于数据管理技术领域。采用设计精简的HBase主键,并根据不同类型时序数据的存储及访问特性对时序数据分类并设计存储机制:对于实时数据、大周期数据以及无周期数据,采用简单行存储,即一条时序数据对应一条HBase行记录,通过简单行存储实现快速插入及检索数据;对于历史数据,采用把某一时段内的历史时序数据存储为HBase的一条行记录的段存储机制,通过段存储实现快速、高吞吐性能的历史数据数据检索数。优点在于,解决了具有实时访问性能的海量时序数据存储问题。
申请公布号 CN103605805A 申请公布日期 2014.02.26
申请号 CN201310659810.3 申请日期 2013.12.09
申请人 冶金自动化研究设计院 发明人 朱寅;李勇;徐化岩;于立业;黄霜梅;余志刚;赵博;贾天云;梁青艳;王丽娜
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京华谊知识产权代理有限公司 11207 代理人 刘月娥
主权项 一种海量时序数据的存储方法,其特征在于:工艺步骤:(1)采用HBase集群来直接管理企业的时序数据,由HBase写数据到Hadoop分布式文件系统,最终由Hadoop归档数据到磁盘;外部用户通过访问HBase来读、写、删除时序数据;(2)企业的每个需要存储的时序数据点均具有唯一Id,通过数据点Id定位具体的数据点并获取数据点名称等信息,其中,Id为大于或等于0的长整型数据,这使得数据存储系统支持万亿级的数据点管理;(3)数据增加和数据修改均是数据写的一种特殊形式,在HBase中均通过Put操作完成,把数据增加和数据修改均统一到数据写入操作;在数据写入时,每个数据点的一条或多条时序记录成为HBase数据表的一条行记录;行记录包括行键rowkey和值部分;HBase数据表通过行键区分行记录;行键设计为比特串,具体为:数据点Id.toBytes+时间戳.toBytes,其中数据点Id在前,时间戳在后,它们一前一后把同一数据点的数据聚在一起,方便查询某一数据点在某一时段的数据;Id为长整型,最多占用8字节,且根据数据点Id的值大小来自动选取最短长度的比特流,小于256的Id只需用1个字节;时间戳精确到毫秒,也采用长整型表示,占用8个字节,行键最多占用16字节;(4)具体哪个数据点的时序数据写入到哪张HBase数据表中,由平衡存储机制来控制;通过平衡存储,实现在数据访问时把网络I/O和磁盘I/O分布到集群中多个机器上,提高总的网络吞吐量和磁盘吞吐量;通过为每个数据点定义一个启发知识来实现平衡存储;在读、写某一数据点的数据时,根据数据点的启发知识确定其HBase数据表;(5)按照是否周期性的有数据,把时序数据点分为两类:周期性的,即数据点每隔指定时间就有一条时序数据;无周期的,即该数据点数据流的时间戳是没有周期性规律的;按照周期数据点的周期大小,把周期性数据点分为小周期数据点和大周期数据点;其中,用于分类的周期阈值通过配置设定;按照数据新旧,把小周期性数据点的具体时序数据分为两类:历史数据,指时间戳在某一时刻之前的数据;实时数据,指除历史数据以外的数据。历史数据和实时数 据的分割时刻实际也是实时数据起始时刻。用户在访问周期性数据点时,主要是访问某一时刻的实时数据,或者访问某一时段的历史数据;实时数据起始时刻的计算公式为:实时数据的起始时刻=当前段存储的开始时刻–段存储的时间区间大小*n当前段存储的开始时刻=当前时刻–当前时刻%段存储的时间区间大小段存储的时间区间大小=存储周期*存储的数据点个数;其中,n为大于0的整数;%为数学求模运算符。
地址 100071 北京市丰台区西四环南路72号