CN106682077A - 一种基于Hadoop技术的海量时序数据存储实现方法 - Google Patents

一种基于Hadoop技术的海量时序数据存储实现方法 Download PDF

Info

Publication number
CN106682077A
CN106682077A CN201611027977.8A CN201611027977A CN106682077A CN 106682077 A CN106682077 A CN 106682077A CN 201611027977 A CN201611027977 A CN 201611027977A CN 106682077 A CN106682077 A CN 106682077A
Authority
CN
China
Prior art keywords
data
measuring point
time series
series data
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611027977.8A
Other languages
English (en)
Other versions
CN106682077B (zh
Inventor
李海斌
丁书耕
李秀芬
张华伟
潘爱兵
陈勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Luruan Digital Technology Co Ltd
Original Assignee
Shandong Luneng Software Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Luneng Software Technology Co Ltd filed Critical Shandong Luneng Software Technology Co Ltd
Priority to CN201611027977.8A priority Critical patent/CN106682077B/zh
Publication of CN106682077A publication Critical patent/CN106682077A/zh
Application granted granted Critical
Publication of CN106682077B publication Critical patent/CN106682077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于Hadoop技术的海量时序数据存储实现方法,包括建立HBase主键存储主键设计方案模型、建立HBase数据行存储结构设计方案模型和访问时序数据等步骤,实现成本低,并且可大幅减少存储数据所需的存储空间和内存占用,提高了存储效率。

Description

一种基于Hadoop技术的海量时序数据存储实现方法
技术领域
本发明涉及大型生产流程自动化工业企业/集团的生产现场产生的巨量连续工艺参数数据的集中化存储和计算处理领域,属于时序数据存储技术领域,具体涉及一种基于Hadoop技术的海量时序数据存储实现方法。
背景技术
电力、石油、化工、新能源等重资产生产流程自动化工业是关系国计民生的主要生产部门,其主要生产过程需要连续不断进行。由于生产工艺的复杂性,生产过程中需要控制和测量的工艺参数(时序数据)繁多,需要记录的时序数据量非常大,采用常规的数据库产品不能胜任,为此专门出现了美国OSISOFT公司的PI、德国GE公司的iH、美国inStep公司的eDna、美国Wonderware公司的inSQL、美国Honeywell公司的PHD、北京庚顿公司Golden、上海麦杰公司的openPlant等实时数据库产品,实时数据库产品专门针对生产现场巨量时序数据存储和处理的数据库产品,它的出现对于打破流程工业生产管理领域的数据瓶颈,提升企业生产管理水平,提升生产工艺水平、准确监控和把握生产设备执行状态,提升设备执行可靠性起到了巨大的作用。
随着企业生产工艺的不断改进,生产管理水平的不断提高,需要采集和记录的工艺参数越来越多,需要记录的时序数据量象滚雪球一样剧增,同时随着大型流程企业的生产管理集团化趋势的发展,对集团级海量时序数据集中存储需求也越来越迫切。
常规的实时数据库产品基本采用单机结构,性能受到单台计算机性能的限制。目前实时数据库产品在使用常规的机械硬盘时的读写性能的极限一般在30~40万测点/秒以下,使用闪盘时,已经有非正式的测试数据显示达到了120万测点/秒的指标(目前大规模的使用闪盘作为主要存储介质成本依然昂贵)。在单台计算机硬盘读写速度的限制下,常规实时数据库产品时序数据读写性能进一步提高的空间非常狭窄。因此采用新的时序数据存储技术架构,以打破单台计算机性能瓶颈的限制,实现更高的时序数据读写性能和存储能力,已经是时序数据存储技术领域的一个迫切和现实的问题。
Hadoop是由Apache基金会所开发的大数据分布式***基础架构,Hadoop集群由多台计算机节点组成,数据分布在节点分布存储,计算任务按照数据就近的原则分配在各数据存储节点进行,采用Hadoop技术,搭建时序数据的存储平台,可以突破单台计算机性能的限制,极大地拓展目前实时数据库产品巨量时序数据存储和处理能力,更好的满足流程工业企业对时序数据存储和处理的需求。Hadoop技术中HBase技术适合搭建快速响应的应用,是搭建时序数据存储平台的最合适的技术平台。
HBase存储单调递增的连续数据时,会导致所有的访问负荷集中单个节点(hotnode)上,形成影响整个集群的性能瓶颈。要达到集群性能的最优,必须保证HBase存储数据均匀散列到所有的节点。为了减少硬盘的寻道时间,单个节点存储的数据要尽量连续存放,以提高访问性能。时序数据是时间连续的数据,必须要满足数据散列的要求,才能实现在HBase上的高效存储。
OpentsDB是目前基于HBase技术实现开源的时序数据存储平台,它一个分布式、可伸缩的时序数据库,它支持秒级数据采集,可以很方便添加节点的方式进行扩展,容易地实现海量时序数据的存储。它采用Metric(指标)和Tags(测点)2级方式组织数据,一个Metric下包含与其相关的全部Tags,每条记录记录一个Metric下所有Tags同一时刻下的数据,以一个Metric为一组数据的组织方式,打破了原来时序数据的连续性,可以比较容易的实现数据的散列,以Metric为一组的方式访问数据,可以获得很高的访问性能。但是由于打破了时序数据的连续性,访问单个测点或临时组织的一组测点的数据,非常低效;如果同一测点的时序数据在多个计算或应用中使用,就需要存储多份数据。企业生产现场生产工序繁多,时序数据的来源比较分散,很难保证诸多的控制***同步采集时序数据,采集的时序数据时刻不同步,OpentsDB采用存储方案不能很好的适应这种应用场景,无法满足企业生产现场时序数据平台的要求,只能作为专项计算或应用的时序数据存储使用,无法作为通用的企业时序数据存储平台使用。
发明内容
本发明的目的在于克服现有技术的不足,提供一种成本低,并且可大幅减少存储数据所需的存储空间和内存占用的基于Hadoop技术的海量时序数据存储实现方法。
本发明提供了一种基于Hadoop技术的海量时序数据存储实现方法,依次包括如下步骤:
1)、建立HBase主键设计方案模型:
a、在HBase中创建测点信息表,测点信息表内记录时序数据库存储时序数据的所有测点信息;
b、测点信息表内测点信息包含测点名和测点ID信息,其中测点ID为一整数,是测点的唯一标识符,按照测点创建的时间顺序,顺序递增;测点信息表以测点名为存储主键ROWKEY;
c、在HBase中创建测点数据表,测点数据表记录所有的时序数据;
d、测点的时序数据以小时为单元组织为一条HBase数据记录行;
e、时序数据行的存储主键ROWKEY由2部分组成:第一部分为按照高低位顺序反转的时序数据所属测点的测点ID,第二部分为自某一时间开始至记录的时序数据时间时刻期间流逝的小时数×3600的积;
2)、建立HBase数据行存储结构设计方案模型:
f、HBase时序数据表单个记录行内,一个小时的时序数据记录在一个数据列column内;
g、单个时序数据记录采用固定长度记录结构,时序数据记录按照数据时间先后顺序连续存储在一起;
h、时序数据记录对应的数据时刻,采用与整点小时内的偏移秒数,即距离0分0秒流逝的秒数,0-3599的整数格式存储,数据时刻记录按照与时序数据记录相同的顺序,前后联结在一起,作为数据列名column name;
3)访问时序数据:
a、外部访问时序数据时,提供要访问的时序数据对应的测点和数据时间/时间段,时序数据库首先从测点信息表中,按照外部提供的测点名检索到测点ID;
b、将检索到测点ID进行高低位顺序反转,将时间转换为某一时间开始至记录的时序数据时间时刻期间流逝的小时数×3600积的整数,然后组合成查询时序数据表所需的主键ROWKEY,检索出时序数据所在的数据行数据;
c、根据访问的时序数据的时刻,计算出该时刻在整点小时内的偏移秒数,即距离0分0秒流逝的秒数,0-3599,从数据列名内检索出该时序数据对应记录在数据行记录内容的顺序位置;
d、根据计算出位置,从数据行记录内容读取到所需的时序数据记录;
e、当写入时序数据时,将该记录行的内容整体读出后,将时序数据写入对应的位置,重新生成数据列名column name,删除原来的数据列名对应的数据,将新数据按照重新生成的数据列名column name写入HBase的测点数据表。
进一步地,采用整数作为测点在***内部唯一标识,每一测点对应唯一的标识符整数ID,测点标识符整数ID根据创建的时间自动递增,HBase测点信息表记录字符串测点名与测点标识符整数ID之间的关联关系。
进一步地,存储测点时序数据的HBase测点数据表的存储主键由2部分组成,高低数据位顺序反转的测点标识符ID和某一时间开始至记录的时序数据时间时刻期间流逝的小时数×3600的积。
进一步地,一个测点每-小时内所有时序数据组织为一行数据,存储在HBase测点数据表内。
进一步地,一个测点一个小时内所有时序数据存储在一个数据列内。
进一步地,单个时序数据采用固定长度的记录格式,一个测点一小时的所有时序数据按照其数据时刻在整点小时内的偏移秒数(距离0分0秒流逝的秒数,0-3599)的顺序,连续存储在一起,组成该测点在该小时时刻的存储数据行。
进一步地,一条存储数据行内记录的所有时序数据的数据时刻在整点小时内偏移秒数(距离0分0秒流逝的秒数,0-3599),采用固定长度的整数格式,按照存储数据行内时序数据的相同顺序,连续存储在一起,作为该行数据存储的数据列名column name。
本发明的基于Hadoop技术的海量时序数据存储实现方法,可以实现:
1)在HBase上实现高效的时序数据存储,设计了一套高效的HBase主键存储主键设计方案,可以实现时序数据在HBase集群各节点之间的均匀的分布,对HBase的数据访问负荷也会均匀的分布到各节点,避免个别节点负荷过重的热点现象影响集群的整体性能;同时实现节点内同一测点的时序数据按照时间顺序的连续存放,达到最佳的访问性能。
2)设计了一套HBase数据行存储结构设计方案,该方案可以大幅度提高HBase存储时序数据占用的存储空间和内存空间。相比采用高表结构,可缩减至高表所需主键数量的0.3‰~2%,可以有效地提高主键的查询效率和速度,同时大幅缩减数据记录所需的存储空间和内存占用;相比采用宽表结构,可以减少HBase数据存储文件的实际存储数据行数量至宽表所需的0.3‰~2%之内,可以有效减少HBase数据存储文件内主键重复存放所占用的存储空间(HBase数据存储文件内每行数据都以主键开始),从而大幅减少存储数据所需的存储空间。
3)基于各种应用场合的需求设计了基于HBase技术的时序数据数据库,相对于普通的实时数据库而言,它采用Hadoop分布式架构,可以轻易的添加节点进行扩展,支持海量数据存储轻而易举;相对于OpentsDB来说,它测点之间在存储上是完全独立的,比较方便同一个测点数据在不同计算、应用之间共享使用,也方便读取测点的历史数据,也可以适应不同来源、数据时刻不同步的时序数据的存储;同时它还提供数据插值、统计等高级支持功能,比较适合作为流程企业生产现场巨量的时序数据存储平台使用,尤其适合在集团级的海量时序数据存储使用。
附图说明
图1测点信息表和测点数据表结构示意图
图2读取时序数据的流程图
图3写入时序数据的流程图
具体实施方式
下面详细说明本发明的具体实施,有必要在此指出的是,以下实施只是用于本发明的进一步说明,不能理解为对本发明保护范围的限制,该领域技术熟练人员根据上述本发明内容对本发明做出的一些非本质的改进和调整,仍然属于本发明的保护范围。
本发明提供了一种基于Hadoop技术的海量时序数据存储实现方法,具体包括如下步骤:
1)、建立HBase主键存储主键设计方案模型
a、在HBase中创建测点信息表,测点信息表内记录时序数据库存储时序数据的所有相关测点,但是除时序数据以外的其它信息;
b、测点信息表内测点信息包含测点名和测点ID信息,其中测点ID为一整数,是测点的唯一标识符,按照测点创建的时间顺序,顺序递增;其中测点信息表以测点名为存储主键ROWKEY,可实现以测点名在HBase中高效率检索测点的信息。
c、在HBase中创建测点数据表,测点数据表记录所有的时序数据。
d、测点的时序数据以小时为单元组织为一条HBase数据记录行。
e、数据行的存储主键(ROWKEY)由2部分组成:第一部分为按照高低位顺序反转的时序数据所属测点的测点ID(测点信息表保存的测点ID),第二部分为自1970年7月1日0时开始至记录的时序数据时间时刻期间流逝的小时数×3600的积。
2)、建立HBase数据行存储结构设计方案模型
f、HBase时序数据表数据单个记录行内,一个小时的时序数据记录在一个数据列column内;
g、单个时序数据记录采用固定长度记录结构(4字节浮点数据值+2~4字节数据品质),时序数据记录按照数据时间先后顺序连续存储在一起。
h、时序数据记录对应的数据时刻,记录格式采用与整点小时的偏移秒数(2字节整数,0-3600秒),数据时刻记录按照与时序数据记录相同的顺序,前后联结在一起,作为数据列名(column name)。
测点信息表和测点数据表的结构可参照附图1。
3、访问时序数据的程序逻辑
a、外部访问时序数据时,需要提供要访问的时序数据对应的测点和数据时间/时间段,时序数据库首先从测点信息表(ROWKEY为测点名)中,按照外部提供的测点名检索到测点ID。
b、将检索到测点ID进行高低位顺序反转,将时间精度截取到小时,然后组合成查询时序数据表所需的ROWKEY,检索出时序数据所在的数据行数据。
c、根据访问的时序数据的时刻,计算出该时刻在整点小时内的偏移的秒数,从数据列名内检索出该时序数据对应记录在数据行记录内容的顺序位置。
d、根据计算出位置,从数据行记录内容读取到所需的时序数据记录。
e、当写入时序数据时,需要将该记录行的内容整体读出后,将时序数据写入对应的位置,重新生成数据列名(column name),删除原来的数据列名对应的数据,将新数据按照重新生成的数据列名(column name)写入HBase的测点数据表。
在具体的实施过程中:
1.搭建Hadoop硬件和网络环境,Hadoop和Hbase集群至少需要4台计算机组网,推荐5~10台;集群网络至少为千兆以太网,推荐万兆以太网。
2.Hadoop和Hbase集群的所有计算机具有相同的操作***,例如Linux操作***,并配置所有节点的网络和防火墙,保证所有节点计算机之间的通讯畅通。在节点上安装zookeeper、Hadoop、Hbase等软件,并进行相应的配置,启动Hadoop和Hbase集群,并保证Hadoop和Hbase集群执行正常。
3.在Hbase集群上创建测点信息表,该表只包含一个列族(column Family),列族名称尽可能短小,可只用1个字母,并在信息表内创建相关的测点的记录(测点信息必须包含测点ID,每个测点ID必须唯一,连续排列)。在Hbase集群上创建测点数据表,该表只包含一个列族(Column Family),列族名称尽可能短小,可只用1个字母。
4.准备数据文件,该文件内容为已在上面第3步中创建的测点的数据,数据内容包括测点名、数值、数据时刻、数据品质。
5.按照本发明提供的具体技术方案提供的逻辑流程,和上述准备的数据文件的格式编写数据一并写入。
6.执行数据写入步骤,数据写入步骤读取上述准备的数据文件,解析出所有的时序数据数据。
7.数据写入步骤依据每条时序数据的测点名,从上面第3步创建并导入数据的测点信息表中检索出测点对应测点ID。
8.数据写入步骤将检索到测点ID、解析出的该条时序数据的数据时刻,依照本发明提供的HBase主键存储主键设计方案进行处理、计算出该条时序数据的Hbase存储主键值。
9.数据写入步骤按照上面第8步生成的Hbase存储主键值,从上面第3步创建的Hbase测点数据表中检索出该主键对应存储数据和数据列名(column name)。
10.数据写入步骤依照本发明提供的HBase数据行存储结构设计方案,将该条时序数据对应的数值、数据时刻、数据品质处理、组合为HBase数据行存储结构设计方案提供的格式,并与从上面第9步检索出的数据进行合并,生成新的包含待写入的时序数据的新数据,与上面第9步检索出的数据列名合并,生成新的数据列名(column name)。
11.数据写入步骤将上面第10步中生成的新数据,按照上面第9步计算出的Hbase存储主键值和第10步中生成的新的数据列名(column name),将上面第3步创建的Hbase测点数据表内该Hbase存储主键值对应的数据更新为新的数据(上面第9步检索出的数据列名对应的旧数据删除,并创建新的数据列)。
12.重复第7~11步操作,将从第6步从数据文件中读取的所有时序数据全部写入Hbase测点数据表。
13.按照本发明提供的具体技术方案提供的逻辑,编写数据读取步骤。
14.执行数据读取步骤,输入要读取时序数据的测点和时刻。
15.数据读取步骤依据上面第14步输入的测点名,从上面第3步创建并导入数据的测点信息表中检索出测点对应测点ID。
16.将上面第14步输入的测点名和数据时刻,依照本发明提供的HBase主键存储主键设计方案进行处理、计算出该条时序数据的Hbase存储主键值。
17.数据读取步骤按照上面第8步生成的Hbase存储主键值,从上面第3步创建的Hbase测点数据表中检索出该主键对应存储数据和数据列名(column name)。
18.数据读取步骤依照本发明提供的HBase数据行存储结构设计方案,解析上面第17步检索返回的Hbase存储数据和数据列名,获得Hbase存储的对应上面第14步输入的测点名和数据时刻的时序数据的数值和数据品质。
19.数据读取步骤将上面第18步解析出的时序数据数值和数据品质打印出来。
20.终端用户将上面第19步中打印出来的数据与上面第4步准备的数据文件中的数据进行核对,以确定上述一系列的操作结果是否正确。
采用本发明方案提供的HBase时序数据存储方案,可以在HBase中实现高效率检索到测点在某一时刻或某一时间段内时序数据,同时以比较低的代价实现了时序数据可相对均匀的分布在不同的range中,以较低的代价,获取了最佳的性能。
采用整数测点ID,代替直接使用测点名在时序数据表中作为ROWKEY的一部分,可以避免直接使用不定长任意的字符串作为ROWKEY使用时带来的低效操作,虽然仍需要通过测点名来检索测点ID,但是调用程序可以使用数据缓存技术,避免重复检索测点ID的操作,从而提高操作效率。
时序数据表的ROWKEY采用高低位反转的测点ID+时间戳的方式,可以在保证数据的查询效率的同时,实现数据的均匀散布,不会出现“hotspotting”现象,导致个别集群节点负荷过重,拖累整个集群的性能表现。
使用均匀分布的散列数作为ROWKEY开始部分,将数据打散,以避免存储和访问集中在少数节点的“hotspotting”现象影响整个集群的性能。ROWKEY内使用的散列算法要求计算结果要散布均匀,算法要简单,计算耗费少,散列值与原始数据的对应关系要一对一(否则就需要在ROWKEY开始的散列值后面添加原始数据,已避免不同的数据计算出同一散列结果,造成ROWKEY的冲突);散列值到原始数据之间的反算要简便(否则要在散列值后面附加原始数据,以方便数据的使用和处理)。数据散列技术有许多种实现的方式,从复杂的MD5、CRC到简单的字符变换都可以,采用高低位顺序反转是连续数据最好的散列算法,该算法计算简单、结果散布均匀,计算结果与原始数据一一对应,从计算结果返算容易等优点。
采用以小时为单元的数据压缩存储在单列存储方式,可以大大节省存储和处理时序数据所需存储空间和内存。
假定不考虑历史版本数据存储占用的存储空间和内存,ROWKEY长度为16字节(测点ID占用8字节+时间戳占用8字节),单个时序数据长度12字节(8字节数值+4字节数据品质),如果按照存储的时序数据时间间隔为1秒钟,则采用本发明提供的存储方案每小时只需存储1条主键和数据记录行,根据HBase的数据文件存储结构,一小时的数据占用的存储空间为:
=4(key length)+4(value length)+{2(rowkey length)+16(rowkey)+1(columnfamily length)+1(column family)+[2×3600(column qualifer)]+8(timestamp)+1(keytype)}+{[8(数据值)+4(数据品质)]}×3600=50437(字节)。
采用高表的存储方案则需要3600条主键和数据记录行,一小时的数据占用的存储空间为:
={4(key length)+4(value length)+[2(rowkey length)+16(rowkey)+1(column family length)+1(column family)+0(column qualifer)+8(timestamp)+1(keytype)]+[8(数据值)+4(数据品质)]}×3600=176400(字节)。
采用宽表的存储方案需要1条主键和3600数据记录行,一小时的数据占用的存储空间为:
={4(key length)+4(value length)+[2(rowkey length)+16(rowkey)+1(column family length)+1(column family)+2(column qualifer)+8(timestamp)+1(keytype)]+[8(数据值)+4(数据品质)]}×3600=183600(字节)。
如果按照60秒数据间隔计算,则采用本发明提供的存储方案每小时只需存储1条主键和数据记录行,根据HBase的数据文件存储结构,一小时的数据占用的存储空间为:
=4(key length)+4(value length)+{2(rowkey length)+16(rowkey)+1(columnfamily length)+1(column family)+[2×60(column qualifer)]+8(timestamp)+1(keytype)}+{[8(数据值)+4(数据品质)]}×60=877(字节)。
采用高表的存储方案则需要60条主键和数据记录行,一小时的数据占用的存储空间为:
={4(key length)+4(value length)+[2(rowkey length)+16(rowkey)+1(column family length)+1(column family)+0(column qualifer)+8(timestamp)+1(keytype)]+[8(数据值)+4(数据品质)]}×60=2940(字节)。
采用宽表的存储方案需要1条主键和60数据记录行,一小时的数据占用的存储空间为:
={4(key length)+4(value length)+[2(rowkey length)+16(rowkey)+1(column family length)+1(column family)+2(column qualifer)+8(timestamp)+1(keytype)]+[8(数据值)+4(数据品质)]}×60=3060(字节)。
从上述计算结果中可以看出采用本发明方案相同数量的时序数据占用的存储空间约为高表和宽表方案的28~30%之间,节省的存储空间相当明显,存储空间节省带来的同样带来内存占用的节省。宽表方案虽然比高表方案多占用了一点存储空间,但是内存空间的占用可能会与高表方案持平或稍低,因为高表方案需要使用的ROWKEY数量是宽表方案的60~3600倍,需要在内存中占用更多的内存来记录ROWKEY的信息,并需要更多的处理时间进行查找工作。
尽管为了说明的目的,已描述了本发明的示例性实施方式,但是本领域的技术人员将理解,不脱离所附权利要求中公开的发明的范围和精神的情况下,可以在形式和细节上进行各种修改、添加和替换等的改变,而所有这些改变都应属于本发明所附权利要求的保护范围,并且本发明要求保护的产品各个部门和方法中的各个步骤,可以以任意组合的形式组合在一起。因此,对本发明中所公开的实施方式的描述并非为了限制本发明的范围,而是用于描述本发明。相应地,本发明的范围不受以上实施方式的限制,而是由权利要求或其等同物进行限定。

