适合大小文件的海量医疗数据存储系统及数据存储方法技术方案

技术编号:17996832 阅读:129 留言:0更新日期:2018-05-19 13:47
本发明专利技术实施例提供的适合大小文件的海量医疗数据存储系统及数据存储方法,属于数据存储技术领域。该系统针对医疗领域适合海量大文件、小文件并存的应用场景,解决了传统关系型数据库不适合非结构化数据的问题、解决了redis不适合海量数据存储的问题、改善了只采用hbase做存储时候面临的系统不稳定的问题、极大改善了单纯采用hdfs中解决小文件存储所面临的不适合大文件和文件不方便检索的问题。

【技术实现步骤摘要】
适合大小文件的海量医疗数据存储系统及数据存储方法
本专利技术涉及数据存储
,具体而言,涉及适合大小文件的海量医疗数据存储系统及数据存储方法。
技术介绍
随着医疗卫生信息化建设进程不断加快,医疗数据的类型与规模正在以前所未有的速度增长,并且在临床诊疗工作中,有大量的知识需求亟待通过计算机来提供。至少包括如下几类:一是基础知识库。主要是指合理用药、医学公式、医学术语集等“静态”规则类知识。二是临床诊疗知识库。主要是指经过人工不断总结形成的知识,包括临床路径、临床指南、疾病诊治知识库等。三是参考文献。特别是罕见病诊治更需要国内外参考文献提供借鉴。四是从历史病例挖掘形成的知识。然而这些数据,有些属于大文件有些属于小文件,面对这些海量的大小不等的数据,如何更好的存储并方便后续高效分析使用成为一个难题。传统的数据存储方法可选用关系型数据库,常用的就是关系型数据库管理系统Mysql或Orcal,它可支持数据的存储和复杂的查询,但会遇到如下问题:首先,对海量数据和数据更新操作支持力度不够。当数据量比较大或者数据读写更新的频率频繁的情况下,Mysql或Orcal的性能很差,即使对数据库内存表的锁进行优化,其性能也随着数据量的增大而下降;其次,数据的类型比较复杂,有结构化、半结构化和非结构化数据之分,单纯选择关系型数据库就变得不适用。另外一种就是选用高性能的key-value存储系统Redis数据库,它支持复杂的数据类型,并且所有数据都可保存在内存中,在数据量大或者读写更新操作频繁的情况下,可保证消息处理的时效性,但会遇到如下问题:Redis的数据一般不要求实时落地,也不太适合大量数据的存储。常见的另外一种提高数据存储的方法是选用分布式的、面向列的Hbase数据库,它可以搭建分布式的数据存储集群,但是也存在如下问题:虽然Hbase对海量数据的存储支持性比较好,但并不是完全高可用,并且当数据量很大的时候,Hbase的Region因经常做Split产生抖动,使得存储和检索都不是很稳定。目前,当数据量比较大的时候,常采用HDFS系统,但是HDFS针对小文件也存在因文件数目多而导致的整个系统缓慢的问题。为改善这个问题,目前常通过Hadoop提供的SequenceFile、MapFile,把小文件先组合成一个大文件进行存储,但是也存在一些问题,比如无法简单快速的列出小文件目录,从而无法实现快速检索。因此,现有技术中存在无法简单快速的列出小文件目录,以及无法实现快速检索的技术问题。
技术实现思路
本专利技术提供的适合大小文件的海量医疗数据存储系统及数据存储方法,旨在改善上述问题。本专利技术提供的适合大小文件的海量医疗数据存储系统,包括:用户注册模块、监控报警模块、处理模块、数据索引模块、接口模块和负载均衡模块;所述用户注册模块用于管理院区信息、科室信息以及用户名信息;并且还用于在进行用户注册新增操作时,使得用户需要按照预设规则进行注册,当不满足所述预设规则时,发送提示信息至用户终端;当注册成功时,为所述用户赋予文件操作权限,以及将所述用户信息按照预设格式进行存储;所述监控报警模块用于实时监控各个存储服务器和各个服务模块的运行状态,以及当所述系统或服务状态异常时发送邮件或短信报警,使得第一时间通知系统管理人员,以及在状态恢复后发出正常的邮件或短信通知,以使用户能够在正常后进行及时使用;所述处理模块用于将用户上传的海量小文件按照预设处理规则分组合并成sequenceFile,并根据不同的队列进行合并所述文件,进而减少用户访问数据的压力;所述数据索引模块用于为用户所上传的数据分配唯一标识符和索引;所述接口模块用于提供上传、查看下载、删除文件的接口,以使用户通过所述接口模块完成用户文件上传、下载或删除操作;所述负载均衡模块用于根据用户发送的消息包中所携带的用户的IP和操作信息,对所述用户发送的消息包进行解析,然后根据IP和操作的类型选择对应的服务器组;以及还用于获得各个服务器的性能状态,然后再根据每个所述服务器的性能状态选择多个所述服务器中的任意一个所述服务器,从而将数据报文中的目标地址修改为所述服务器所对应的地址。可选地,所述处理模块具体用于:从kafka的未消费缓存队列集合中逐个获取用户文件,并写入到预设的维护的序列文件集合中;判断所述序列文件集合的值是否达到预设值;若是,将所述序列文件集合中的文件合并写入到HDFS中的序列文件中;当写入成功后,将操作日志写入到log中,并将所述用户文件的索引写到所述数据索引模块所在的服务器上,同时将所述kafka中刚刚消费的队列中相应文件记录删除;若否,则进行休眠。可选地,所述处理模块包括控制器和操作日志模块。可选地,还包括元数据模块,所述元数据模块,用于存储用户的注册信息和文件名的编号信息,以使用户注册后能够快速进行查询和更新操作。可选地,还包括数据缓存模块,所述数据缓存模块,用于缓存用户上传或下载的数据。可选地,还包括索引存储模块,所述索引存储模块用于存储文件索引。本专利技术提供的数据存储方法,应用于上述的适合大小文件的海量医疗数据存储系统,包括:所述负载均衡模块获取用户上传的用户文件,并将所述用户文件发送至所述接口模块;所述接口模块将所接收到的所述用户文件发送至缓存模块,以使所述缓存模块将所述用户文件上传至所述处理模块;所述处理模块从kafka的未消费缓存队列集合中逐个获取用户文件,并写入到预设的维护的序列文件集合中;所述处理模块判断所述序列文件集合的值是否达到预设值;若是,所述处理模块将所述序列文件集合中的文件合并写入到HDFS中的序列文件中;当写入成功后,所述处理模块将操作日志写入到log中,并将所述用户文件的索引写到所述数据索引模块所在的服务器上,同时所述处理模块将所述kafka中刚刚消费的队列中相应文件记录删除;若否,所述处理模块则进行休眠。可选地,所述的所述处理模块判断所述序列文件集合的值是否达到预设值,包括:所述处理模块判断所述序列文件集合的值是否等于128兆。可选地,所述的所述处理模块从kafka的未消费缓存队列集合中逐个获取用户文件,并写入到预设的维护的序列文件集合中,之前还包括:判断本地服务器预设目录下是否有数据;若有,获取所述数据。可选地,所述的若否,所述处理模块则进行休眠,包括:若否,所述处理模块进行等待直到所述序列文件集合的值达到所述预设值。上述本专利技术提供的适合大小文件的海量医疗数据存储系统及数据存储方法的有益效果是:通过用户注册模块来监控实际注册用户,从而有效地防止非法用户进行注册,进而有效地避免了非法用户进行数据的访问,通过监控报警模块可以实时监控各个存储服务器和各个服务模块的运行状态,以及当所述系统或服务状态异常时发送邮件或短信报警,使得第一时间通知系统管理人员,以及在状态恢复后发出正常的邮件或短信通知,以使用户能够在正常后进行及时使用,再通过处理模块、数据索引模块、接口模块和负载均衡模块使得针对医疗领域适合海量大文件、小文件并存的应用场景,解决了传统关系型数据库不适合非结构化数据的问题、解决了redis不适合海量数据存储的问题、改善了只采用hbase做存储时候面临的系统不稳定的问题、极大改善了单纯采用hdfs中解决小文件存储所面临的不适合大文件和文件不方便检索的问本文档来自技高网
...
适合大小文件的海量医疗数据存储系统及数据存储方法

