一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于HBase的社区数据管理方法及系统与流程

2022-03-31 08:10:09 来源:中国专利 TAG:

一种基于hbase的社区数据管理方法及系统
技术领域
1.本发明涉及数据管理技术领域,特别涉及一种基于hbase的社区数据管理方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术,并不必然构成现有技术。
3.数据管理技术主要是指对现实世界真实存在的对象以及对象之间的关系建立模型,并且采用计算机相关技术对模型实现读写的技术。其意义在于将对象所具有的特征信息数字化,为大型的服务类应用提供数据与业务支持。数据的粒度以及管理策略决定相关服务类应用的精密性以及效率。早期的数据管理技术通常以关系型数据库技术为主,将现实对象的特征信息存储至固定的模型中以便操作。然而,随着计算机技术的发展以及数据量的增长,关系型数据库不再适用于海量且结构复杂的数据管理,因此非关系型数据库的相关管理技术应运而生。
4.社区数据主要包括社区居民、房产、社区车辆、附近兴趣点等半结构化数据以及社区监控视频、图像等非结构化数据。因此,针对于结构化数据的关系型数据库并不适用于社区服务场景,而hbase数据库是非关系型数据库的典型代表,hbase使用列的形式对数据进行管理,能够适应数据结构复杂多变的情况。与关系型数据库相比,hbase在随机查询、多表关联、历史数据分析等具体应用场景中能够保证较高的效率与实时性。另外,由于hbase的数据按列进行存储,同一列中的存储数据往往具有相同的形式以及有限的特征取值范围,相比于以行为主的数据更适合进行数据压缩。数据压缩的目的在于对同列中的数据进行整理,使列中的数据分布更加密集,从而在节省空间的同时提高数据传输速率。
5.然而,现有的数据压缩相关算法往往需要先验知识进行主观分类,且粒度过于细化的分类方式往往会导致计算复杂度变高,与此同时算法并未充分利用分类压缩的特点对查询索引进行优化。而hbase的数据压缩效率取决于数据预处理的方式以及压缩粒度,并且索引的建立方式影响数据查询的效率。


技术实现要素:

