APP下载

分布式医疗大数据存储方案研究综述

2022-04-24朱承璋刘梓汐李文静肖亚龙王晗

软件导刊 2022年4期
关键词:存储系统海量分布式

朱承璋,刘梓汐,李文静,肖亚龙,王晗

(1.中南大学计算机学院;2.中南大学文学与新闻传播学院;3.移动医疗教育部—中国移动联合实验室湖南长沙 410083;4.湖南省人民医院(湖南师范大学第一附属医院)湖南长沙 410005)

0 引言

近年来,随着信息技术飞速发展,医疗与医学研究领域正步入大数据时代,医疗数据的日增长量达到了TB级别。海量的医疗数据蕴含着巨大的价值,构建医疗数据存储平台,实现数据的统一存储与检索,有利于不同医疗机构之间共享数据。并且,在平台上增设数据分析服务功能,有利于推动辅助诊疗和疾病预测技术的发展。

医疗数据属于大数据,具有数据来源复杂、结构多样、规模巨大、增长迅速、多模态性等特点。其中,多模态性包括二维数据、图像、视频、文本文档等。然而,在当前医疗服务业务中,获取数据的实时性、存储设备的可靠性及数据分析的准确性仍是亟待解决的三大问题。

传统关系型数据库无法存储非结构化数据且受到单机性能限制,无法满足数据存储的需求。而分布式技术以其低成本、高可靠、大容量等优点在存储领域得到广泛应用,为存储海量医疗数据提供了新思路。该技术通过连接多台普通设备,分布式存储、管理和处理海量数据,并支持存储非结构化数据。因此,医疗大数据通常存储在分布式文件系统或非关系型(Not Only SQL,NoSQL)数据库中,通过分布式并行计算模型提高系统数据分析的能力,以进一步优化存储系统的查询性能。

据统计,国内外分布式医疗数据存储系统的研究成果较多,但相关综述文章较少。文献[8]分析了不同NoSQL数据库的特点与适用的医疗存储场景,但并未总结基于分布式系统的医疗存储研究现状。本文通过分析医疗大数据的特点和存储需求,回顾医疗数据存储系统的发展历程,梳理基于分布式技术的医疗数据存储方案,并展望未来的研究方向,旨在探索医疗大数据存储系统的创新发展前景。

1 传统医疗数据存储系统

目前,国内成熟的医院系统建设主要包括HIS(医院信息系统)、EMRS(电子病历系统)、RIS(放射科信息管理系统)和PACS(影像归档和通信系统)。院内医疗存储系统建设示意图如图1所示。传统医疗数据存储系统底层多使用关系型数据库,例如MySQL和SQL Server。该数据库通过关系模型组织数据,将每条记录数据以行的形式存储在二维表中,但关系型数据库需要满足预先定义的关系模式,并且每条记录都具有固定的数据长度。由于院内系统仅针对医院单一业务或单一数据类型,存储和管理的数据量相对较小,因此关系型数据库即可满足需求。

Fig.1 Schematic diagram of medical institution storagesy stem construction图1 医疗机构存储系统建设示意图

随着网络和信息技术不断发展,医疗数据规模越来越大、复杂性越来越高,导致使用关系型数据库对于大规模医疗数据的存储存在以下局限性:

(1)医疗数据中包含较多非结构化数据,然而关系型数据库结构相对固定,无法适用于非结构化数据的存储。

(2)关系型数据库受单机存储容量限制,无法适用于医疗大数据的存储场景。虽然关系型数据库支持分布式扩展,但由于分布式关系型数据库分片规则复杂,安装和维护成本较高。

(3)关系型数据库可扩展性较差,难以实现不同医疗机构的数据共享。

(4)关系型数据库的读、写必须经过SQL解析,在大规模数据上并发进行读、写的性能较弱。

(5)数据量太大会导致数据分析软件难以有效、准确地分析数据。

综上所述,传统关系型数据库已无法满足大数据时代TB、PB级医疗数据的存储需求。为此,接下来将讨论基于分布式技术存储医疗数据的解决方案。

2 分布式医疗数据存储系统

2.1 通用分布式存储系统

数据存储系统经过长期发展,已由单机存储系统逐步演变为支持分布式扩展的存储系统。随后,关系型数据库的分布式方案和原生支持分布式存储的NoSQL数据库也应运而生。本节分别介绍了Hadoop分布式存储系统和NoSQL数据库。

