一种医疗大数据存储中Hbase行键的编码及压缩方法技术

技术编号:15499921 阅读:79 留言:0更新日期:2017-06-03 22:01
一种医疗大数据存储中Hbase行键的编码及压缩方法,包括:第一,对查询条件的编码压缩,根据用到的查询条件,判断查询条件用到的值域是否固定,分别进行编码,直至所有的查询条件编码完成,将所有输出的压缩码拼接成新的字符,作为业务数据的行键将业务数据存放到Hbase表中;第二、查询过程,根据用到的查询条件,判断查询条件用到的值域是否固定,分别进行编码,将所有查询条件转换后到Hbase中查询业务数据。本发明专利技术有效控制行键长度、适应数据量的大幅增大,满足一定的基于多条件查询。

Encoding and compressing method of Hbase line key in medical large data storage

A Hbase for medical data storage in the key encoding and compression method, including: first, the query conditions of encoding compression, according to the use of query, query to determine whether fixed range condition used, respectively encoding, until all the query terms encoding is complete, all output compressed code is spliced into the new the character, as for key business data business data stored in the Hbase table; second, query process, according to the use of query, query to determine whether fixed range condition used, respectively encoding, all query terms after the conversion to Hbase business data query. The invention effectively controls the length of the line keys and greatly increases the amount of data to be adapted, and satisfies a certain inquiry based on multiple conditions.

