一种基于环保大数据的存储模式及数据导入设计与实现
2017-09-23宋佳音王振海
高 锐 宋佳音 王振海
(临沂大学信息学院 山东 临沂 276005)
一种基于环保大数据的存储模式及数据导入设计与实现
高 锐 宋佳音 王振海
(临沂大学信息学院 山东 临沂 276005)
为实现生态环境综合决策科学化,利用大数据技术及传统数据库的结合,设计一种混合存储结构。既利用Hbase在大规模环境质量监测数据的高可拓展性、高可靠性的数据存储能力,又利用关系型数据库MySQL提供的强大SQL查询语言以及数据多维分析能力,实时统计分析与多维展示最近一段时间内环境质量监测数据。实验结果表明,所用方法与传统的手工记录查询方式及单一数据库查询方式相比,有效提高了数据存储规模及数据查询速度。
环保大数据 混合存储 数据导入
0 引 言
大数据、“互联网+”等信息技术已成为推进环境治理体系和治理能力现代化的重要手段,要加强生态环境大数据综合应用和集成分析,通过生态环境大数据发展和应用,推进环境管理转型,提升生态环境治理能力。利用现代信息技术手段科学有效地对环境数据进行采样存储和分析,促进政府对环境现状及变化趋势进行分析预测,对政府的宏观决策及改善环境有积极的意义[1]。
在遥感技术RS[2]、地理信息系统技术GIS[3]、物联网技术IOT[4]等领域的技术突破及应用,拓展了环境质量监测维度,因此水资源的监测数据也在迅速增长着,并呈现出快速、海量、多源的大数据特征[5]。
传统的环境信息系统在对环境污染进行全方位的实时动态监测方面表现出诸多问题,不能满足政府部门对环境信息采集、管理、分析、决策等方面的需求,严重阻碍了环境的信息化建设进程[6]。
在环保行业内部建立私有云平台可以对行业内部的敏感信息进行有效的保护,并在行业内进行最广泛的共享,最大限度地提高数据资源的利用效率;私有云可以充分利用现有的软硬件资源,保护原有投资[7]。
在新的数据中心化环境下,创新“大数据”应用,充分挖掘大数据带来的价值,充分整合系统资源,从而实现一个从数据采集、存储、分析、挖掘、决策、发布的统一的数据链应用,能为环保各部门产生更大的价值[8]。
现有的联想PM2.5云监测平台采用云计算的方式进行数据存储和处理,可实现千亿级海量PM2.5数据实时返回查询结果。一旦发生报警立即通过邮件、APP推送或者短信等形式通知管理者,并提示管理和执法人员所需执行的应急预案[9]。
通过与政府及第三方环境监测公司联合建设与开发水资源环境监控平台的过程中,基于政府积累的历史数据和监测公司提供的监测数据,设计了一种数据混合存储模式及数据导入方法。本文对混合存储模式及数据导入设计与实现进行了介绍。
1 基于大数据水环境质量架构设计
通过对环境质量监测系统的数据通信、数据存储、数据分析以及数据应用需求的详细研究分析,结合“分层设计”的系统架构设计思想,本文将大数据技术与传统关系型数据技术结合起来,以充分融合两者在数据存储、处理上的性能优势,环境质量监测系统详细架构如图1所示。
图1 系统架构图
2 混合存储层设计
考虑到既要利用分布式数据库HBase在大规模环境质量检测数据的高可拓展性、可靠性、容错性的数据存储能力及利用Map Reduce 程序可以直接使用HBase内数据的特性,设计基于Map Reduce 计算模型的海量环境质量监测数据的挖掘分析算法;又能利用关系型数据库 MySQL提供的强大SQL 查询语言以及数据多维分析能力,实时统计分析与多维展示最近一段时间内环境质量监测数据[10]。
所以将混合存储层的设计分为MySQL数据库表结构的设计、MySQL数据导入、HBase数据存储模型的设计、HBase数据导入四部分。
图2 混合存储层
2.1 MySQL数据存储模型设计
MySQL数据存储层主要负责最近一段时期内(一般为一年,视具体业务需要进行配置)采集的环境质量监测数据的存储,包括最新采集的环境质量数据同时也会存储到 MySQL数据库中相应的数据表中。
MySQL中共由5个表组成,分别为县区表、河流表、断面表、监测指标表和监测结果表组成,如表1-表5所示。
表1 县区表(Cities)
表2 河流表(Rivers)
表3 断面表(Sections)
表4 监测指标表(Specifications)
表5 监测结果表(Results)
2.2 Hbase数据存储模型设计
在HBase中Eqmdb表用于存储数据中心所有的环境质量监测数据记录,Hbase表的Row Key由一个sections ID、一个基准时间戳Base Time Stamp及一个specifications ID唯一编码组成,其中specifications ID表示环境质量监测类型唯一编号,sections ID表示监测站唯一编号,Row Key的数据格式如表6所示。
表6 Rowkey数据格式表
Hbase表只包含一个列族 Monitoring Data,其列成员共6 B,前2 B为时间戳,2 B为specifications ID表示环境质量监测类型唯一编号,剩下2 B为存储实际的环境质量监测数据值,具体数据格式如表7所示。
表7 Monitoring Data成员数据格式表
Hbase表结构的设计使得环境质量监测数据在一个时间段的多项监测数据记录可以存储在 HBase的一条记录中,减少了由于监测项目多而造成的Hbase中数据记录的总数。Monitoring Data 列族里保存的一个时间内的所有监测数据,列名是监测类型唯一编号,数据值包含表7中的三项内容,因此,可以通过列名和数据值可以获取各个时间的不同监测类型的质量监测数据。Eqmdb表结构具体如表8所示。
表8 Eqmdb表
3 数据的导入存储
3.1 Hbase环境质量监测数据的导入实现
本文采用POI(Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能[11])提供的API来对Excel表来读取数据分别存入Hbase的表中。现在以图3所示的指标值存入方式为例来进行说明。
图3 指标值存入流程图
首先依次读取输入文件的每条数据记录,通过字符串操作提取数据记录中的指标名、县区名、断面名、并通过JDBC方式在MySQL相应表中查询出唯一specifications ID(指标类型ID)和sections ID(断面ID)并生成rowkey(若不存在则进行添加,生成唯一ID),并通过辅助类将Value 解析为相应数据类型,核心代码如下:
for (intnum Sheet = 0; num Sheet HSSFSheethssf Sheet = hssf Work book.get Sheet At(num Sheet); if (hssfSheet == null) { continue; } List List String tcName = null; for (int i = 1; i <= hssfSheet.getLastRowNum(); i++){ HSSFRow row = hssfSheet.getRow(i); String cname = getValue(row.getCell(1)); //获取市区名 String rname = getValue(row.getCell(2)); //获取河流名 String sname = getValue(row.getCell(3)); //获取断面名 //数据存入Hbase } } 新建一条数据记录。根据获取的编码ID以及Timestamp 生成Row Key,然后实例化Put 请求,并调用Put 将最终数据处理结果写入HBase。 3.2 MySQL环境质量监测数据的导入实现 本文采用JDBC方式连接MySQL数据库实现增删改查,首次导入时将县区、河流、断面、指标类型导入到相应的表中。再将监测结果存入结果表中。之后的存取仅对断面及指标类型等信息只进行监测,若有新增信息则在相应的表中进行添加,导入效果如图4所示。 图4 导入效果图 以指标类型的存入方式为例,其核心代码如下: for(intnum Sheet=0; num Sheet HSSFSheethssf Sheet = hssf Work book.get Sheet At(num Sheet); if (hssfSheet == null) { continue; } HSSFRowhssfRow = hssfSheet.getRow(0);// if (hssfRow != null){ for(int i = 4;i<=hssfRow.getLastCellNum();i++){ HSSFCell specifications = hssfRow.getCell(i); spname=getValue(specifications); if(isexist){ //若不在数据库中则存入数据库 } 现有的源数据均在Excel及Word中存放,这种方式在做多表数据对比查询时通过人工的方式极易出错且不方便、效率低下,对于多个不同表中的数据无法生成折线图等可视化分析,不方便进行水资源环境形势的综合分析。(现有数据方案可方便地进行相应的数据查询及趋势的分析)本文所使用的系统可利用SQL语句强大的查询功能。方便快捷地将所需数据通过数据库中进行输出,并且将相应数据进行可视化输出,方便对水环境指标进行趋势分析,查询效果如图5所示。 图5 查询效果图 由于现有系统不需要数据的实时导入,所以现系统的数据将Excel表统一导入到数据库中。这样做与传感器直接通信存储相比在效率上有所降低,但由于考虑到目前现有工作人员长期使用并已习惯Office文档办公。若方式发生变化可能不方便工作人员的使用。所以目前采用现方式,同时可确保数据的准确性。 随着环保事业的发展及科学技术的进步,必然会不断地增加监测站点的数量和监测指标的数量,本文中所采用的混合存储模式可完全满足需求,能够方便对数据库中监测站的数量及监测指标的数量进行灵活的调整,便于系统的灵活拓展。 本文设计的环境质量监测数据的混合存储系统及数据批量自动导入功能,可有效实现数据分析处理及快速查询。一是大大扩展了环保数据的存储能力,存储容量由TB级增加到PB级,存储数据类型不仅可以是结构化数据,也可涵盖遥感图片、音视频资料等非结构化数据,有利于将分散的数据进行集中归纳。二是利用关系数据库强大的查询性能,拓展了系统查询能力。虽然Hbase的单条查询响应时间为5 ms,远少于MySQL的30 ms,但是由于Hbase无法支持多条件查询及范围查询,数据查询能力和分析能力较差,所以引入Mysql数据库以利用其强大的SQL查询语言及数据多维分析能力,实时统计分析与多维展示最近一段时间内的环境监测数据,满足日常查询分析所需。三是MySQL最大连接数可达到上万,要远远超过Hbase上千的最大连接数,对于多用户的网页应用程序来说,数据库连接作为一种关键的、有限的、昂贵的资源在其中体现得尤为突出。 同时系统设计的批量数据导入功能,可将现有的存放于Excel中的数据自动化导入到数据库中,大大减轻了工作人员的工作量,而且避免了突然改变存储方式以造成的不习惯而带来的诸多错误。与政府已有的环境监测系统相比,本文设计的大数据环境监测平台运行性能有了大幅提高,用户反映良好。下一步,优化基于存储的数据关联分析设计,提高数据应用可视化水平。 [1] 中华人民共和国环境保护部.生态环境大数据建设总方案[EB/OL].http://www.zhb.gov.cn/gkml/hbb/bgt/201603/t20160311_332712.htm. [2] 周晨.环境遥感检测技术的应用与发展[J].环境科技,2011,24(A01):139-141. [3] 潘瑜春,赵春江.地理信息技术在精准农业中的应用[J].农业工程学报,2003,19(4):1-6. [4] 贾益刚.物联网技术在环境监测和预警中的应用研究[J].上海建设科技,2010(6):65-67. [5] 马建光,姜巍.大数据的概念,特征及其应用[J].国防科技,2013(2):10-17. [6] 唐国纯.环保云的体系结构及关键技术研究[J].软件,2014(1):101-103. [7] 胡昊,朱琦,尚屹,等.云计算在环境保护行业的应用[J].计算机系统应用,2013,22(10):39-44. [8] 浪潮环保云数据中心解决方案[EB/OL].http://www.inspur.com/lcjtww/443009/. [9] 联想PM2.5云监测平台[EB/OL].http://rel.lenovo.com.cn/. [10] 李安增.基于大数据技术的环境质量监测系统的设计与实现[D].中国科学院研究生院(沈阳计算技术研究所),2015. [11] Apache软件基金会.Apache POI-the Java API for Microsoft Documents[EB/OL].http://poi.apache.org/. DESIGNANDIMPLEMENTATIONOFSTORAGEMODEANDDATAIMPORTBASEDONENVIRONMENTALBIGDATA Gao Rui Song Jiayin Wang Zhenhai (SchoolofInformatics,LinyiUniversity,Linyi276005,Shandong,China) To realize the comprehensive scientific decision-making of the ecological environment, a hybrid storage structure based on a combination of big data technology and traditional database is designed. First, Hbase has high expansibility and reliability of data storage capacity for in large environmental monitoring data. Second, relational database MySql provided powerful SQL query language and data analysis capabilities, which could make a real time statistical analysis and multi-dimensional display of environmental quality monitoring data in recent time. Experimental results show that our method can effectively improve the data storage size and query speed, compared with the traditional method. Environmental big data Hybrid storage Data import TP3 A 10.3969/j.issn.1000-386x.2017.09.013 2016-10-28。国家自然科学基金项目(61503171);山东省自然科学基金项目(ZR2015FL021)。高锐,本科生,主研领域:信息管理与信息系统。宋佳音,本科生。王振海,教授。4 数据导入及存储效果分析
5 结 语