第2章 医疗大数据平台概述
2.1 医疗大数据平台简介
2.1.1 大数据平台的作用
面对呈几何级数增长的海量数据,医疗大数据平台(文中多简称“大数据平台”)应运而生[1],其主要解决下面5个问题。
(1)数据获取问题,包括哪些数据需要保存,哪些数据需要清洗和筛选,如何可靠地存储如此庞大的数据。
(2)数据结构问题,医院的病历文本属于半结构化数据,其文本内容可以进行语义信息的处理,而病历结构属于非结构化数据。医学影像在出处和显示方面具有结构,但也需要对其语义信息进行智能化提取。对于这些非结构化数据,仍需进行后续处理。
(3)数据集成问题,不同来源数据之间需要进行语义关联,才能充分发挥数据的作用。系统的开发厂商不同,数据的格式、标准以及规范都不同,需要对数据进行系统化集成。
(4)数据建模问题,数据的分析、组织、抽取以及更复杂的处理操作是以高效的数据提取与修改为前提的,优化数据的存储形式以提高数据的访问速度,需要对存储数据进行建模。
(5)数据可视化问题,数据可视化是指分析和提取的数据以简洁的形式展现在用户面前,这也是大数据平台研究的关键问题。
2.1.2 大数据平台处理数据的步骤
针对上述问题,大数据平台一般采用5个步骤对数据进行处理[2]:数据的收集、数据的传输、数据的存储、数据的处理和分析以及数据的检索和挖掘。
(1)数据的收集。第一种方式是抓取或者爬取,抓取各个厂商的LIS、医院信息系统(Hospital Information System,HIS)等中的信息,下载到大数据平台的数据中心。第二种方式是推送,例如随身携带的健康手环、动态心电图等仪器记录的信息,实时上传至数据中心。
(2)数据的传输。从各个厂商同时向数据中心传输数据,由于数据量庞大,并且需要对数据进行初步处理才能存储在数据中心存储服务器上,所以需要通过队列的方式进行批量处理,业务服务器会以队列的方式访问存储服务器来分批次地存储数据。
(3)数据的存储。医疗数据是宝贵的数据资源,在存储过程中需要确保数据安全、不丢失和高容错性。所以在存储时通过备份保证数据的真实性、完整性和可用性。
(4)数据的处理和分析。从各个厂商采集的原始数据大多是杂乱无章的,有很多“脏数据”,因而需要清洗和过滤,以得到一些高质量的数据。对于高质量的数据,就可以进行分析,从而对数据进行分类,或者发现数据之间的相互关系,得到宝贵的医疗信息。
(5)数据的检索和挖掘。提取数据往往要关联多张数据库表,如提取某个患者的就医信息需要检索门诊信息、生化检查信息、住院信息等,进而对这些信息进行数据挖掘,所以需要建立主键索引以便于数据的检索。
2.1.3 大数据平台产品
1.Hadoop
Hadoop是一个由Apache软件基金会开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下开发分布式程序,并充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Distributed File System,DFS),其中一个组件是Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它具有高吞吐量,可以用于访问应用程序的大量数据,适合那些有着超大数据集的应用程序。HDFS放宽了可移植操作系统接口(Portable Operating System Interface,POSIX)的要求,可以以流的形式访问文件系统中的数据。Hadoop架构核心的设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
2.MapReduce
MapReduce最早是由谷歌公司研究并提出的一个面向大规模数据处理的计算模型、框架和平台。MapReduce是一个基于集群的高性能并行计算平台。它允许用市场上普通的商用服务器构建一个包含数十、数百甚至数千个节点的分布和并行计算集群。MapReduce是一个庞大但设计精良的并行计算软件框架。它能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布式存储、数据通信、容错处理等并行计算涉及的很多系统底层的复杂细节交由系统处理,可大大减少软件开发人员的负担。MapReduce是一个并行程序设计模型与方法(Programming Model and Methodology)。它借助函数式程序设计语言LISP的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单、方便地完成大规模数据的编程和计算处理。
3.SAS
统计分析系统(Statistical Analysis System,SAS)[3]是1966年由美国北卡罗来纳州立大学开发的模块化、集成化的大数据统计分析软件。SAS基本上可以分为四大部分:SAS数据库、SAS分析核心、SAS开发呈现工具、SAS对分布式处理模式的支持及其数据仓库设计。SAS主要完成以数据为中心的四大任务:数据访问、数据管理(SAS的数据管理功能并不出色,但其数据分析功能强大,所以常用微软公司的产品管理数据,再导成SAS数据格式。要注意与其他软件的配套使用)、数据呈现、数据分析。其中Base SAS模块是SAS的核心,其他各模块均在Base SAS提供的环境中运行。用户可选择需要的模块与Base SAS一起构成一个用户化的SAS。
4.Greenplum
Greenplum公司成立于2003年,2006年其推出了首款产品——Greenplum系统,为全球大型企业用户提供新型企业级数据仓库(Enterprise Data Warehouse,EDW)、企业级数据云(Enterprise Data Cloud,EDC)和商务智能(Business Intelligence,BI)解决方案。Greenplum系统的架构采用了大规模并行处理(Massively Parallel Processing,MPP)。在MPP系统中,每个对称多处理(Symmetrical Multi-Processing,SMP)节点也可以运行自己的操作系统、数据库等。换言之,每个节点内的中央处理器(Central Processing Unit,CPU)不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程称为数据重分配(Data Redistribution)。
5.Teradata
Teradata是比较受欢迎的数据库管理系统,定位是大数据仓库系统(定位比较高),主要应用于数据存储和数据处理,其处理速度比Hive的要快10倍左右。Teradata系统基于MPP框架,MPP在整个系统上进行负载均衡的分配。Teradata系统在其进程之间分割任务,并行运行它们以确保任务的快速完成。Teradata优化程序是市场上成熟的优化程序之一,它从一开始就被设计为并行的,并且针对每个版本进行了优化。Teradata系统的架构称为共享无架构。Teradata节点的访问模块处理器(Access Module Processor,AMP)和与AMP相关联的磁盘独立工作,它们不会与其他节点共享资源。