医疗大数据存储与管理技术
大数据的出现以及结构数据的改变使常规技术的数据存储和管理面临新的挑战。在大数据环境下,根据存储系统为上层提供的访问接口和功能侧重不同,存储与管理解决方案主要包括分布式文件系统和分布式数据库。
1.分布式存储系统
分布式存储系统的主要特征为:所管理的数据存储在分散的物理设备或节点上,存储资源通过网络连接。对于分布式文件系统的研究主要涉及以下几个关键技术。
(1)元数据管理在大数据环境下,元数据的体量也非常大,元数据的存取性能是整个分布式文件系统性能的关键。常见的元数据管理可以分为集中式和分布式元数据管理架构。集中式元数据管理架构采用单一的元数据服务器,实现简单,但是存在单点故障等问题。分布式元数据管理架构则将元数据分散在多个结点上。进而解决了元数据服务器的性能瓶颈等问题,并提高了元数据管理架构的可扩展性,但实现较为复杂,并引入了元数据一致性的问题。另外,还有一种无元数据服务器的分布式架构,通过在线算法组织数据,不需要专用的元数据服务器。但是该架构对数据一致性的保障很困难,实现较为复杂。文件目录遍历操作效率低下,并且缺乏文件系统全局监控管理功能。
(2)系统弹性扩展技术在大数据环境下,数据规模和复杂度的增加往往非常迅速,对系统的扩展性能要求较高。实现存储系统的高可扩展性首先要解决两个方面的重要问题,包含元数据的分配和数据的透明迁移。元数据的分配主要通过静态子树划分技术实现,后者则侧重数据迁移算法的优化。此外,大数据存储体系规模庞大,结点失效率高,因此还需要完成一定的自适应管理功能。系统必须能够根据数据量和计算的工作量估算所需要的结点个数,并动态地将数据在结点间迁移。以实现负载均衡;同时,结点失效时,数据必须可以通过副本等机制进行恢复,不能对上层应用产生影响。
(3)存储层级内的优化技术构建存储系统时,需要基于成本和性能来考虑,因此存储系统通常采用多层不同性价比的存储器件组成存储层次结构。大数据的规模大,因此构建高效合理的存储层次结构,可以在保证系统性能的前提下,降低系统能耗和构建成本,利用数据访问局部性原理,可以从两个方面对存储层次结构进行优化。从提高性能的角度,可以通过分析应用特征,识别热点数据并对其进行缓存或预取,通过高效的缓存预取算法和合理的缓存容量配比,以提高访问性能。从降低成本的角度,采用信息生命周期管理方法,将访问频率低的冷数据迁移到低速廉价存储设备上,可以在小幅牺牲系统整体性能的基础上,大幅降低系统的构建成本和能耗。
(4)针对应用和负载的存储优化技术 传统数据存储模型需要支持尽可能多的应用,因此需要具备较好的通用性。大数据具有大规模、高动态及快速处理等特性,通用的数据存储模型通常并不是最能提高应用性能的模型,而大数据存储系统对上层应用性能的关注远远超过对通用性的追求。针对应用和负载来优化存储,就是将数据存储与应用耦合,简化或扩展分布式文件系统的功能,根据特定应用、特定负载、特定的计算模型对文件系统进行定制和深度优化,使应用达到最佳性能。这类优化技术在谷歌、Facebook等互联网公司的内部存储系统上,管理超过千万亿字节级别的大数据,能够达到非常高的性能。
2.主要的数据库存储方案
大数据时代,行业特性对数据的管理、查询以及分析的性能需求变化促生了一些新的技术出现。需求的变化主要集中在数据规模的增长,吞吐量的上升,数据类型以及应用多样性的变化。数据规模和吞吐量的增长需求对传统的关系型数据库管理系统在并行处理,资源管理、容错以及互联协议实现等方面带来了很多挑战。而数据类型以及应用的多样性带来了为了支持不同应用的数据管理系统。
(1)关系型数据库医疗大数据的建设包括大量传统的信息化系统的建设,关系型数据库是传统信息化系统的数据基础。通过异构数据交换平台,从各业务系统中获取数据并存储。当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、MySQI。等。
(2)非关系型(NoSQL)数据库在医疗业务中,需要面对大量不适合传统关系数据库存储的业务数据,在信息融合分析的过程中,也会产生大量的中间数据需要高效的顺序存储,这些数据如果使用传统关系数据库管理效率会十分低,同样不能满足数据量平行扩展的需求。所以性价比不高。
(3)实时数据库在医疗大数据应用中,主要应用场景中所面对的数据实时性要求通常是在秒级别上对数据进行处理分析,并提供给业务系统使用。例如为医生在线提供近期用药重复提醒、用药安全等智能提醒业务。在现有的实时数据库解决方案中,内存数据库是最佳的实时存储实施者。通过将内存作为数据的存储媒介,从而获得优异的存储速度,以及高速的CPU交换效率,解决了传统数据库的外存速度和读取时间无法控制等技术瓶颈。(https://www.daowen.com)
(4)列式数据库 列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即席查询。面向列的数据存储架构更适用于联机分析处理(on lineanalysis process,OLAP)这样在海量数据(可能达到万亿字节规模)中进行有限复杂查询的场景。
3.不同数据存储方案的选择
著名的CAP理论是NoSQi,数据库的基石,由Eric Brewer教授提出:在设计和部署分布式应用时,存在三个核心的系统需求,一致性(consistency)、可用性(availability)、分区容错一生(partition tolerance)。“一个分布式系统不可能同时很好满足一致性、可用性和分区容错性这三个需求,最多只能同时较好地满足两个。”
笔者总结了一下目前主流的大数据存储方案,并对其CAP特性进行了分析,如图3-1所示。
图3-1 目前主流大数据存储方案的CAP特性
下面对图3-1中的三个最有代表性的数据存储方案Apache HBase、Cassandra及MongeDB进行简单的说明。
Apache HBase分布式存储系统具有高可靠性、高性能、面向列以及可伸缩等特点,同时利用HBase可以完成在大规模廉价PC上搭建高效的结构化存储集群。Apache HBase是Google Big-Table的开源实现项目,以Hadoop HDFS为文件存储系统,以Hadoop Map Reduce为处理架构,以及利用Zookeeper作为协同服务。HBase是标准的列式数据库,由于列式数据库查询数据只有三种方式:单个行键访问、给定行键的范围访问及全表扫描。所以HBase实现了在一致性和分区容错两个特性,它适合吞吐量大,数据量大的场合。
Cassandra是一个典型的键值数据库,由著名互联网公司Facebook设计研发,其主要特点为数据存储体系由众多数据库节点构成的分布式网络构建,每一个Cassandra写操作都会被复制到其他节点,读操作也会被路由到某个节点上去。另外,分布式集群的存储特性也决定了系统的可扩展性较好。但是Cassandra只能支持最终一致性,因而不太适用于订单管理等对一致性要求较高的业务后场景,却能较好完成大数据量和精确查询定位数据等业务。
MongoDB是基于分布式文件存储的,介于关系型和非关系型数据库之间的数据库产品。由于其被设计为支持多种数据结构类型的存储系统,因此可以存储比较复杂的数据类型。它主要解决的是海量数据的访问效率问题,作为一个关系型数据库的可替代方案,其具备强一致性能力。针对市场上的主流数据存储方案的特性和适用场景见表3-2。
表3-2 市场上主流数据存储方案的特性和适用场景
医疗大数据种类多样,使用方式也不尽相同。例如,医疗影像数据通常是大数据量的媒体文件,虽然数量不多但数据很大,这些数据的访问通常是采用流媒体的访问方式,需要连续地读取。智能终端设备监控数据通常是时间序列的浮点数据,根据采集频率不同,数据量也有很大差别,这些数据通常需要与其他数据融合,按照时间序列处理。健康档案数据通常是带有格式信息的数据,常用的格式是XML,这类数据需要携带元数据或者元数据关联信息存储,在利用的时候也通常与其他数据,如健康监护数据、医疗数据等综合分析使用。因此,医疗大数据并不能采用单一的存储方式,而是需要综合运用关系数据库、NoSQL数据库、实时数据库、列式数据库、分布式文件存储等多种技术。同时对于经常访问的热点数据,需要采用缓存机制进一步保证数据访问的及时性。