APP下载

基于Hadoop+Jstorm+zookeeper的自然灾害气象数据仓库构建技术研究

2017-09-22丁薇谭向宇彭晶黄绪勇聂鼎程旭明胡勇

科技传播 2017年17期
关键词:流式数据仓库实例

丁薇+谭向宇+彭晶+黄绪勇+聂鼎+程旭明+胡勇

随着科学技术的不断提高,人们不只是依靠传统的气象监测方式,而是不断的进行科技革新,监测的方式越加丰富起来。而问题也随之而来,气象数据涉及的方面广阔,数据多维化,结构化和非结构化数据成上升趋势,使得气象数据的存储面临难题。

将数据库技术应用于包含海量数据的气象数据上,虽然可以大大提高数据检索能力和服务效率,但是对于海量数据分析是远远不够的,其涉及到的数据是多维化的,想要从这些看似简单,实际却很复杂的数据中分析有用数据是很困难的。

而数据仓库的出现可以很好的解决气象数据的数据量巨大,且数据多维化的问题。

1 气象数据仓库

1.1 体系结构

本文的数据仓库的建立是基于Hadoop+Jstorm+zookeeper三者的结合构建的分布式计算环境上的,最终数据存放于Hbase中,使用Map Reduce对电力大数据进行分布式计算和处理。高效快速的对实时数据处理反馈,海量数据存储。

同时将各个监测设备终端和监测属性点存放于Oracle数据库中。各个设备终端之间的关系如下:一台设备上可以挂载多个监测终端于其上,一个监测终端又按监测的种类不同分为多个监测主题实例,每个主题实例对应这一个监测类型(县级站点气象实时数据、乡镇站点气象实时数据等),每一种监测类型下有对应这多个监测属性(雨量、实时温度、湿度等)。

将采集到的实时数据存放于Hbase,非实时数据存放于Oracle,两者即互不相干,有密不可分。Hbase数据的写入,依赖于实时数据和非实时数据。

1.2 数据来源

本次研究的数据仓库技术的数据来源是从地方局中调取的数据,其以文件格式存储于远程ftp服务器上。故数据要想进入到Hbase中,需要程序解析后塞入消息队列中,然后在存至Hbase。

为了预测的准确和详细,需要进行多个天气指标值:温度(℃)、雨量(mm)、风速(m/s)、风向、气压等,还要根据气象卫星传递回来的数据进行分析整合。

在数据存放Hbase前,设计合理的rowkey可以大大的提高数据的检索能力,提高Hadoop集群的性能。

本此研究同样设计了一套简单而有效的rowkey策略:以主题实例+监测属性+采集时间三者拼接组合成rowkey。这样设计的原因是:1)主题实例是唯一存在的,一个主题只对应着一个终端,而一个终端也只对应着一个设备,以主题实例为首,就能确定属性的唯一;2)主题与类型是多对一的关系,一个主题对应着一个类型;而类型与属性是是一对多的关系,这样设计就能知道,是哪个主题下那个属性的监测信息了;3)采集时间,因为数据采集是分时间段的,每隔一段时间就要进行数据的采集,为确保数据的实时性,所以添加了采集时间。这样就确保了监测终端在某个时间点采集到了某个监测属性的值。

图2即是rowkey的最终效果展示:由图可以知道:主题实例10000000000001790977在2016年11月4日6时30分的时候的10076属性(天气情况)为小雨,而在8时53分为阵雨。通过主题实例亦可以反向拿到监测终端为:“10*10气象网格19176”。

數据从不同的监测系统中到来,经过解析后,按照固定的格式存储,既保证了数据的规范化处理,又能达到数据因果查询效果。拿到一个设备可以通过设备与监测终端的关系获取到终端信息,再以终端和主题实例的关系获取到主题实例信息,然后再以主题实例与实例类别,就能抽取到主题的监测属性信息,最后就可以根据这些信息,去查询指定时间采集到的数据值了:get ‘THEME_PARAM_VAUE,100000000000016833731009920160706000000。或者查询一天之内采集到的所有数据值:scan ‘THEME_PARAM_VALUE,{STARTROW=>1000000000016833731009920160706074800,STOPROW=>000000000016833731009920160707000000}。

2 流数据的处理

气象数据也是一种流式数据,监测设备按照一定的频率,长期的采集监测点的数据,通过网络实时的提交给服务器。所以可以把它看作一种流数据。

针对于流数据,我们在建设分布式计算环境的时候就已经接入Jstorm流式计算框架。它能够简单可靠的处理实时的数据流,采用批处理方式实时处理,在极端时间内得到结果反馈。

外部流式数据流入Spout中,然后将数据以tuple作为基本单元传递给Bolt处理单元,然后再将经过处理后的数据到下一个处理单元对数据加工处理,直到最后一个处理单元处理完成,才能算完成一次Topology,在这个处理和传递数据的过程中,走的都是批处理方式,高效快速的对流数据进行计算处理,达到实时的反馈[1]。

气象数据的后期利用也是很大的,虽然上一刻的天气已经处于过去时了,但是其依然还有利用价值,比如:气象预测的时候,你得有一个事物作为参照,才能根据公式、程序得出想要的结果。

所以对于气象数据的存储,不管是过去,还是现在的数据都非常重要,不能轻易的做删除操作,而在Hbase中如果数据列有问题,可以通过rowkey更新覆盖,这有一个好处:Hbase会自动记录版本号,旧的版本不是物理上的删除,而是不直接显示,每次只显示最新版本的数据。

3 结论

以上就是对气象数据仓库在数据存储方面的研究,建立合理的rowkey策略,保证数据的唯一性、可使用性,以简单的方式存储具有重要价值的数据。使用Jstorm对气象数据进行处理和存储,极大的提高了数据处理能力,无限的接近于实时反馈。

参考文献

[1]杨鹏.面向流式数据处理平台JStorm的负载均衡技术研究[J].北京:北京工业大学,2016.endprint

猜你喜欢

流式数据仓库实例
辐流式二沉池的结构优化研究
基于数据仓库的住房城乡建设信息系统整合研究
分布式存储系统在液晶面板制造数据仓库中的设计
探析电力系统调度中数据仓库技术的应用
微球测速聚类分析的流式液路稳定性评估
基于数据仓库的数据分析探索与实践
自调流式喷管型ICD的设计与数值验证
流式在线直播视频的采集
完形填空Ⅱ
完形填空Ⅰ