掌桥专利:专业的专利平台
掌桥专利
首页

一种基于HBase的健康医疗数据查询方法

文献发布时间:2023-06-19 10:27:30


一种基于HBase的健康医疗数据查询方法

技术领域

本发明涉及数据存储与查询技术领域,特别涉及一种基于HBase的健康医疗数据查询方法。

背景技术

随着移动互联网、5G的新兴技术不断发展的今天,各种应用、App(Application,应用程序)日益普及导致医疗行业产生的数据量越来越大、数据种类越来越多样化,不仅包括传统的用二维表存储的结构化数据,也包括各种图片、文档、音视频非结构化数据和xml、html等半结构化数据,这对传统关系型数据库的存储和查询构成了很大的挑战。

传统数据库一般都是单体架构,缺乏分布式的可扩展的架构支持,这就不能很好的满足超大规模数据的存储需要,也不能满足性能方面的要求,毕竟单体架构的垂直升级是有瓶颈的,不可能无限制升级,但分布式就不存在这个问题,可无限制扩展。在这种背景下,为了支撑行业数据的存储和查询需求,必须寻求一种分布式的可扩展的数据库架构,在硬件基本不变的情况下满足海量数据的存储、查询、分析功能。

为了解决现有技术中大数据量分析,查询效率低的问题,本发明提出了一种基于HBase的健康医疗数据查询方法。

发明内容

本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于HBase的健康医疗数据查询方法。

本发明是通过如下技术方案实现的:

一种基于HBase的健康医疗数据查询方法,其特征在于:首先基于入院记录表在HBase中创建存储健康医疗数据的HBase表,客户端搜集过滤条件调用HBase接口,HBase接口查询数据,并将数据返回客户端解析处理。

所述HBase表创建支持预分区的方式,一个分区对应一个region,加载HBase表时能够将HBase表的region加载到不同的regionserver(提供读写服务的进程)上,通过负载均衡,从而提高数据的读写效率。

通过所述客户端选择过滤条件拼装成设计行键rowkey或设计行键rowkey前缀,然后向HBase发送读请求,获取真正的行键rowkey的查询范围;然后根据行键rowkey查询范围获取列族中的列数据,并将获取到的列数据返回客户端;客户端接收返回的列数据并对数据进行解析。

所述设计行键rowkey格式为1位大写随机字母+身份证号+医院名称+Long.Max_Value–入院时间。

所述客户端获取身份证号、医院名称和入院时间范围作为入参调用HBase接口。

HBase协处理器查询HBase表的每个region的起始键startkey前缀,并将起始键startkey前缀与客户端传入的设计行键rowkey拼装成真正的行键rowkey,然后调用HBase的读接口获取真正的行键rowkey的查询范围。

所述客户端根据传入的参数拼接起始行键startRowkey和终止行键endRowkey,然后将HBase表的每个分区的起始键startKey与客户端拼接的起始行键startRowkey和终止行键endRowkey生成真正的起始行键startRowkey和真正的终止行键endRowkey。

将入院记录表的所有列和列值拼装成json串存入到HBase表列族的一个列下,所述客户端根据HBase接口返回的json串进行解析处理。

本发明的有益效果是:该基于HBase的健康医疗数据查询方法,查询HBase表记录时能够实现毫秒级返回,不仅提高了数据存储的可扩展性,还提高了查询效率,适宜推广应用。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

附图1为本发明基于HBase的健康医疗数据查询方法示意图。

附图2为本发明读取数据时序示意图。

具体实施方式

为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

HBase(Hadoop Database)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase与传统的关系数据库的区别主要体现在以下几个方面:

1、数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储方式,HBase则采用了更加简单的数据模型,它把数据存储为未经解释的字符串。

2、数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂的多表连接。HBase操作则不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等,因为HBase在设计上就避免了复杂的表和表之间的关系。

3、存储模式:关系数据库是基于行模式存储的。HBase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的。

4、数据索引:关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。HBase只有一个索引——行键,通过巧妙的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来。

5、数据维护:在关系数据库中,更新操作会用最新的当前值去替换记录中原来的旧值,旧值被覆盖后就不会存在。而在HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留。

6、可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也比较有限。相反,HBase和BigTable这些分布式数据库就是为了实现灵活的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩。

该基于HBase的健康医疗数据查询方法,首先基于入院记录表在HBase中创建存储健康医疗数据的HBase表,客户端搜集过滤条件调用HBase接口,HBase接口查询数据,并将数据返回客户端解析处理。

所述HBase表创建支持预分区的方式,一个分区对应一个region,加载HBase表时能够将HBase表的region加载到不同的regionserver(提供读写服务的进程)上,通过负载均衡,从而提高数据的读写效率。

建表语句如下:

create'EMR_ADMISSION_RECORD','f',SPLITS=>['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

通过所述客户端选择过滤条件拼装成设计行键rowkey或设计行键rowkey前缀,然后向HBase发送读请求,获取真正的行键rowkey的查询范围;然后根据行键rowkey查询范围获取列族中的列数据,并将获取到的列数据返回客户端;客户端接收返回的列数据并对数据进行解析。

设计行键rowkey时要同时兼顾读写性能,不能出现写热点问题,也不能影响读的查询效率。

所述设计行键rowkey格式为1位大写随机字母+身份证号+医院名称+Long.Max_Value–入院时间。

注:随机字母保证写入数据时能够打乱数据,避免写热点问题,使数据均匀写入到所有region中,时间戳反转可以查询某个人在某个医院的一段时间内的入院记录。

所述客户端获取身份证号、医院名称和入院时间范围作为入参调用HBase接口。

HBase协处理器查询HBase表的每个region的起始键startkey前缀,并将起始键startkey前缀与客户端传入的设计行键rowkey拼装成真正的行键rowkey,然后调用HBase的读接口获取真正的行键rowkey的查询范围。

所述客户端根据传入的参数拼接起始行键startRowkey和终止行键endRowkey,然后将HBase表的每个分区的起始键startKey与客户端拼接的起始行键startRowkey和终止行键endRowkey生成真正的起始行键startRowkey和真正的终止行键endRowkey。

将入院记录表的所有列和列值拼装成json串存入到HBase表列族的一个列下,所述客户端根据HBase接口返回的json串进行解析处理。

表1表逻辑模型:

以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

相关技术
  • 一种基于HBase的健康医疗数据查询方法
  • 一种基于hbase-indexer的查询方法、装置及电子设备
技术分类

06120112553869