APP下载

基于HBase的心电信号存储系统的研究与实现

2018-03-14王利琴高卫香兰军翟艳东

现代计算机 2018年4期
关键词:存储系统心电电信号

王利琴,高卫香,兰军,翟艳东

(河北工业大学计算机科学与软件学院,天津 300401)

0 引言

根据《中国心血管报告2016》[1]的统计结果,心血管疾病的死亡高居我国城乡居民死亡原因首位。随着心脏病、高血压、糖尿病等慢性疾病的死亡率不断飙升,越来越多的人面临健康的威胁。同时随着通信网络技术和传感器技术的发展,来自医院的传统心电检查数据以及来自移动终端等设备的心电数据(ECG,Electro⁃cardiogram)呈指数级增长、复杂程度增大,逐步构成了心电大数据。如果能对这些数据进行分析挖掘,发现潜在的心脏疾病,并在发作前提供预警,则将大大降低病人的致死率及医疗成本,同时为医护人员的临床实践提供参考。因此构建心电数据的存储平台,实现心电数据的共享,为心脏疾病的诊断提供支撑具有重要的现实意义。

Hadoop作为分布式的存储平台,已有不少文献将其应用到了心电信号的存储领域。文献[2]提出了一种基于HBase的心电信号存储架构,并利用MapReduce编程框架实现对信号处理的方案,该方案在存储系统满足数据输入和输出响应需求的同时很容易地将计算并行化,从而解决了当前各类由于传感器和其他监测终端产生的结果数据越来越多,存储计算需求越来越高的需求。文献[3]基于Hadoop和HBase技术构建心电数据库,并对数据库的存储时间、访问时间做了测试,实验表明基于Hadoop和HBase构建的心电信号存储系统具有较高的可靠性,可以满足心电数据的存储要求。但文献中只分析了数据的存储时间、查询时间,并没有给出具体的存储系统架构。本文将从分布式存储系统设计的角度,详细给出存储系统设计的系统结构,数据存储流程以及HBase表结构设计及主键设计。

1 相关技术

1.1 Hadoop

Hadoop[4]由Hadoop分布式文件系统(Hadoop Dis⁃tributed File System,HDFS)和MapReduce编程框架组成,是一个提供分布式存储和计算能力的主从架构平台。HDFS与传统的分布式系统不同,传统的分布式系统需要在客户端和服务器之间重复传输数据,这对计算密集型的工作很适用,但对大数据处理,由于数据变得太大,对其进行移动已变得不可实现。Hadoop实现了移动计算而非移动数据,主节点(NameNode)只发送要执行的MapReduce程序到从节点(DataNode)上,而且这些程序通常很小(通常是千字节),集群的带宽完全可以满足。同时,集群中的数据被分解并分布在集群中的所有数据节点上,并且计算尽可能多地在同一台机器上的数据块进行。

1.2 MapReduce

MapReduce[5]是一种编程模型,广泛应用于大数据的并行处理。MapReduce由Map函数和Reduce函数具体执行,Map函数对输入的数据进行切分,并输出键值对形式的中间结果,Reduce函数合并具有相同键的多个不同的值,形成一个键值对的集合。它只专注于计算,而不必关心数据,使得基于MapReduce的编程更易实现。此外,由于大多数计算都是在存储数据副本的从节点上完成的,这使得在网络上传输的数据量较小,从而提高了整体计算效率。

1.3 HBase

HBase[6]是运行在HDFS之上的分布式列存储数据库,它基于Google BigTable并支持MapReduce编程模型,提供了方便的、随机访问数据的方法。作为一种NoSQL数据库,HBase对表、行和列的定义与传统的关系数据库不同,它的数据模型主要包含如下几个部分:

表:Hbase用表存储数据。

行:行由一个可排序的行键(rowkey)唯一标识。

列族:列族需事先定义,每行的数据按照列族分组存储。

列修饰符:列修饰符也就是列,列族里的数据通过列定位。每行有相同的列簇,但是在行之间,相同的列簇不需要有相同的列。

单元:行键、列族和列修饰符一起确定一个单元。

HBase在数据存储和操作方面比传统的关系数据库管理系统具有巨大的优势。因此,采用HBase设计数据存储模型,使其能够满足高并发性、海量存储和高扩展性等需求[7]。

2 基于大数据分布式平台的心电信号存储系统设计

2.1 基于Hadoop的存储平台设计

基于Hadoop平台的分布式特性,本文构建的心电大数据处理存储平台如图1所示,由Hadoop、Zookeep⁃er和HBase构建。在这个平台中,Hadoop提供基本的分布式存储和处理功能,Zookeeper协调应用程序并管理相关配置,HBase存储ECG信号数据。

图1 心电大数据存储平台设计

2.2 数据存储流程

心电大数据存储系统不仅存储由各类传感器和医疗设备采集的实时心电数据,而且也要存储已有的数据,用于数据和疾病预测的相关分析等场合。因此,对大数据存储系统来说,要分离线存储和在线存储两个过程,如图2所示。

图2 心电大数据存储流程

2.3 表结构设计