6.为了解决现有技术的不足,本发明提供了一种基于hbase的社区数据管理方法及系统,解决了数据压缩过程中存在的数据离散以及粒度选择问题,实现了对海量且结构多样的社区服务平台相关数据进行管理,使社区服务相关应用能够实时地对社区数据进行调用。
7.为了实现上述目的,本发明采用如下技术方案:
8.本发明第一方面提供了一种基于hbase的社区数据管理方法。
9.一种基于hbase的社区数据管理方法,包括以下过程:
10.获取社区数据,按照社区数据的结构形式,将相关数据存储至hbase表;
11.使用基于列特征聚类的混合压缩算法对hbase表中的数据进行压缩,同时将压缩
过程中产生的聚类中心点作为索引存储至hbase表中;
12.采用聚类索引存储模型将聚类中心点索引按照访问频率写入磁盘或缓存中。
13.进一步的,所述社区数据的结构形式包括半结构化的数据和非结构化的数据;
14.对于半结构化的数据,将半结构化的数据的列或列簇存储至hbase表;
15.对于非结构化的数据,将非结构化的数据转化为二进制文件后存储至hdfs文件系统中,同时建立与二进制文件特征相关的关键字联系表,将关键字联系表存储至hbase表。
16.进一步的,所述关键字联系表包含文件名称列和特征关键字列簇两部分;
17.所述文件名称列存储二进制文件的扩展名;
18.所述特征关键字列簇存储二进制文件所含有且可能含有的特征。
19.进一步的,所述基于列特征聚类的混合压缩算法的具体步骤为:
20.将hbase表中的数据按列进行划分为多个子表;
21.对子表中的数据进行编码,并计算特征相似度;
22.采用层次聚类算法对子表中的数据进行聚类。
23.进一步的,所述聚类索引存储模型还使用一致性hash算法优化缓存地址定位过程,具体的:
24.所述一致性hash算法将整个哈希值空间组织成一个环状区域以连续存储聚类中心点索引以及其周围的列数据,且缓存服务器的地址也被安排至环状区域内;
25.当待检索的索引通过hash算法定位到环状区域时,其顺时针方向遇到的第一个服务器即为待检索的索引应该定位到的服务器,由此待检索的索引以及周围连续空间内的列数据在该服务器中被访问。
26.进一步的,还包括,将查询任务分配到多线程中,得到多个子任务;每个子任务按照其分配到的数据批次通过所述聚类索引存储模型访问相应的索引,进而读取索引周围连续存储的列数据;最终多个子任务的查询结果被合并为总查询结果。
27.本发明第二方面提供了一种基于hbase的社区数据管理系统。
28.一种基于hbase的社区数据管理系统,包括:
29.社区数据存储模块,其被配置为:获取社区数据,按照社区数据的结构形式,将相关数据存储至hbase表;
30.数据压缩模块,其被配置为:使用基于列特征聚类的混合压缩算法对hbase表中的数据进行压缩,同时将压缩过程中产生的聚类中心点作为索引存储至hbase表中;
31.聚类索引存储模块,其被配置为:采用聚类索引存储模型将聚类中心点索引按照访问频率写入磁盘或缓存中。
32.进一步的,还包括查询模块,其被配置为:将查询任务分配到多线程中,得到多个子任务;每个子任务按照其分配到的数据批次通过所述聚类索引存储模型访问相应的索引,进而读取索引周围连续存储的列数据;最终多个子任务的查询结果被合并为总查询结果。
33.进一步的,所述社区数据的结构形式包括半结构化的数据和非结构化的数据;
34.对于半结构化的数据,将半结构化的数据的列或列簇存储至hbase表;
35.对于非结构化的数据,转化为二进制文件后存储至hdfs文件系统中,同时建立与二进制文件特征相关的关键字联系表,将关键字联系表存储至hbase表。
36.进一步的,所述关键字联系表包含文件名称列和特征关键字列簇两部分;
37.所述文件名称列存储二进制文件的扩展名;
38.所述特征关键字列簇存储二进制文件所含有且可能含有的特征。
39.与现有技术相比,本发明的有益效果是:
40.1、本发明所述的基于hbase的社区数据管理方法及系统,其为了弥补hbase的不足,对hbase的数据压缩过程以及基于索引的查询过程作出改进,分别提出了基于列特征聚类的混合压缩算法以及聚类索引存储模型,能够高度满足高动态与实时性的要求,从而使得海量且结构多样的社区数据得到有效管理,并且为社区服务类应用提供了高效实时的数据对接以及业务支持。
41.2、本发明所述的基于hbase的社区数据管理方法及系统,其采用的基于列特征聚类的混合压缩算法,将列数据进行压缩,并且使特征值相似的列数据分布于连续的存储空间当中,能够以适当的粒度将离散的列数据以聚类的方式进行规整,以节省存储空间。
42.3、本发明所述的基于hbase的社区数据管理方法及系统,其对于经过压缩的列,将聚类过程中所产生的聚类中心点按照访问频率存储至磁盘或缓存中,通过聚类中心点索引,系统用户能够获得与中心点特征值相似的列数据,与一般的查询索引相比,基于聚类中心点索引的查询方式搜索长度更短,能够满足系统的实时性要求,无需先验知识便可以实现数据的高效细化搜索,提高了查询精度与效率。
43.4、本发明所述的基于hbase的社区数据管理方法及系统,为了优化索引本身的访问效率以及存储效率,其采用聚类索引存储模型以实现聚类中心点索引的管理,使聚类中心点索引的存储与调用更加高效。
44.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
45.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
46.图1为本发明实施例1的一种基于hbase的社区数据管理方法的流程图;
47.图2为本发明实施例1的层次聚类算法的概念图;
48.图3为本发明实施例1的一致性hash算法的概念图。
具体实施方式
49.下面结合附图与实施例对本发明作进一步说明。
50.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
51.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
52.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
53.实施例1:
54.如图1所示,本发明实施例1提供了一种基于hbase的社区数据管理方法,充分利用了社区数据中所包含的各种半结构化以及非结构化数据的特点,对数据的压缩存储过程以及查询过程进行优化,提出了基于列特征聚类的混合压缩算法以及聚类索引存储模型。其中,基于列特征聚类的混合压缩算法首先将数据表中的各列拆分为不同的表,并且针对于每个列中的特征分布情况使用层次聚类算法将特征相似的列聚合在连续的存储空间中,与此同时将聚类过程生成的聚类中心点整合为多层次的树形结构。其后,采用聚类索引存储模型将所形成的聚类中心点按照其访问频率存储至磁盘或缓存中,使用一致性hash算法优化缓存地址定位过程,以提高查询的实时性。本实施例提供的一种基于hbase的社区数据管理方法不仅继承了hbase的优点,并且对压缩存储以及索引建立过程进行优化,使之更适用于海量且结构多样的社区数据的实时读写。具体包括以下步骤:
55.步骤1:使用hbase建立社区数据库。
56.获取社区数据,按照社区数据的结构形式,将相关数据存储至hbase表。其中,社区数据主要包括社区居民、房产、社区车辆和附近兴趣点等半结构化数据,以及社区监控视频和图像等非结构化数据。具体的:
57.对于半结构化的数据,使用hbase表结构对其列或列簇进行存储;即,对于半结构化数据,针对已知的列属性建立相应的hbase表,并且在此基础之上设定可扩展的列簇,该列簇的作用是管理可变化的数据列;将半结构化的数据的基本特征列和扩展特征列簇存储至hbase表。
58.对于视频、图像等非结构化的数据,以二进制文件的形式存储其整体,并且在hbase表中建立其关键字联系;即,对于非结构化数据,通常将其转化为二进制文件存储至hdfs文件系统中,于此同时建立与二进制文件特征相关的关键字联系表;关键字联系表同样采用hbase的表结构进行存储,其中,关键字联系表的表结构包含两个部分:文件名称列、特征关键字列簇;其中,文件名称列存储二进制文件的扩展名,而特征关键字列簇存储二进制文件所含有且可能含有的特征,如文件大小以及所属类型等,且该列簇可根据实际情况进行删除或扩展。将结构化数据的文件名称列和扩展特征列簇存储至hbase表。
59.经过上述步骤,来自于社区物业系统的社区数据按照其结构以合适的方式分别进行存储。
60.步骤2:使用基于列特征聚类的混合压缩算法对hbase表中的数据进行压缩,于此同时将压缩过程中产生的聚类中心点作为索引存储至hbase表中。其中,基于列特征聚类的混合压缩算法的总体流程如下:
61.(1)将hbase表中的数据按列进行划分并建表,针对每一个以列为单位划分的表,即,将社区数据库中的数据表按照列划分为多个子表,为聚类压缩作准备;其中,子表的复合行键采用(columnid_rowid_row-key)的形式进行表示,其中,columnid表示原列所处的位置、rowid表示子表中行数据的新位置、而row-key表示原行所处的位置;另外,在子表的复合行键列之后便是所划分的列值;以社区居民数据表为例,如表1和表2所示,假设划分出的其中一个子表为姓名表,则该子表的结构为(复合行键列,姓名列)。
62.表1示例表
63.row-keycol:namecol:gendercol:age