2.1.1 Hadoop分布式存储系统

Apache Hadoop是一款主流支持海量数据存储与处理的分布式系统,包括Hadoop File System(HDFS)、Map Reduce、Hadoop Data Base(HBase)等重要组件。其中,HDFS是Hadoop系统数据存储和管理中心,具有高容错性、高效写入等特点。其集群包括Name Node和Data Node两大组成部分,Name Node负责管理文件系统的元数据和Data Node节点,Data Node是文件系统的实际工作节点,负责存储和检索数据,并定期将存储的块信息发送给Name Node。HDFS架构图如图2所示。

Fig.2 Architect urediagram of HDFS图2 HDFS架构图

Map Reduce是一种处理和生成大规模数据集的模型,该模型以一种可靠性高、容错性强的方式实现海量数据集的并行处理。Map Reduce在处理大数据集时,将任务分解给多个Hadoop运行节点处理,提高了集群处理海量数据的能力。

Fig.3 Structure diagram of HBase图3 HBase结构图

对于有随机读取需求的应用请求,将数据存储于HBase中。HBase是一款面向列的非关系型数据库,其底层数据存储在HDFS中,可保证数据的可靠性,将其与Map Reduce集成可确保在分析海量数据时系统的高效性。如图3所示,HBase由HMaster、HRegion Server、HRegion和Zoo keeper组件构成。其中,HMaster是HBase集群的主控服务器,负责为HRegion分配HRegion Server;HRegion Server负责为客户端提供数据写入、删除、查找服务;HRegion是按行键划分的子表,是HBase中存储和处理的最小单位;Zoo Keeper为HBase集群提供应用协调服务,检测并淘汰失效的Master,选举新的活跃状态的Master。

2.1.2 No SQL数据库

NoSQL数据库存储的数据不受固定结构限制,数据组织简单,可扩展性好,适合存储海量数据。该数据库可分为列式数据库、文档数据库和键值数据库等。其中,以MongoDB为代表的文档数据库支持存储多种结构数据,并且具有强大的查询功能、索引能力,适用于读、取操作频繁的海量数据应用场景。

2.2 基于Hadoop的医疗数据存储系统

国内外专家针对医疗数据存储系统的业务需求和Hadoop系统的局限性,进行了大量的研究和改进。通过对现有文献的研究,可将基于Hadoop的医疗数据存储系统的改进方法归纳为以下几点:

(1)提升系统性能。HDFS使用数据块作为数据读写单位,将元数据保存在Name Node的内存中,但由于医疗数据中包含大量的检验数据、影像数据等小文件会占用大量的内存资源,使得系统处理效率降低。此外,Hadoop副本存储策略使得读、写操作频繁的节点容易达到负载阈值,多次触发系统的负载均衡操作。因此,通过优化小文件处理策略,改进Hadoop的副本选择策略,可实现基于Hadoop的医疗数据存储系统的性能优化。

(2)优化查询性能。Hadoop分布式系统具有成本低、扩展性强、可靠性高等优点,适用于存储时效性较差的医疗数据,但无法满足实时存储需求。HDFS旨在以高延迟为代价实现高吞吐,不适合低延迟读取请求,但医疗数据读、取操作较多,响应时间过长会影响用户体验,可通过构建索引优化医疗数据存储系统的查询性能。

(3)数据分析。如何结合Map Reduce、Spark等大数据分析技术对数据集进行并行处理,是分析数据价值的关键。

目前已有大量基于改进Hadoop存储系统的医疗数据存储解决方案,在系统存储性能优化、高效检索和数据分析等方面均取得了较好的研究成果。具体概括如表1所示。

Table1 Medical data storages cheme based on improved Hadoop表1 基于改进Hadoop的医疗数据存储方案

续表

2.3 基于MongoDB的医疗数据存储系统

MongoDB文档数据库是一种重要的NoSQL数据库,支持存储多种数据类型。根据医疗数据存储格式,可将其分为文档数据、二进制小文件和二进制大文件三大类。MongoDB支持文档数据的转换和存储,并能够直接存储二进制小文件。对于二进制大文件,MongoDB的GridFS机制可对其进行切分和存储。MongoDB存储医疗数据的示意图如图4所示。