【技术实现步骤摘要】
一种医疗大数据存储中Hbase行键的编码及压缩方法
本专利技术属于医疗数据存储领域,尤其涉及一种医疗大数据存储中Hbase行键的编码及压缩方法。
技术介绍
随着云存储、云计算的技术飞跃发展,面向医疗大数据存储的技术研究越来越热,在将医院的历史数据进行整合并集中存储到Hbase过程中,我们必须面对的首要问题是如何将医院数据的唯一标识即主键,使用一定的编码规则生成符合Hbase行键规范要求的唯一标识,原因是Hbase的行键Rowkey的长度不能太长,如果太长,如100个字节,那么区区1000万条数据的行键就要消耗将近占1G的内存空间,同时Hbase只有通过行键进行查询,才能高效率的返回结果,鉴于医疗行业的复杂性,只有将Hbase的行键设计成满足多条件查询才能满足实际的场景需求,加上各家医院的业务数据的唯一标识规范不一致,有些是纯数值型的序列,有些是字母、数字的混合编码,还有些干脆是全局唯一标识符(GUID)。这些都增加了Hbase行键编码设计的难度。为了提高Hbase的查询效率,绕开Hbase行键设计上的障碍,大数据技术专家们想到了很多的技术方案,申请号为201410336964.3的《一种海量数据查询方法》采用SolrCloud和HBase相结合的方法,将HBase非行键值rowkey查询字段与rowkey的索引映射关系维护到SolrCloud中,通过在SolrCloud中查询到查询字段对应的rowkey来实现高效的查询,这样行键的设置就没有了诸多的障碍,该技术方案的实现依赖于SolrCloud。申请号为201310667847.0的《一种基于HBase表的条件查询优化方法》采用Region预分配、RowKey设计及MapReduce来提高性能,在实现过程中,通过设定的查询条件以及预分配的Region来确定RowKey,这样通过明确的StartKey和EndKey就能实现快速查找,该方案适合通过job进行批量导入数据的应用场景。申请号为201310403001.6的《一种数据存储方法及装置》这个技术方案中的行键使用前缀+后缀的方式,前缀使用算法MD5计算出所述满足预设条件的属性字段的摘要值,后缀长度固定为9个字节,是由一个“=”和8字节表示的long整数组成,这样行键的长度就不能进行有效的控制,对内存的有效利用不是很好。申请号为201210147725.4的《基于Hbase数据库的倒排索引混合压缩及解压方法》该技术方案对Hbase数据库倒排索引数据表中的键部分采用键既字典压缩法进行压缩,即对行键通过字典查找法进行压缩,除此以外还对数据值部分进行压缩。方案提出的针对Hbase数据库下特定的倒排索引表的混合压缩方法具有很高的即时性,可以满足搜索引擎对于即时响应的要求。但是,由于Hbase数据库在源码中只给出了Lzo算法和Gzip算法的选项,因此为了在Hbase中能够使用该方法,必须对Hbase源码修改,同时需要给出本方法的Java调用接口。申请号为201610177721.9的《HBase二级索引的设计方法及查询方法》根据一数据源文件的数据量对HBase中的一数据表进行预分区,得到特定数量的区域,然后每个所述区域划分为主数据区和关联于所述主数据区的索引区,在索引区中的行键设为区域起始行键|索引列|索引键|索引值的形式。主数据区域的行键通过随机产生的Hash前缀(作为索引区域行键的前缀)来建立主数据区域和索引区域的关联关系,这种方案生成的行键长度也不能有效的控制,数据量增大的时候,会很快消耗掉内存空间。
技术实现思路
为了克服已有医疗数据存储方式的行键长度不能有效的控制、内存空间无法适应数据量的大幅增大的不足,本专利技术提供了一种有效控制行键长度、适应数据量的大幅增大的医疗大数据存储中Hbase行键的编码及压缩方法。本专利技术解决其技术问题所采用的技术方案是:一种医疗大数据存储中Hbase行键的编码及压缩方法,所述方法包括:第一,对查询条件的编码压缩,过程如下:步骤1.1、根据用到的查询条件,判断查询条件用到的值域是否固定,如果是固定值域,执行步骤1.2,否则执行步骤1.3和1.4;步骤1.2、公共字典表中查找对应的编码是否存在,如果存在则返回对应的ID压缩码,否则将字典类别发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入公共字典,返回ID压缩码;步骤1.3、将值域拆分为前缀+后缀的形式,根据拆分后的前缀和业务编码到域表中查找对应的记录,如果存在则返回该前缀的ID压缩码,否则将业务编码发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入域表中,返回前缀ID压缩码;步骤1.4、根据后缀和业务编码到码表中检索对应的记录,如果存在则返回压缩码,否则将业务编码发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入码表中,返回后缀ID压缩码;步骤1.5、重复执行步骤1.1至步骤1.4,直至所有的查询条件编码完成,将所有输出的压缩码拼接成新的字符,作为业务数据的行键将业务数据存放到Hbase表中。进一步,所述方法还包括:第二、查询过程,如下:步骤2.1、根据用到的查询条件,判断查询条件用到的值域是否固定,如果是固定值域,执行步骤2.2,否则执行步骤2.3和步骤2.4;步骤2.2、根据字典类别和查询条件到公共字典表中查找对应的记录,返回压缩码;步骤2.3、将值阈拆分为前缀+后缀的形式,根据拆分后的前缀和业务编码到域表中查找对应的记录,返回前缀ID压缩码;步骤2.4、根据拆分后的后缀和业务编码到码表中查找对应的记录,返回后缀ID压缩码;步骤2.5、根据步骤2.2、步骤2.3、步骤2.4返回的压缩码到Hbase中查询业务数据,如果是多条件查询,重复步骤2.1至步骤2.4,将所有查询条件转换后到Hbase中查询业务数据。再进一步,所述步骤1.1和2.1中,判断值域是否固定,判断的依据是(1)、其值是否可枚举;(2)、该信息编码跨系统、跨机构是否统一;对于固定值域,使用公共字典对其编码,编码从1开始依次递增;不同类别的信息各自编码;对于不固定的值域使用域码表对其进行编码,编码也是从1开始依次递增,不同域的字典各自编码。所述步骤1.3和1.4中,将业务编码发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码中,将前缀编码和业务编码作为行键放到域表中,使用ID生成服务根据业务编码生成编码序列——编码ID,再对编码ID生成前缀ID压缩码;同样,将后缀编码和业务编码作为行键放到码表中,使用ID生成服务根据业务编码生成编码序列——编码ID,再对编码ID生成后缀ID压缩码;最终,将原始编码转换的结果为:前缀ID压缩码+后缀ID压缩码。所述步骤1.2、1.3和1.4中,将ID生成服务返回的ID编码生成ID压缩码中,使用长整型对行键中的信息进行编码,编码字符选择ASCII码中的可打印字符,并将数值型字串转换为字符型字串进行压缩。所述ASCII码中的可打印字符,筛选结果为90个字符,如表1所示:#$%&()*+,-./0123456789:;<=>?@|ABCDEFGHIJKLMNOPQRSTUVW|XYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~表1本文档来自技高网
...
一种医疗大数据存储中Hbase行键的编码及压缩方法