Claims (7)

1.一种基于Hadoop技术的海量时序数据存储实现方法,其特征在于,依次包括如下步骤:
1)、建立HBase主键设计方案模型:
a、在HBase中创建测点信息表,测点信息表内记录时序数据库存储时序数据的所有测点信息;
b、测点信息表内测点信息包含测点名和测点ID信息,其中测点ID为一整数,是测点的唯一标识符,按照测点创建的时间顺序,顺序递增;测点信息表以测点名为存储主键ROWKEY;
c、在HBase中创建测点数据表,测点数据表记录所有的时序数据;
d、测点的时序数据以小时为单元组织为一条HBase数据记录行;
e、时序数据行的存储主键ROWKEY由2部分组成:第一部分为按照高低位顺序反转的时序数据所属测点的测点ID,第二部分为自某一时间开始至记录的时序数据时间时刻期间流逝的小时数×3600的积;
2)、建立HBase数据行存储结构设计方案模型:
f、HBase时序数据表单个记录行内,一个小时的时序数据记录在一个数据列column内;
g、单个时序数据记录采用固定长度记录结构,时序数据记录按照数据时间先后顺序连续存储在一起;
h、时序数据记录对应的数据时刻,采用与整点小时内的偏移秒数,即距离0分0秒流逝的秒数,0-3599的整数格式存储,数据时刻记录按照与时序数据记录相同的顺序,前后联结在一起,作为数据列名column name;
3)访问时序数据:
a、外部访问时序数据时,提供要访问的时序数据对应的测点和数据时间/时间段,时序数据库首先从测点信息表中,按照外部提供的测点名检索到测点ID;
b、将检索到测点ID进行高低位顺序反转,将时间转换为某一时间开始至记录的时序数据时间时刻期间流逝的小时数×3600积的整数,然后组合成查询时序数据表所需的主键ROWKEY,检索出时序数据所在的数据行数据;
c、根据访问的时序数据的时刻,计算出该时刻在整点小时内的偏移秒数,即距离0分0秒流逝的秒数,0-3599,从数据列名内检索出该时序数据对应记录在数据行记录内容的顺序位置;
d、根据计算出位置,从数据行记录内容读取到所需的时序数据记录;
e、当写入时序数据时,将该记录行的内容整体读出后,将时序数据写入对应的位置,重新生成数据列名column name,删除原来的数据列名对应的数据,将新数据按照重新生成的数据列名column name写入HBase的测点数据表。
2.如权利要求1所述的方法,其特征在于:采用整数作为测点在***内部唯一标识,每一测点对应唯一的标识符整数ID,测点标识符整数ID根据创建的时间自动递增,HBase测点信息表记录字符串测点名与测点标识符整数ID之间的关联关系。
3.如权利要求1和2所述的方法,其特征在于:存储测点时序数据的HBase测点数据表的存储主键由2部分组成,高低数据位顺序反转的测点标识符ID和某一时间开始至记录的时序数据时间时刻期间流逝的小时数×3600的积。
4.如权利要求1所述的方法,其特征在于:一个测点每-小时内所有时序数据组织为一行数据,存储在HBase测点数据表内。
5.如权利要求1和4所述的方法,其特征在于:一个测点一个小时内所有时序数据存储在一个数据列内。
6.如权利要求1、4和5所述的方法,其特征在于:单个时序数据采用固定长度的记录格式,一个测点一小时的所有时序数据按照其数据时刻在整点小时内的偏移秒数(距离0分0秒流逝的秒数,0-3599)的顺序,连续存储在一起,组成该测点在该小时时刻的存储数据行。
7.如权利要求1、4、5和6所述的方法,其特征在于:一条存储数据行内记录的所有时序数据的数据时刻在整点小时内偏移秒数(距离0分0秒流逝的秒数,0-3599),采用固定长度的整数格式,按照存储数据行内时序数据的相同顺序,连续存储在一起,作为该行数据存储的数据列名column name。
CN201611027977.8A 2016-11-18 2016-11-18 一种基于Hadoop技术的海量时序数据存储实现方法 Active CN106682077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611027977.8A CN106682077B (zh) 2016-11-18 2016-11-18 一种基于Hadoop技术的海量时序数据存储实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611027977.8A CN106682077B (zh) 2016-11-18 2016-11-18 一种基于Hadoop技术的海量时序数据存储实现方法