Fig.4 MongoD B-based medical data storage architecture图4 基于MongoDB的医疗数据存储架构

如今,已有多名研究者使用MongoDB数据库存储医疗数据。例如,李伟等使用MongoDB存储数据的流程如下:①根据疾病类型建立疾病数据库;②根据患者ID创建集合,存储患者的小文件和文档数据,并将患者的大文件数据存储在与该集合同名的GridFS分区下;③将文件的描述信息以文档形式插入集合中。此外,Ricardo等分别使用MySQL和MongoDB数据库存储电子健康记录,实验发现MongoDB的吞吐量和查询时间都优于MySQL,证明MongoDB数据库更适合存储医疗信息和查询数据。

Roshan等为了提升MongoDB的查询性能,提出在数据处理阶段创建和维护文档或文件的元数据信息,以便在检索数据时快速定位、高效检索所需数据。Poly等提出了一种数据模型算法,该算法使用集合保存指定的查询属性,通过探索数据属性的相关性、消除重复属性、保存属性序列等优化措施,使其满足医疗数据查询频率和查询多样化的性能要求。Silva等提出了一种PACS归档方案,通过GridFS和多字段索引机制优化医疗影像归档的性能。Mr A等设计了一种查询语言AQL,通过使用MongoDB的持久化子部分存储和查询电子健康记录摘要,以提升系统的查询性能。

综上所述,通过建立文件描述信息库、维护文件元数据信息、索引优化等方式均可提升基于MongoDB的医疗数据存储系统的响应速度。

3 存在的问题及分析

分布式技术可实现医疗数据的统一存储与查询,但目前研究仍然存在一些问题。例如,医疗数据中包含大量患者隐私信息,而目前的存储方案均未考虑数据隐私保护。由于医疗数据的高敏感性,各机构通常使用中心化方式管理数据,然而该管理方式不够透明,容易造成数据篡改、隐私泄露等问题。这些问题直接威胁着医疗领域的数据安全和用户隐私,使各级机构间的数据难以实现相互共享,无法充分利用医疗数据的价值。

近年来,随着区块链技术的不断发展,其已成为保障数据安全共享的有效手段,利用密码学知识,可确保数据不被篡改、不可伪造和去中心化传输访问的安全。然而,作为一项新兴技术,区块链对于分布式系统架构仍缺乏理论支持和高并发读写业务的实验测试。未来可重点研究基于分布式架构的区块链技术,实现基于隐私保护的分布式医疗大数据存储模型。

为更好利用医疗信息资源作出科学决策,需要深入挖掘医疗数据的价值。当前医疗大数据分析技术都侧重于统计分析和决策,尤其是基于MongoDB的医疗数据存储系统,与数据分析相关的研究较少。知识图谱在自然语言处理领域兴起,已成为呈现数据知识的有效组织形式,使用该技术组织医疗数据有助于抽取医疗知识,实现医疗知识推理、远程会诊、推荐用药、疾病预测等辅助诊疗服务。

4 结语

大数据时代,医疗数据规模急剧扩大,数据呈现多模态特征。传统关系型数据库已无法保证海量数据的高效存储与快速响应,为此分布式存储技术为存储海量医疗数据提供了新思路。基于Hadoop的医疗数据存储系统在充分发挥HDFS、HBase和Map Reduce等组件优势的基础上,进一步优化了存储和查询性能,实现了集高吞吐、快速定位和高效分析于一体的“智慧医疗”存储系统。基于MongoDB数据库的医疗数据存储系统可满足多模态医疗数据统一存储和快速响应需求,为后续的多模态数据分析和医疗数据挖掘提供了平台支撑。面向隐私数据保护和医疗知识推理的分布式医疗数据存储方案将可能成为未来的发展方向。

猜你喜欢

存储系统海量分布式
一种傅里叶域海量数据高速谱聚类方法
分布式存储系统在企业档案管理中的应用
海量快递垃圾正在“围城”——“绿色快递”势在必行
天河超算存储系统在美创佳绩
基于DDS的分布式三维协同仿真研究
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统
一种基于STM32的具有断电保护机制的采集存储系统设计
西门子 分布式I/O Simatic ET 200AL
基于文件系统的分布式海量空间数据高效存储与组织研究