首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

快速变现实时数据价值(一):多源数据花样接入

Esri商业服务团队的高级政府顾问Kevin Bolger和Esri专业服务团队的管理者、Esri的核心领导成员Brian Cross在“Where Next’s Think Tank series”的开幕式上对话时提到,人们常常将物联网与实时数据,大数据与历史分析联系在一起。(原文请参见《先锋对话 企业如何成功步入物联网和大数据的世界?》)

没错儿,物联网(IoT)中的传感器正是实时GIS数据源最主要的构成者,大到天上的卫星、奔驰在路上的汽车、各种交通测速仪,小到人们手中的智能移动设备,环保监测站点、某根管线上某个阀门处的芯片等,无处不在的传感器时时刻刻都在产生着鲜活的数据。正如Bolger提到的,物联网的真正意义在于能够用传感器、汽车、移动设备,和其他资产——甚至是人群——来获取数据。

随着IoT的快速发展和深度应用,我们用户手中的实时数据急剧增多,体量巨大,业务价值凸显的越来越明显。不过,坐拥这些数据宝藏,如何才能让它们快速产生业务价值呢?

利用ArcGIS平台的能力可以有效解决上述问题,首要任务之一,我们需要将实时数据快速接入ArcGIS。但是实时数据源的类型复杂多样,ArcGIS都能顺利接入吗?本文根据几个真实的用户场景为大家解答上述疑惑。

1

用户A主场景:

多样传感器直连

用户A:我们单位有几条公交运营线路,想对公交车进行实时智能管理和监控。每辆公交车上都装了车载定位设备可以实时采集信息,请问这些信息如何与ArcGIS对接呢?

虫草菌:物联网传感器的类型非常之多,常见的有各种温湿度传感器、空气质量检测传感器、道路交通流量检测传感器、视频监控摄像头、RFID、条形码、二维码……无法穷尽,其中您提到的公交车的车载定位设备也是其中非常常见的一种。

传感器类型虽多,但大部分采集数据的过程和原理是相似的,传感器感知到环境的变化后,将采集到的模拟信号/数字信号传送给相连接的微处理器进行处理,如数据解析、A/D转换等,处理的结果通常是将传感器采集的数据解析为一组一组按照设备标准或者行业规范组织的流式数据,可以是二进制流、十六进制流,也可以直接解析成JSON等通用的Web格式【数据格式】,并通过有线或zigbee,wifi,蓝牙,GPRS、GPS等各种无线通信技术传送到服务器端,传输协议通常采用成熟的网络传输协议,如TCP、UDP、FTP、HTTP等【传输协议】。

不过,作为用户,完全无需担心和关注这些细节,通常传感器的硬件提供商会提供相应的解决方案,将采集的数据按照用户的需求传送到指定的服务器/数据库,甚至也会解析成用户想要的或者主流的通用的格式,您只需跟硬件提供商确认,采集的数据是按照何种协议和格式传回来的,接下来交给ArcGIS GeoEvent Server就好了。

GeoEvent Server(以下简称GE)是ArcGIS平台的实时数据接入和处理服务器,它有一个组件叫“输入连接器”,顾名思义就是实现实时数据的接入。比如您的公交车的车载设备以UDP协议传回文本格式,那么您选择Receive Text from a UDP Socket输入连接器即可实现数据的持续接入了。

关于GE的组成和相关介绍,请参见《ArcGIS 10.5,打造实时大数据的平台!》一文,这里不再赘述。

用户A:哦,这么说我明白了,其实只需要确定传感器的传输协议和数据格式就可以了。那我还有个问题,我们的公交车以前旧款的车载传感器故障率比较高,正计划换一批新的车载传感器,但这批新设备采用的是自定义的16进制数据格式,这种能接么?

虫草菌:当然能,GE产品的优势之一是可以全方位扩展。它提供了一个开发包,可以基于java对输入/输出数据的协议、格式以及数据的处理方法进行按需灵活扩展,实现对非主流的传输协议和自定义的数据格式(如上海巴士通、JT808、以及主流但国内少用的NMEA0183)的接入和解析。下图就是我们接触过的一个用户,他们的车载设备传回的数据采用的是上海巴士通的自定义16进制流。通过GE扩展一个输入连接器,对该数据按照巴士通的标准和规范进行解析,即可得到车辆的实时速度、实时油耗等各种实时信息。

传感器推送给GE的16进制实时数据流

使用GE开发包扩展一个输入连接器,按照巴士通的标准规范对该16进制流进行解析

得到实时速度、实时位置等各种实时信息

用户A:更换新设备的厂家目前没有最终确定,如果我们换了其它厂家,他们采用不同的协议或者格式采集和传输数据,那我们还能顺利接么?还是需要巨大开发量?

虫草菌:这个问题其实挺有代表性的,我也碰到有很多用户,他们手头的传感器可不止一种,并且每一种传感器采用的数据传输协议和格式都可能不一样,有的是tcp的,有的udp的,还有http的,格式的话有标准JSON的,有文本的,有XML的,还有二进制的,等等。这种情况下,他们的需求和担心跟您是一样的。但是对于GeoEvent Server来说,这个问题几乎不需要担心。