1fg45kh李明男34

3sad723王丽丽女22
………………
64.表2子表
[0065][0066][0067]
(2)数据表划分为子表之后,对每一个子表采取合适的聚类算法将特征值相似的列数据进行聚类,并且将聚类后的列数据存储至连续的空间当中以方便检索。具体包括:
[0068]
(201)对子表中的数据进行编码;
[0069]
由于聚类算法以特征值之间的相似度为基准进行聚类,因此需要根据每一列的数据类型对子表中的数据进行编码以计算特征相似度。在本发明所涉及的应用场景中,针对地址以及链接等非限定型字符串数据,通常采用简单字典编码中的前缀编码对其进行转化,而日期、时间或其它间距不大的数据类型通常采用增量编码进行转换。
[0070]
(202)对数据进行编码之后,开始对子表中的数据进行聚类,在聚类过程中采用适当的准则函数进行特征值相似度的计算。
[0071]
针对具有离散特征值的列,应根据实际情况设置判断用准则函数以衡量特征值(例如“红”与“粉红”)之间的相似度;其中,准则函数以两个特征值所对应的编码与可容忍的差异度为输入,输出两个特征值之间的相似度。
[0072]
作为一种实施方式,采用层次聚类算法对列数据进行聚类,层次聚类通过计算数据点之间的相似度将子表中的数据点进行逐步合并或分裂,以生成一个嵌套形式的聚类树。相比于其它形式的聚类算法,层次聚类对相似度的衡量方式并不敏感,因此适用于多种不同类型的数据点聚类,其时间复杂度也相对较小。此外,如图2所示,层次聚类算法能够将聚类过程生成的聚类中心点整合为树形结构,因此聚类索引存储模型能够直接以树的形式存储聚类中心点索引,加速索引的调用过程。由于初始的列数据通常以离散的形式存在,且先验分类知识往往较为缺乏,因此自顶向下的聚类形式并不适用于列数据的准确聚类。
[0073]
因此,本发明所提出的基于列特征聚类的混合压缩算法采用层次聚类的方式对子表中的列数据进行自底向上的聚类,在每一次的迭代过程中将相似度达到预设值的若干个点或聚类区域进行聚类,并且在形成新的聚类区域之后再次进行这一过程,直到聚类区域覆盖至整个列数据。在每一次的迭代过程中,所产生的聚类区域中心点将作为索引存储至hbase表中以供调用。经由聚类中心点索引,聚类区域内的点能够快速地被检索出来。
[0074]
步骤3:设计聚类索引存储模型,对聚类中心点索引的存储与调用过程进行优化。
步骤2中所产生的聚类中心点索引将按照访问频率被写入磁盘或内存中以备读取。聚类索引存储模型的目的在于提高查询过程中的索引调用效率。
[0075]
为了优化步骤2中所生成的聚类中心点索引本身的存储与调用过程,以提高查询效率,本发明特别提出了聚类索引存储模型以提高索引访问的速度。在步骤2中,聚类中心点索引本身以树形结构进行关联,类似于b-tree,本身的检索速率较一般的索引存储模型较高,但其本身并没有充分对社区数据库的硬件资源进行有效利用。虽然聚类后的列数据按照相似度存储于聚类中心点周围的连续空间当中,但聚类中心点本身的存储位置是随机的。因此,为了进一步地提高检索效率,将聚类中心点索引按照访问频率分别转存至磁盘或缓存中。其中,磁盘使用持久化分布式存储方式,缓存使用一致性hash算法进行地址映射。磁盘主要对聚类中心点索引进行长期持久性存储,而缓存中存储的则是访问频率较高的索引,即访问频率较高的中心点索引存入缓存中,低的中心点索引存入磁盘中。另外,在访问过程中如果缓存中未检索到相应的索引,则将磁盘中的检索结果转移至缓存中以供访问。
[0076]
缓存服务器能够加速索引的访问过程,但社区数据库的存储需求并非一成不变。当缓存服务器的数量发生变动时,索引的地址将会发生改变,存储于其中的大量缓存数据需要再次通过hash算法重新建立映射,服务器的计算压力将会剧增,因此,本发明将一致性hash算法应用于缓存服务器中索引地址的映射建立过程。如图3所示,一致性hash算法将整个哈希值空间组织成一个环状区域以连续存储聚类中心点索引以及其周围的列数据,且缓存服务器的地址也被安排至环状区域内。当待检索的索引通过hash算法定位到环状区域时,其顺时针方向遇到的第一个服务器即为当前索引应该定位到的服务器,由此当前索引以及周围连续空间内的列数据在该服务器中被访问。如果缓存服务器发生变动,仅需要对变动服务器中存储的索引重新定位即可,而其它服务器中的数据不会受到影响。综上,一致性hash算法在缓存服务区中表现出较好的容错性和扩展性,适用于聚类中心点索引的存储。
[0077]
步骤4:利用并行机制优化查询过程。基于单线程的查询机制不能够满足海量数据的实时查询要求,因此需要将查询任务分化至多线程中以对hbase数据库进行全面检索。
[0078]
在步骤4中,需要利用并行的机制优化查询过程,以满足查询的实时性要求。本发明将来自社区服务类应用的查询任务分配到多线程中,得到多个子任务,并且每个子任务按照其分配到的数据批次通过聚类索引存储模型访问相应的索引,进而读取索引周围连续存储的列数据。最终多个子任务的查询结果被合并为总查询结果,经由相应的外部接口被反馈至社区服务类应用中。综上,基于hbase的社区数据库与社区服务类应用完成实时性较高的业务对接。
[0079]
通过本发明所提出的基于列特征聚类的混合压缩算法以及聚类索引存储模型,社区数据按照特征值相似度被存储至连续的空间中,并且以高效的属性索引管理机制加速访问过程。在节省存储空间的同时提高了数据传输的效率,能够为社区服务类应用提供实时动态的业务支持。本发明的基于hbase的社区数据管理方法能够接受社区服务类应用的查询请求,以多线程并行的形式将查询任务进行分配,最终将各个查询子任务的检索结果进行汇总并反馈至社区服务类应用中。
[0080]
实施例2:
[0081]
本发明实施例2提供了一种基于hbase的社区数据管理系统,包括社区数据存储模
块、数据压缩模块、聚类索引存储模块和查询模块。
[0082]
社区数据存储模块,其被配置为:获取社区数据,按照社区数据的结构形式,将相关数据存储至hbase表;
[0083]
数据压缩模块,其被配置为:使用基于列特征聚类的混合压缩算法对hbase表中的数据进行压缩,同时将压缩过程中产生的聚类中心点作为索引存储至hbase表中;
[0084]
聚类索引存储模块,其被配置为:采用聚类索引存储模型将聚类中心点索引按照访问频率写入磁盘或缓存中。
[0085]
将基于hbase的社区数据库与社区服务类应用对接,针对不同开发环境下的应用采用合适的接口实现业务支持,最终,基于hbase的社区数据管理系统搭建完成。
[0086]
查询模块,其被配置为:将来自社区服务类应用的查询任务分配到多线程中,得到多个子任务,并且每个子任务按照其分配到的数据批次通过聚类索引存储模型访问相应的索引,进而读取索引周围连续存储的列数据;最终多个子任务的查询结果被合并为总查询结果,经由相应的外部接口被反馈至社区服务类应用中。
[0087]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献