【技术保护点】
一种适合大小文件的海量医疗数据存储系统,其特征在于,包括:用户注册模块、监控报警模块、处理模块、数据索引模块、接口模块和负载均衡模块;所述用户注册模块用于管理院区信息、科室信息以及用户名信息;并且还用于在进行用户注册新增操作时,使得用户需要按照预设规则进行注册,当不满足所述预设规则时,发送提示信息至用户终端;当注册成功时,为所述用户赋予文件操作权限,以及将所述用户信息按照预设格式进行存储;所述监控报警模块用于实时监控各个存储服务器和各个服务模块的运行状态,以及当所述系统或服务状态异常时发送邮件或短信报警,使得第一时间通知系统管理人员,以及在状态恢复后发出正常的邮件或短信通知,以使用户能够在正常后进行及时使用,以及用于在出现部分单一性的错误问题时,所述监控报警模块实现自动修复同时发出报错信息和恢复信息;所述处理模块用于将用户上传的海量小文件按照预设处理规则分组合并成sequenceFile,并根据不同的队列进行合并所述文件,进而减少用户访问数据的压力;所述数据索引模块用于为用户所上传的数据分配唯一标识符和索引;所述接口模块用于提供上传、查看下载、删除文件的接口,以使用户通过所述接口模块完成用户文件上传、下载或删除操作;所述负载均衡模块用于根据用户发送的消息包中所携带的用户的IP和操作信息,对所述用户发送的消息包进行解析,然后根据IP和操作的类型选择对应的服务器组;以及还用于获得各个服务器的性能状态,然后再根据每个所述服务器的性能状态选择多个所述服务器中的任意一个所述服务器,从而将数据报文中的目标地址修改为所述服务器所对应的地址。...