【技术保护点】
一种医疗大数据存储中Hbase行键的编码及压缩方法,其特征在于:所述方法包括:第一,对查询条件的编码压缩,过程如下:步骤1.1、根据用到的查询条件,判断查询条件用到的值域是否固定,如果是固定值域,执行步骤1.2,否则执行步骤1.3和1.4;步骤1.2、公共字典表中查找对应的编码是否存在,如果存在则返回对应的ID压缩码,否则将字典类别发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入公共字典,返回ID压缩码;步骤1.3、将值域拆分为前缀+后缀的形式,根据拆分后的前缀和业务编码到域表中查找对应的记录,如果存在则返回该前缀的ID压缩码,否则将业务编码发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入域表中,返回前缀ID压缩码;步骤1.4、根据后缀和业务编码到码表中检索对应的记录,如果存在则返回压缩码,否则将业务编码发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入码表中,返回后缀ID压缩码;步骤1.5、重复执行步骤1.1至步骤1.4,直至所有的查询条件编码完成,将所有输出的压缩码拼接成新的字符,作为业务数据的行键将业务数据存放到Hbase表中。

【技术特征摘要】
1.一种医疗大数据存储中Hbase行键的编码及压缩方法,其特征在于:所述方法包括:第一,对查询条件的编码压缩,过程如下:步骤1.1、根据用到的查询条件,判断查询条件用到的值域是否固定,如果是固定值域,执行步骤1.2,否则执行步骤1.3和1.4;步骤1.2、公共字典表中查找对应的编码是否存在,如果存在则返回对应的ID压缩码,否则将字典类别发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入公共字典,返回ID压缩码;步骤1.3、将值域拆分为前缀+后缀的形式,根据拆分后的前缀和业务编码到域表中查找对应的记录,如果存在则返回该前缀的ID压缩码,否则将业务编码发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入域表中,返回前缀ID压缩码;步骤1.4、根据后缀和业务编码到码表中检索对应的记录,如果存在则返回压缩码,否则将业务编码发给ID生成服务,将ID生成服务返回的ID编码生成ID压缩码,存入码表中,返回后缀ID压缩码;步骤1.5、重复执行步骤1.1至步骤1.4,直至所有的查询条件编码完成,将所有输出的压缩码拼接成新的字符,作为业务数据的行键将业务数据存放到Hbase表中。2.如权利要求1所述的医疗大数据存储中Hbase行键的编码及压缩方法,其特征在于:所述方法还包括:第二、查询过程,如下:步骤2.1、根据用到的查询条件,判断查询条件用到的值域是否固定,如果是固定值域,执行步骤2.2,否则执行步骤2.3和步骤2.4;步骤2.2、根据字典类别和查询条件到公共字典表中查找对应的记录,返回压缩码;步骤2.3、将值域拆分为前缀+后缀的形式,根据拆分后的前缀和业务编码到域表中查找对应的记录,返回前缀ID压缩码;步骤2.4、根据拆分后的后缀和业务编码到码表中查找对应的记录,返回后缀ID压缩码;步骤2.5、根据步骤2.2、步骤2.3、步骤2.4返回的压缩码到Hbase中查询业务数据,如果是多条件查询,重复步骤2.1至步骤2.4,将所有查询条件转换后到Hbase中查询业务数据。3.如权利要求1或2所述的医疗大数据存储中Hbase行键的编码及压缩方法,其特征在于:所述步骤1.1和2.1中,判断值域是否固定,判断的依据是(1)、其值是否可枚举;(2)、该信息编码跨系统、跨机构是否统...

【专利技术属性】
技术研发人员:于海龙李建元温晓岳
申请(专利权)人:银江股份有限公司
类型:发明
国别省市:浙江,33

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

1