GeoEvent Server另一大优势,就是封装好了很多输入连接器,目前,GE的输入连接器有17种,如Receive GeoJSON on a WebSocket、Receive Text from a TCP Socket、Receive XML on a REST Endpoint、Subscribe to an External WebSocket for JSON、Poll an ArcGIS Server for Features、Receive RSS等等,从输入连接器的名称中我们就可以看出,几乎涵盖了主流的数据输入格式和传输协议,因此,对于您刚提到的现状,以及手头有多种传感器类型的用户和开发商,几乎无需开发即可实现快速接入,极大了减少工作量。

ArcGIS GeoEvent Server提供的17种即拿即用的输入连接器

用户A:那我明白了,这个优势真是太好用了,各种类型的传感器都能直接对接,这下我们可以放心的进行硬件选型了!

2

用户B主场景:

Oracle数据的实时数据源接入

用户B:我们的传感器很早就有了,监测有害气体的,实时数据也有既定的接入方案,会定时更新到Oracle数据库里,我们暂时没有改变数据接入方案的计划,因为改动的话涉及的业务系统比较多,那这样ArcGIS还能接吗?

虫草菌:这种情况下,我们依然是可以接入的。通常有2种方式可以与ArcGIS对接:一是如果用户有数据服务器,可以对外提供http、tcp、WebScocket等主流形式的输出,GE可以采用已有的输入连接器进行接入。

二是如果用户没有数据服务器,我们就需要自己扩展GE,开发一个自定义的oracle数据接入连接器,或者开发一个数据抓取工作以代替数据服务器的转发功能,为GE提供数据源了。

在我们与一个用户的合作中,我们就采用了上述方式实现Oracle数据库的实时数据源的接入。我们已经将这个成果做成了即拿即用的小工具,相信可以帮助很多有这种需要的用户解决问题。

在这个场景中,用户的供水、供气、供热、风力/光伏发电等多种能源的实时数据都存储在Oracle中

用户B:因为不同的部门业务需要,还有些数据存在了MySQL里了,这个也能接?

虫草菌:无独有偶,我碰到过很多类似的用户,他们的实时数据都已经存入了Oracle、MySQL、SQL Server,甚至是Redis这些数据库中。其实不管哪种类型的数据库,解决思路都相差无几,只不过从不同数据库中定时获取数据的方法稍加改动即可。上面我们已经成功实现了oracle数据库中的数据源的对接,其它的数据库接入同样可以实现。

用户B:如此甚好,我们就可以把这些分散的实时数据统一利用起来,与现在的地图业务结合了。

3

用户C主场景:

实时大数据Kafka接入

用户C:我们的实时数据量有点大,每秒同时更新数据的传感器并发量在2万条左右(船只)。目前我们已经采用主流的Kafka框架把这些大量的实时数据接进来存在了我们自己的服务器上,这种情况下该怎么与ArcGIS对接呢?

虫草菌:在大数据的时代背景下,有许多用户也会采用Kafka、RabiteMQ、ActiveMQ等消息服务器的方式接入大量的实时数据流,同样,利用GE强大的扩展能力,我们可以开发对接kafka和各种消息服务器的输入连接器。目前Esri已经扩展好了上述三种消息服务器的输入连接器,放在GeoEvent Gallery中,下载即可使用。使用起来也非常简单,用户只需提供Kafka消息服务器的地址和端口号等相关信息,即可轻松接入。

下面这张截图就是我们采用Kafka接入了每秒2~3万数据量的车辆的效果,看起来还不错吧?

用户C:恩,这种方案几乎不需要我们做任何改动,只需从Kafka中给你们推送数据就好了,太方便了!

4

用户D主场景:

文件型实时数据源接入

用户D:我们的业务系统不定时生成一些csv文件,我能把它们作为一种实时数据源接入到ArcGIS中吗?

虫草菌:恩,文件型实时数据源在某些场景中确实会更便利,制作简单,分发快速,格式通用,可以在不同程序之间交换,如JSON、GeoJSON、CSV等。针对这种类型的数据源,ArcGIS GeoEvent Server提供了一种类型的输入连接器叫Watch a Folder for New CSV/JSON/GeoJSON Files,通过名字可以看出,可以将上述三种文件型数据源放到一个目录下并注册到GeoEvent Server中进行监控,一旦有新的文件存放到该目录下,GeoEvent Server即可实现接入。

用户D:还有这么简单好用的接入方法!这个设计真是太贴心了!值得立刻试一下!

虫草菌:GeoEvent Server是ArcGIS体现中四大重要的服务器之一,在物联网蓬勃发展,大数据炙手可热的时代,它给用户提供了一种高效的实时大数据接入、处理和输出以及可视化的途径,并通过与GeoAnalytics Server的结合,在实时大数据积累的历史数据挖掘方面有更大的突破,为企业用户充分挖掘数据背后的价值。而GE能接入的实时数据源远不止上面提到的那么多,其它的如Azure IoT Hub、Amazon IoT Hub、TAIP (Trimble)、OSIsoft等等,都可以通过扩展实现接入,事实上,这些扩展也早就被Esri实现了,输入连接器就放在Esri Gallery中,欢迎大家下载使用。

Esri Gallery地址:

http://geoevent.maps.arcgis.com/apps/MapAndAppGallery/index.html?appid=186a8c8df5954bf1a8ec7dd847cbee14

Merry christmas !

&

Happy new year !

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171225G0LIII00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券