裴威
[摘 要]近年来,随着互联网技术的广泛应用,时空数据成为大数据分析的一个重要研究领域。OmniSci作为时空大数据分析平台,主要借助GPU大规模线程和高速计算力,承载亿万级时空数据分析和数据可视化的任务,并结合了地理信息系统GIS、商业数据分析BI系统和基于位置服务LBS三者的优点,为共享出行、O2O上门服务、快递物流、智慧交通、商业地理等互联网LBS应用提供强有力的基础设施服务。基于此,本文主要介绍了时空大数据分析平台OmniSci(MapD)的核心技术和系统架构。
[关键词]GPU;时空数据;数据库
doi:10.3969/j.issn.1673 - 0194.2019.08.075
[中图分类号]TP311.13 [文献标识码]A [文章编号]1673-0194(2019)08-0-02
1 研究背景
移动互联网的飞速发展和智能手机GPS模块的广泛应用,使基于位置的服务(LBS)呈爆炸式增长。共享出行、O2O上门服务、快递物流、智慧交通乃至商业地理等新一代LBS应用,对空间数据的存储、计算、管理和分析都提出了更高的要求。空间数据具有数据规模庞大(Volume)、数据查询频繁(Velocity)、数据类型多样(Variety)和数据价值巨大(Value)的特点,因此,有必要结合地理空间信息系统(GIS)、LBS兼具商业智能分析(BI)系统的优点,着手构建新一代时空数据分析平台。
传统的GIS平台在国土、水利、地质、气象、水文、交通和市政等领域应用广泛,但受限于传统的C/S模式,在B/S模式的WebGIS应用上与主流互联网技术发展脱节,服务范围受限于局域网之内。以Esri公司的ArcGIS系统为例,该系统将空间数据以矢量的形式存储在文件中,并附带时间信息,可以精确表述空间数据的变化,也可以使用空间数据转换中间件,将空间数据存储在DBMS中进行管理。ArcGIS面临数据扩展性问题,在数据操作和服务性能上都面临很大的局限性,同时,处理空间数据量只有百万级,在性能上无法满足互联网LBS的应用需求。
同时,传统的BI软件对空间数据的支持度不够,缺乏空间聚类、空间运筹、路径规划、地理热图、时空数据挖掘等方面的功能。基于此,LBS互联网公司往往要根据自身业务需要构建空间数据处理系统,比如百度地图、滴滴打车、美团外卖等。商家基于商业竞争方面的考虑,在对外接口上限制了操作类型和数据速率。此外,信息壁垒造成了空间数据信息孤岛效应,大量的空间数据由于没有充分利用相关信息,导致其无法催生出新的商业机会,是一种极大的资源浪费。近年来,以OmniSci(前MapD)、H2O.ai为代表的GPU加速数据分析平台发展迅速,在结合GIS、BI和LBS优点的基础上,可能成为新型时空数据分析平台的首选。
2 核心技术
2.1 GPU时空数据库
OmniSci时空数据库采用GPU数据库技术进行查询,通过即时编译技术将用户的查询语句编译为可执行代码,并驻留在GPU中。由于GPU长于计算而弱于逻辑控制,基于迭代的Volcano查询执行模式不适应GPU运行,因此,OmniSci采用向量化查询执行引擎,在利用GPU大规模并发线程能力的基础上,采用多级缓存,进一步提升查询性能。OmniSci将点、线、面等空间数据类型作为数据库的原生类型,省去了传统数据库解决方案中的GIS中间件,让应用层可以直接获取时空数据库的高速处理能力。此外,OmniSci集成了高速数据可视化模块,采用数据驱动协同过滤的方式,让用户可以毫不费力地进行数据分析和可视化。
2.2 时空云计算平台
以OmniSci云平台为基础,可以充分利用云计算的分布式、数据持久化、异步操作、无状态微服务(RESTful)的优点,构建稳定可靠、弹性伸缩、易于管理的新一代WEB GIS及商业智能数据分析平台,为智能交通、智能物流等智慧城市应用提供强大的存储和计算能力。用户不再考虑购置昂贵的服务器、显卡等基础设施,也无须聘请专业运维团队,就可以在OmniSci云平台上按计算量购买云服务。
2.3 数据驱动可视化技术
OmniSci时空计算平台采用先进的数据驱动图表的前端库,依托于Vega和D3.js开源框架,极大地简化了数据可视化流程,非专业人士也可以定制出生动的数据可视化面板。传统的数据可视化方案需要专业人士使用Javascript语言操作网页中的绘图元素,但由于工作量巨大、可重用性差,割裂了数据分析和可视化处理流程。OmniSci Immerse可视化模块使数据展示与后端数据查询紧密结合,用户只需在网页中点击拖动相应功能按钮就可以驱动上亿行空间数据的查询、分析。
3 系统架构
3.1 核心层
OmniSci核心层(OmniSciCoreDatabase)是GPU加速的时空数据库,由数据连接模块、查询编译器、查詢执行引擎3大模块组成。在数据连接模块中,OmniSci提供多种语言及标准数据库接口(JDBC\ODBC),也可以导入Hadoop/Spark分布式大数据,或Kafka导入流式数据。传统数据库的性能瓶颈是磁盘访问IO,这是以磁盘为中心的DBMS系统所不可避免的问题。OmniSci时空数据库大量使用内存计算技术,将数据尽可能地存储在多块显卡组成的共享显存阵列中,并利用数据划分和替换技术提供超过显存容量的数据处理能力,这种采用显存-内存-硬盘3级缓存的技术,可以在根本上避免磁盘IO对性能的制约,从而取得几千倍的速度提升。同时,查询编译器采用LLVM即时编译技术,并在查询执行引擎中采用适合GPU大规模并发线程的向量化查询处理模式,使单块显卡获得匹敌多个CPU服务器的计算能力,避免了分布式计算的不稳定性。以统一GPU数据帧(GDF)为中介,OmniSci提供与Numpy、H2O.ai的python接口,方便进行机器学习和人工智能建模,为进一步分析数据提供了可能。
3.2 渲染层
OmniSci渲染引擎(Renderingengine)是连接用户复杂查询和高速GPU时空数据库的桥梁,将时空数据库查询结果直接在GPU上进行渲染,生成各类商业智能BI交互式图表和空间数据可视化图表。渲染引擎可以直接利用核心时空数据库,通过在GPU上缓存进行空间查询,避免了大量不必要的数据传输,并通过使用GPU图形处理指令渲染动态图片,解放了CPU计算力。渲染引擎使用Vega可视化语言来控制渲染效果,并通过数据驱动图表的可视化。渲染引擎允许多用户同时以数据可视化的方式操作数据,极大简化了数据查询分析的复杂度。
3.3 表示层
在表现层,OmniSci采用与D3.js兼容的轻量级Immerse前端框架,通过在浏览器中嵌入Javascript代码的方式形成交互式协同过滤数据面板。用户根据需要,添加不同类型的交互式商业分析图表,同时支持将空间数据映射到地图底图上,生成地理热图、等高线图、地理散点图等。在大数据应用场景下,数据科学家和分析人员的工作效率直接取决于数据可视化的速度。Immerse允许用户在地图上圈出感兴趣的位置区域,设置交互式图表的过滤条件以及输入SQL查询语句的方式,以“所见即所得”的方式操作分析亿万行空间数据,同时,数据面板上的图表可以绑定成组,通过协同过滤(Cross-filter)的方式统一更新结果,快速流畅地更新过程。比如,用户可以在地理热图上圈出兴趣区域,一旦圈定,相关图表立即根据兴趣区域内的统计结果更新相关图表,实时展示数据分析结果。OmniSci同时支持上百个并发查询链接,支持多用户协同工作,团队成员只需在浏览器上登录,就可以根据自己的理解从不同角度探索大规模空间数据,进行数据挖掘、机器学习乃至人工智能建模,挖掘数据背后的价值。
4 应用案例
4.1 智慧交通
目前,百度地图、高德地图已经提供API接口,提供定位、地图、导航、实时路况、搜索等功能,通过数据爬虫和数据抓取技术,实时将数据导入OmniSci时空数据库中,建立交通大数据平台,对交通数据进行时空维度建模和持久化存储。在时空数据库和交通数据可视化的帮助下,用户可以查询特定路线、特定区域的拥堵程度,可以发现交通流量的时间模式,从而制订出行计划,估计预计时间。
4.2 智能物流
近年来,随着淘宝、天猫、京东等电子商务公司的快速发展,网上购物已经成为人们生活中不可分割的部分。同时,快递、送餐以及各种便民服务也对物流行业提出了新要求。在物流智能化过程中,供应链跟踪、路径选择、配送的“最后一公里”等问题都取决于对位置数据的分析和实时决策上。使用OmniSci作为数据分析平台,实时为决策者提供车辆位置更新信息、指定范围内信息汇总、供应链线图、系统监控和管理等服务,用数据驱动决策,以达到数字化、智能化的要求。
5 结 语
OmniSci时空大数据分析及可视化平台作为信息基础设施,必将成为云计算及人工智能信息化體系的重要组成部分,因此,研究人员必须高度重视其基础性建设工作,并不断融入智慧中国时空数据基础设施框架建设的主流中,充分发挥强大的计算能力,简化空间数据分析,推动信息化事业实现可持续发展。
主要参考文献
[1]韩剑.时空数据模型概述及研究[J].科技传播,2012(12).
[2]刘锋.Webgis架构下的地理信息系统构建研究[J].计算机测量与控制,2017(6).
[3]赵光辉.互联网+背景下我国智能物流研究[J].物流工程与管理,2016(5).