[摘 要] 本文针对大型医院海量结构化、半结构化、非结构化数据的存储问题,设计和实现了一种数据湖存储方案。该存储方案通过构建三个“统一”,二个“分布”,一个“闭环”,即统一存储数据、统一命名空间、统一资源池、分布式存储、分布式元数据和缓存、数据安全闭环,做到了性能和容量线性提升前提下的百PB级别不同类型数据的混合、持久存储;实现了多协议数据出站、入站;支撑了存储与算力分离后的数据复用。该方案相较于传统存储区域网络,适应大数据分析、深度学习和预测、物联网数据实时采集场景。数据不再需要重复地导出,真正做到了一份数据,多次复用,不仅节省了大数据分析和人工智能预测项目的成本,提高了效率,而且确保了数据安全。
[关键词] 医院数据;数据湖;大数据;人工智能
The Design and Implementation of Data Lake Storage in Large-scale Hospital
Weng Jinyang
Rui Jin Hospital Shanghai Jiao Tong University School of Medicine, Computer Network Center, Shanghai, 200025
Abstract: In this paper, a data lake storage scheme is designed and implemented for the storage of massive structured, semi-structured and unstructured data in large-scale hospitals. By building three "unifications", two "distributions" and one "closed loop" (i.e. unified storage data, unified namespace, unified resource pool, distributed storage, distributed metadata and cache, data security closed loop), the storage scheme achieves the mixed and persistent storage of different types of data with hundred PB level under the premise of linear improvement of performance and capacity; realizes the outbound and inbound multi-protocol data; supports the data reuse after the separation of storage and computing power. Compared with the traditional storage area network, this scheme is suitable for big data analysis, deep learning and prediction, and real-time data collection scenarios of the Internet of Things. The data no longer need to be exported repeatedly, so they can be reused many times, which not only saves the cost of big data analysis and artificial intelligence prediction project, improves the efficiency, but also ensures the data security.
Key words: hospital data; data lake; big data; artificial intelligence
引言
随着医院信息化朝专科化、个性化纵深发展,以及人工智能、物联网等各类新型诊疗、管理手段的应用,期间产生的覆盖疾病防治、健康管理各个环节的结构化、半结构化、非结构化数据,呈爆炸式增长。这些海量原始数据,是国家重要的基础性战略资源,蕴藏着多种能力,具有不可估量的价值。如何统一、持久、安全、可复用地存储这些数据,成为医院面临的课题。瑞金医院为解决此问题,而设计和实现的基于全分布式数据湖存储的方案,已取得丰富的经验和良好的效果。
1 目的和需求
医院信息化数据爆炸的时代,大型医院最能感受到大数据所带来的挑战。以瑞金医院为例,数据容量已达到PB级别;文件数已达到十亿级别。一个普通CT检查产生数据大小的中位数约100MB,而薄层CT增加到450MB;一个基因组序列至少600MB;病理图像以淋巴瘤组织病理为例为5GB。同时,这也为赋能大数据、人工智能、物联网、私有云等场景,提供了前提条件。使得医院能够挖掘出很多之前所不具备的,诸如预测分析、推荐模型的能力,以刺激诊疗业务的后续增长和发展。显然,传统存储方案,由于数据共享、容量扩展、并发能力都不强,并不适合PB级大规模存储,从而阻碍了对大数据分析场景十分重要的数据统一组织的需求。因此,如何设计和实现可以持久、安全、统一地组织这些多个来源、各种类型的原始数据,以及转化为符合特定模型格式的副本,从而为这些新型场景提供数据托管、访问、复用的存储方案,是首先需要考虑的问题。[1]
2 设计和实现
在设计数据湖存储的时候,应充分考虑以下方面:
强扩展性、高可靠性、安全性、性价比、多类型数据统一存储、与计算资源分离。
2.1 存储架构
2.1.1 存储持久层
统一构建,负责数据布局、负载均衡、数据恢复能力。
传统集中存储架构使用中央控制器和盘柜提供存储服务。控制器成为系统性能的瓶颈,也是可靠性和安全性的焦点,无法满足大规模存储应用的需求。而分布式存储系统,可在多个独立存储服务器上分发数据,其采用分布式的系统架构,使用多个设备均衡存储负载,不仅提高了系统的可靠性,可用性和访问效率,而且易于扩展、迭代。
分布式架构存储的可扩展性极强,可以轻松扩展到成百上千个节点,而且性能、容量呈线性增长。这非常重要,因为这不同于传统存储,会很快遭遇性能拐点和容量阈值。
另外,由于分布式架构存储允许采用成熟且可靠的通用硬件,因此在获得高性能、大容量、可靠性的时候,成本较传统存储要低很多。最后,通过利用纠删码数据保护技术,以及分布式存储数据分片在资源池内打散的特性,当存储介质,甚至节点失效后,可在全资源池范围内自动并行地高效率在线重建。从而实现在保持高容量获得率的情况下,确保数据恢复能力。
2.1.2 元数据服务层
负责具体之元数据分布、索引和故障转移,并向上层提供高速的元数据存取和查询能力。
由于元数据存储于持久层,因此为避免单点故障和性能瓶颈,我们在这一层引入基于分布式哈希表路由数据算法的全分布式元数据部署方式,它具有性能高、可靠性高、扩展速度快的优点。这样,元数据可享有持久层的数据存储能力,从而保证整个系统的所有数据都是可扩展、高可靠的。
2.1.3 存储服务层
设计时需注意存储接口多样化支持,即实现多协议进、多协议出的特性,这对于数据的统一组织、托管非常重要。这样设计和实现的数据湖存储,才能进而实现业务统一接入、全局统一命名空间。
另外,服务层设计亦需考虑具备完善的增值服务,比如配额、流控、防病毒等特性。[2]
2.2 数据服务
2.2.1 统一资源池
鉴于数据存储的可靠性,需要将不同的分布式存储群集部署在不同的数据中心站点,但这样又会造成所谓的“数据烟囱”局面,即数据无法在群集间共享。我们的解决方案是基于全局统一命名空间,统一鉴权,实现存储资源池的统一。另外,通过创建租户命名空间,设定配额和流控,在其中创建、管理自己的数据。[3]
2.2.2 二级缓存策略
关于二级缓存策略,一个好的设计,对于提升数据湖存取性能的帮助很大。瑞金医院在设计数据湖存储的二级缓存策略时,充分考虑到医院大数据、人工智能、物联网、私有云等场景下,数据存取的特点,在实现过程中,根据运行情况,不断动态调整各种阈值,力求达到相对最佳的性能。其中,二个阈值比较重要。一个是读、写缓存比例,根据数据调用的特征调整。另一个是缓存保留余量,超过设定阈值,强制立即将数据刷入机械硬盘。如此,才能确保二级缓存可用的连续性,实现持续地提升读、写操作性能。
首先,关于二级写缓存,由于考虑到性价比,采用了固态硬盘充当二级缓存方案。在写操作时,会将数据暂存在专用于二级缓存的固态硬盘后,完成本节点写操作。同时,周期性地将缓存在固态硬盘中的写操作数据批量刷入到机械硬盘。这里面,需要注意根据医院自身不同场景、不同分析模型,动态调整刷入机械硬盘的频率。
其次,关于二级读缓存,复用二级写缓存的存储介质。采用热点读机制,即对读操作涉及的数据记录调用频率,并基于此频率设定出、入缓存的阈值,即定义冷、热数据。达到入阈值,将数据从机械硬盘导入用于二级缓存的固态硬盘;达到出阈值,则将其刷回机械硬盘。但这还不够,因为在大数据分析、人工智能机器学习场景中,经常需要分批加载大量数据,且这些数据经常是具备相关性的。这时,统计数据之间关联性,以实现预读机制,变得十分必要,即当读取部分数据时自动将相关性高的数据也一并缓存。当真正加载到相关数据的时候,它们已经提前加载到二级缓存中了,这样的话,加载数据的性能将大幅提高。
2.2.3 数据访问
大数据分析、私有云、人工智能学习和推理、物联网数据实时采集场景下,所运用的模型和算法,大多都是根据具体情况,设计的个性化定制方案。因此,设计和实现数据湖存储服务时,必需考虑兼容性。这包括兼容文件接口协议——CIFS、NFS、FTP、Manila;对象接口协议——S3、Swift;块接口协议——HDFS、Cinder。[4]
2.3 技术安全
瑞金医院在设计数据湖存储技术安全框架时,遵循分层安全理念。将安全框架由下而上、横向分层为:设备安全层、网络安全层、业务安全层、管理安全层。
设备安全层包括硬件、操作系统、系统软件安全,对于存储群集而言的透明升级或修复。瑞金医院医院在实现本层安全时,具体实施了固件、补丁、内存隔离、内核参数、广播响应、传输安全、防请求伪造、防脚本注入、将敏感信息隐藏、访问鉴权控制、目录权限、密码强度、日志审计方面的安全工作。
网络安全层主要通过网络安全隔离的方法,以减少设备安全层、业务安全层、管理安全层之间的窜扰。即将网络分为外部业务、内部存储、管理维护三种角色。每种角色的网络流量经由各自独立的链路。
业务安全层包含三方面——访问控制、认证鉴权、防病毒。其中,访问控制通过访问控制列表鉴权实现;认证鉴权基于Token验证或OAuth2.0;防病毒通过部署支持ICAP协议的防病毒服务器实现。
管理安全层方面,在设计和实现时整合了告警、用户权限、密码复杂性、会话超时、审计、追溯的功能。
3 结论
作为大型医院PB级数据湖存储,相较于基于传统纵向扩展的存储方案,目前基于全分布式的存储方案,在相同投资的情况下,提升了投资回报率,包括硬件资源利用率、性能、安全性、可靠性、运维管理便捷度。提供了之前所不具备的能力,包括对大数据、人工智能、物联网场景很重要的多存储协议接口支持;消灭了数据烟囱;统一了命名空间;多并发访问能力;海量数据存储能力;硬件透明迭代能力;线性扩展能力。为希望借助大数据、人工智能、物联网、云计算技术,挖掘业务潜力、提升服务质量的大型医院,提供了可行的、可靠的、高效的数据组织和托管方案。
参考文献
[1] 张亚娜, 苏玉成, 李想,等. 基于加速康复外科的科研大数据平台建设[J]. 中国医疗设备, 2019(9).
[2] 汤姆斯·约翰, 潘卡·米斯拉. 企业数据湖[M]. 张世武, 李想, 张浩林译.北京:机械工业出版社, 2019:227-254.
[3] 辛海燕, 李鹏, 张国庆. 医院医疗科研大数据平台的建设与应用[J]. 中国卫生信息管理杂志, 2019, 16(2):206-209.
[4] 杨存, 宗会迁, 宋登浩,等. 大数据下多参数心电监护仪风险因素调查及分析[J]. 中国医疗设备, 2019(12).