【技术特征摘要】
1.一种适合大小文件的海量医疗数据存储系统,其特征在于,包括:用户注册模块、监控报警模块、处理模块、数据索引模块、接口模块和负载均衡模块;所述用户注册模块用于管理院区信息、科室信息以及用户名信息;并且还用于在进行用户注册新增操作时,使得用户需要按照预设规则进行注册,当不满足所述预设规则时,发送提示信息至用户终端;当注册成功时,为所述用户赋予文件操作权限,以及将所述用户信息按照预设格式进行存储;所述监控报警模块用于实时监控各个存储服务器和各个服务模块的运行状态,以及当所述系统或服务状态异常时发送邮件或短信报警,使得第一时间通知系统管理人员,以及在状态恢复后发出正常的邮件或短信通知,以使用户能够在正常后进行及时使用,以及用于在出现部分单一性的错误问题时,所述监控报警模块实现自动修复同时发出报错信息和恢复信息;所述处理模块用于将用户上传的海量小文件按照预设处理规则分组合并成sequenceFile,并根据不同的队列进行合并所述文件,进而减少用户访问数据的压力;所述数据索引模块用于为用户所上传的数据分配唯一标识符和索引;所述接口模块用于提供上传、查看下载、删除文件的接口,以使用户通过所述接口模块完成用户文件上传、下载或删除操作;所述负载均衡模块用于根据用户发送的消息包中所携带的用户的IP和操作信息,对所述用户发送的消息包进行解析,然后根据IP和操作的类型选择对应的服务器组;以及还用于获得各个服务器的性能状态,然后再根据每个所述服务器的性能状态选择多个所述服务器中的任意一个所述服务器,从而将数据报文中的目标地址修改为所述服务器所对应的地址。2.根据权利要求1所述的系统,其特征在于,所述处理模块具体用于:从kafka的未消费缓存队列集合中逐个获取用户文件,并写入到预设的维护的序列文件集合中;判断所述序列文件集合的值是否达到预设值;若是,将所述序列文件集合中的文件合并写入到HDFS中的序列文件中;当写入成功后,将操作日志写入到log中,并将所述用户文件的索引写到所述数据索引模块所在的服务器上,同时将所述kafka中刚刚消费...

【专利技术属性】
技术研发人员:汪鹏王红迁王红军朱媛媛王飞孙靖尉雯雯
申请(专利权)人:中国人民解放军第三军医大学第一附属医院
类型:发明
国别省市:重庆,50

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

1