Publications (2)

Publication Number Publication Date
CN106682077A true CN106682077A (zh) 2017-05-17
CN106682077B CN106682077B (zh) 2020-06-09

Family

ID=58865760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611027977.8A Active CN106682077B (zh) 2016-11-18 2016-11-18 一种基于Hadoop技术的海量时序数据存储实现方法

Country Status (1)

Country Link
CN (1) CN106682077B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107609194A (zh) * 2017-10-17 2018-01-19 吉林省电力科学研究院有限公司 一种面向云计算的时间冗余电力负荷数据的存储方法
CN107609143A (zh) * 2017-09-21 2018-01-19 国电南瑞科技股份有限公司 一种分布式实时内存数据库的分片信息存储方法
CN108052599A (zh) * 2017-12-12 2018-05-18 清华大学 一种支持特征查询的时序数据存储的方法和装置
CN108182244A (zh) * 2017-12-28 2018-06-19 清华大学 一种基于多层次列式存储结构的时序数据存储方法
CN108647243A (zh) * 2018-04-13 2018-10-12 中国神华能源股份有限公司 基于时间序列的工业大数据存储方法
CN110019352A (zh) * 2017-09-14 2019-07-16 北京京东尚科信息技术有限公司 用于存储数据的方法和装置
CN110287198A (zh) * 2019-07-01 2019-09-27 四川新网银行股份有限公司 基于HBase数据库的金融数据索引方法
CN110825581A (zh) * 2019-10-14 2020-02-21 广州力挚网络科技有限公司 一种数据监控方法与监控平台
CN111125119A (zh) * 2019-12-30 2020-05-08 中科星图股份有限公司 一种基于HBase的时空数据存储与索引方法
CN112579836A (zh) * 2021-03-01 2021-03-30 深圳市土地公网络科技有限公司 一种多数据库数据处理方法及***
CN112579608A (zh) * 2020-12-25 2021-03-30 平安银行股份有限公司 案件数据查询方法、***、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663097A (zh) * 2012-04-10 2012-09-12 农业部信息中心 一种基于Hadoop+Hbase的农业时序数据组织方法
US20130103658A1 (en) * 2011-10-19 2013-04-25 Vmware, Inc. Time series data mapping into a key-value database
CN103605805A (zh) * 2013-12-09 2014-02-26 冶金自动化研究设计院 一种海量时序数据的存储方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103658A1 (en) * 2011-10-19 2013-04-25 Vmware, Inc. Time series data mapping into a key-value database
CN102663097A (zh) * 2012-04-10 2012-09-12 农业部信息中心 一种基于Hadoop+Hbase的农业时序数据组织方法
CN103605805A (zh) * 2013-12-09 2014-02-26 冶金自动化研究设计院 一种海量时序数据的存储方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019352B (zh) * 2017-09-14 2021-09-03 北京京东尚科信息技术有限公司 用于存储数据的方法和装置
CN110019352A (zh) * 2017-09-14 2019-07-16 北京京东尚科信息技术有限公司 用于存储数据的方法和装置
CN107609143A (zh) * 2017-09-21 2018-01-19 国电南瑞科技股份有限公司 一种分布式实时内存数据库的分片信息存储方法
CN107609194B (zh) * 2017-10-17 2020-08-07 吉林省电力科学研究院有限公司 一种面向云计算的时间冗余电力负荷数据的存储方法
CN107609194A (zh) * 2017-10-17 2018-01-19 吉林省电力科学研究院有限公司 一种面向云计算的时间冗余电力负荷数据的存储方法
CN108052599A (zh) * 2017-12-12 2018-05-18 清华大学 一种支持特征查询的时序数据存储的方法和装置
CN108182244A (zh) * 2017-12-28 2018-06-19 清华大学 一种基于多层次列式存储结构的时序数据存储方法
CN108647243A (zh) * 2018-04-13 2018-10-12 中国神华能源股份有限公司 基于时间序列的工业大数据存储方法
CN108647243B (zh) * 2018-04-13 2021-11-23 中国神华能源股份有限公司 基于时间序列的工业大数据存储方法
CN110287198A (zh) * 2019-07-01 2019-09-27 四川新网银行股份有限公司 基于HBase数据库的金融数据索引方法
CN110825581A (zh) * 2019-10-14 2020-02-21 广州力挚网络科技有限公司 一种数据监控方法与监控平台
CN111125119A (zh) * 2019-12-30 2020-05-08 中科星图股份有限公司 一种基于HBase的时空数据存储与索引方法
CN112579608A (zh) * 2020-12-25 2021-03-30 平安银行股份有限公司 案件数据查询方法、***、设备及计算机可读存储介质
CN112579608B (zh) * 2020-12-25 2024-06-21 平安银行股份有限公司 案件数据查询方法、***、设备及计算机可读存储介质
CN112579836A (zh) * 2021-03-01 2021-03-30 深圳市土地公网络科技有限公司 一种多数据库数据处理方法及***