考虑到HBase在存储数据时,不同的列族存储在不同的文件中。同时当某个列族在flush的时候,与它邻近的列族也会因关联效应被触发flush,最终导致系统产生更多的I/O。因此,本文在设计存储数据表时,只设计一个列族,以心电数据存储表为例,只包含一个列族ECG,包含如下列:

文件名:心电数据作为时间序列数据,为更好的对其实施管理,需将其按照固定时间进行截取,存为一个文件。

文件存储路径:数据实际在HDFS上的存储位置。

信号特征:在分析心电图时,需要用到ECG数据的特征参数,如QRS持续时间、R波振幅、ST段振幅、ST段斜率、ST段位移、PR间期、QT间期以及由特征提取算法提取到的其他特征值。通过分析这些特征参数,应用程序可以找到各种参数与疾病之间的相关关系。

疾病类别:在心电数据存入数据库之前,基于提取到的信号特征采用某种分类方法将其大致进行分类。

用户属性:心电数据对应的患者相关的一些数据,如患者的病史、生活方式、性别、年龄、服药历史等属性,这些属性往往也与疾病存在着相关关系。

2.4 行主键设计

HBase只提供了行级索引,因此为实现多条件查询,需要设计合适的行主键。本文选择用户id和疾病id联合作为行主键。同时为避免region的热点问题,充分利用集群分布式的特性,将用户id倒序。

3 实验及结果

3.1 实验环境及数据集

测试硬件环境为在1台服务器构建分布式Hadoop集群,集群包含1个主节点,4个从节点,用到的各软件版本分别为 Hadoop2.6.2、Zookeeper3.4.6、HBase1.2.6,操作系统均为64位CentOS 6.5。服务器的硬件配置如下:

处理器:英特尔·至强·E5-2600V4处理器;

磁盘:600GB;

内存:32GB;

本文采用的心电数据库如表1所示,共包含来自三个数据集的263个心电信号文件,共约10.2G的数据。其中European ST-T数据集包含90个30分钟的心电记录文件,Long-Term AF包含84个21小时的心电记录文件,Long-Term ST包含89个24小时的心电记录文件。

3.2 数据写入性能

因ECG数据是从5KB到100MB的不等的文件,为考察心电存储平台数据的导入性能,需事先对ECG文件进行预处理,根据采样频率按照每分钟的时长将原始文件切分成同样的长度,各数据集含有的记录条数如表1所示,共236700条记录。将数据分别写入到本文构建的存储平台和MySQL数据库中,每秒记录一次写入的记录条数,实验进行10次,取平均值,实验结果如图3所示。实验结果表明:HBase数据的写入性能总体优于MySQL写入性能。HBase随着写入记录数的增加,数据写入性能总体平稳,最快写入速度19813条/秒。

表1 实验数据集

图3 HBase与MySQL数据写入性能比较

图4 HBase与MySQL数据查询性能比较

3.3 数据查询性能

按照行键的设计,设计三种查询测试用例,包含只按照用户id查询、只按照疾病id查询和用户id和疾病id组合查询,每个用例一共执行10次后取均值,结果如图4所示。实验结果表明,HBase的查询性能总体优于MySQL,最快查询速度15805条/秒,数据检索结果返回时效达到毫秒级,能够满足业务应用中对心电信号存储和检索时效的要求。

4 结语

针对关系型数据库对心电数据的存储及检索效率低的问题,通过对HBase中相关表的结构及行键设计,建立了基于HBase的分布式存储与处理系统,使实时采集和监控心电数据成为可能。系统中关键技术是基于MapReduce的并行数据导入。实验验证了该方案相对于MySQL具有较高的存储效率和查询速度,能够满足业务中的时效性要求。

[1]http://news.medlive.cn/heart/info-progress/show-129366_129.html

[2]Nguyen AV,Wynden R,Sun Y:HBase,MapReduce,and Integrated Data Visualization for Processing Clinical Signal Data.In AAAI Spring Symposium:Computational Physiology:2011.

[3]熊艳,陈宇,蒋文涛等.基于Hadoop的心电数据库存储研究[J].生物医学工程研究,2016,35(3):175-177.

[4]Shvachko K,Kuang H,Radia S,Chansler R:The Hadoop Distributed File System.In Mass Storage Systems and Technologies(MSST),2010 IEEE 26th Symposium on:2010,IEEE;2010:1-10.

[5]K.C.Wee and M.S.M.Zahid.Auto-tuned Hadoop MapReduce for ECG Analysis.2015 IEEE Student Conference on Research and Development(SCOReD),Kuala Lumpur,2015:329-334.

[6]张智,龚宇.分布式存储系统HBase关键技术研究[J].现代计算机,2014(11):33-37.

[7]R.C.Taylor.An overview of the Hadoop/MapReduce/HBase Framework and Its Current Applications in Bioinformatics.J.BMC Bioinformatics,2010.

猜你喜欢

存储系统心电电信号
基于联合聚类分析的单通道腹部心电信号的胎心率提取
心电向量图诊断高血压病左心室异常的临床应用
分布式存储系统在企业档案管理中的应用
基于非接触式电极的心电监测系统
穿戴式心电:发展历程、核心技术与未来挑战
基于Code Composer Studio3.3完成对心电信号的去噪
天河超算存储系统在美创佳绩
更正启事
基于随机森林的航天器电信号多分类识别方法
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统