基于HBase的区域化桥梁健康监测数据存储方法
2020-02-27李正武冯静张登云杨小霞
李正武,冯静,张登云,杨小霞
(1.宁夏公路管理中心,宁夏 银川 750000;2.重庆交通大学 信息科学与工程学院,重庆 400074)
一、引言
当前,以保障桥梁安全运营为目标的桥梁健康监测系统已经得到了广泛的运用。但桥梁监测数据每月数以TB量级的增长,带来了新的数据存储问题。在现有的桥梁监测数据管理系统中,还未形成一套完备的数据存储体系,目前的关注点大多集中在监测数据的预处理,桥梁的养护加固以及安全预警等方面,对监测数据存储少有研究。
监测数据的有效存储是后续研究工作的基本保障,因此对采集到的原始数据进行合理高效的存储显得至关重要。目前,我国大部分地区的桥梁监测系统都是采用“一桥一系统”的专属模式,数据之间缺乏联系,融合困难。如何打破信息孤岛,对同一区域不同桥梁的监测数据进行区域化存储,得到桥梁的整体健康状况,成为亟待解决的难题。基于此问题,本文提出了一种基于HBase的区域化桥梁健康监测数据存储方法,解决了区域化桥梁健康监测数据的存储和管理问题。
二、桥梁健康监测系统
一个完整的桥梁结构健康监测系统分为硬件部分和软件部分。硬件部分主要是各种传感器,负责采集关键部位的数据;软件部分包括数据采集与传输、数据处理与分析、数据库的管理三个模块。在信息收集传输和分析处理阶段都涉及到数据的有效存储问题,结合分布式存储技术低成本、高容错、可移植的特点,选取分布式数据库软件作为区域化桥梁健康监测数据存储及共享平台更为合适。
三、HBase分布式数据库
HBase是Hadoop分布式平台上一个重要的数据存储工具,具有高可靠、高性能、面向列、可伸缩的存储特性,适合存储非结构化和非关系型数据。
(一)HBase的数据模型
HBase表是非结构化的非关系表,类似于一个巨大的稀疏矩阵,表中数据值都是一个个字符串,没有特定数据类型。HBase表由行和列组成,行由行键进行标识,列划分为若干个列族,列族中的数据通过列的限定符来定位,HBase表中的每个值都有一个时间戳来区分值的版本。采用行键、列族、列限定符、值和时间戳作为索引对数据进行存储。
(二)HBase的系统构架
HBase搭建在Hadoop云平台之上,通过客户端(Client)、协调工具(Zookeeper)、管理端(Master)、服务器(Region server)等部件的协调完成数据库的存储工作,其系统构架如图1所示:
图1.HBase系统构架
四、基于HBase的区域化数据存储方法
桥梁健康监测的数据采集工作依赖于各种传感器设备,传感器主要对桥梁结构的特征参数进行监测,桥梁的结构参数包括位移、加速度、风力风向、温度、荷载、挠度、应变、索力等。将监测到的相关数据进行合理高效存储是本文要解决的问题。
(一)桥梁监测数据
传感器会产生大量的监测数据,这些数据是实时更新和变化的,这就要求传感器连续工作,实现数据的动态存储。一座桥每天产生的监测数据是GB级的,一个区域内所有桥梁的数据总量是TB级的,而每座桥梁的监测系统相互独立,如果对TB级别的海量数据进行单独存储,则会导致数据之间缺乏联系,难以融合,对后续处理分析数据带来麻烦。如果同时将这些数据上传到服务器进行统一存储和管理,则会导致传输困难,并严重超出了传统数据库管理系统的承受能力。若能对数据进行分布式存储,集中化管理,则在提高存储效率的同时打破了数据孤岛。
(二)HBase存储方法
本文主要以HBase数据库技术作为存储海量桥梁健康监测数据的方法。将每一座桥的监测系统作为一个Region server数据节点,将采集到的数据存储在各自的Region server中,在一个区域范围内设置一个Master管理节点,对该区域内所有桥梁监测数据的存储工作进行统一化管理。整个区域内的所有桥梁健康监测系统相当于一个监测集群,对监测到的数据进行集群化存储和管理。该存储方法实现了该区域内所有桥梁监测数据的分布式存储和统一化管理,节省了存储空间,提高了存储效率,打破了信息孤岛。区域化桥梁健康监测数据存储系统如图2所示:
图2. 区域化桥梁健康监测数据存储系统
(三)实验环境及结果
为验证该存储方法的可行性,搭建了一个Hadoop集群进行数据存储测试。选取了一台台式机作为Master管理节点,存储配置信息,进行管理类操作,三台PC机作为Region server数据节点,存储数据,进行数据类操作,一台PC机用于Zookeeper进行协调服务,协助Master与Region server的通信。使用180个传感器节点,比较单机和配置3个节点的集群的数据存取时间,实验结果为单机的响应时间为800ms,Hadoop集群的响应时间为300ms。由此可见,分布式存储集群的时间明显低于单机。
五、结语
本文围绕区域化桥梁健康监测数据的存储问题,结合分布式存储技术低成本、高容错、可移植的特点,提出了一种基于HBase的区域化桥梁健康监测数据存储方法。该存储方法采用HBase作为数据库,充分发挥了HBase非关系化、非结构化、动态存储、节约内存等优势。将同一区域的桥梁监测系统搭建为一个Hadoop集群,将每一座桥梁的监测系统作为一个节点,又将每个节点的数据进行分布式存储,采用区域化的存储管理方式,既打破了桥梁监测系统间的数据孤岛,又节约了成本和存储空间。通过实验验证,该方法很好地解决了区域化桥梁健康监测数据的存储问题,融合了同一区域内的桥梁监测信息,节省了存储空间,提高了存储效率,在理论上和实践上都是可行的。