Also Published As

Publication number Publication date
CN106682077B (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
CN106682077A (zh) 一种基于Hadoop技术的海量时序数据存储实现方法
CN104794123B (zh) 一种为半结构化数据构建NoSQL数据库索引的方法及装置
CN102222085B (zh) 一种基于相似性与局部性结合的重复数据删除方法
CN107423422B (zh) 基于网格的空间数据分布式存储及检索方法和***
CN102867071B (zh) 一种网管海量历史数据管理方法
CN102929936B (zh) 日志记录方法、日志查询方法及***
CN105389367B (zh) 基于Mongo数据库的电网图形多时态多级分布式存储方法
CN1936859A (zh) 一种内存监控方法
CN104035956A (zh) 一种基于分布式列存储的时间序列数据存储方法
CN102779138B (zh) 实时数据的硬盘存取方法
CN110727406A (zh) 一种数据存储调度方法及装置
CN103885887A (zh) 用户数据存储方法、读取方法及***
CN108399047A (zh) 一种闪存文件***及其数据管理方法
CN110209891A (zh) 一种拉链表生成方法、装置、设备及介质
CN110287251A (zh) MongoDB到HBase的分布式高容错数据实时同步方法
CN107741947B (zh) 基于hdfs文件***的随机数密钥的存储与获取方法
CN111427964A (zh) 一种面向运行时间戳的工业云数据存储模型
CN105787090A (zh) 一种电力数据的olap***的索引建立方法和***
CN116756253B (zh) 关系型数据库的数据存储、查询方法、装置、设备和介质
CN110008289A (zh) 一种关系数据库、电网模型数据存储及检索方法
CN102855327B (zh) 一种小型嵌入式文件存储管理***
Ma et al. A retrieval optimized surveillance video storage system for campus application scenarios
CN110134690B (zh) Oracle数据库超大数据快速存储方法及***
CN111124313A (zh) 电力采集终端数据读写方法、装置和电子设备
CN110866068A (zh) 一种基于hdfs的公告数据存储方法及其装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 250101 5th floor, block B, Yinhe building, 2008 Xinluo street, high tech Zone, Jinan City, Shandong Province

Patentee after: Shandong luruan Digital Technology Co.,Ltd.

Address before: 250101 5th floor, block B, Yinhe building, 2008 Xinluo street, high tech Zone, Jinan City, Shandong Province

Patentee before: SHANDONG LUNENG SOFTWARE TECHNOLOGY Co.,Ltd.