Greenplum + PostGIS 在地理空间大数据分析的应用

随着大数据技术的发展,急剧增长的地理空间大数据已经成为海量数据处理的重要部分。Greenplum 作为成熟、稳定的大数据平台,支持包括 PostGIS 在内的众多工具,使应用场景更加广泛。 本文全面的分析了地理空间大数据在电信行业的非实时和实时应用场景 如:网络覆盖分析,业务网格展现,人流密度等,并 结合实际生产环境给出了基于 Greenplum+PostGIS 的一种高效处理地理空间大数据的方法 。希望能够帮助我国的相关应用的推广和发展。

近年来,急剧增长的地理空间大数据已经成为海量数据处理的重要部分。地理空间大数据具有空间位置、非结构化、空间关系、分类编码、海量数据等特征,应用前景多样,因此我省无论是非实时数据支撑,还是实时的应用探索,地理空间大数据的应用都扮演着至关重要的角色。

01 地理空间大数据

地理空间大数据是指带有地理坐标的数据,包括资源、环境、经济和社会等领域的一切带有地理坐标的数据,是地理实体的空间特征和属性特征的数字描述。 具体到电信行业实际使用中就是带有用户信息及经维度的信令等其它信息的数据。

02 地理空间大数据非实时应用场景

2.1  地图网格计算

主要借助 地图网格以及颜色渲染进行业务展示,即需要通过经纬度计算将用户的位置数据进行网格化,并通过位置关系计算确定数据点是否落在网格内,并通过地图方式来进行业务展示。 海量的数据需要进行非实时按日粒度快速处理,数据往往达到十亿/ 天。

2.2  物理小区与基站小区映射

在电信行业家庭宽带业务的发展过程中, 需要确定基站与家庭宽带物理小区的覆盖关系, 其中涉及家庭宽带物理小区中心经纬度与基站小区的位置关系的计算, 只有建立关系后才能将家庭宽带潜在用户信息归属到相应的物理小区进行营销发展。

2.3  4G网络覆盖

在电信行业中,需要定位潜在发展用户是否在 4G 网络的覆盖范围之内。需要大批量计算用户常驻位置与周边 4G 基站的位置关系作为触发业务推荐的前提条件,且需要按日粒度更新,因此快速的用户位置关系处理显得日趋重要。

03 地理空间大数据实时应用场景

用户位置轨迹计算: 电信应用中,比如公安,旅游,人流密度需要实时判断用户位置轨迹与当前网格/ 重点区域的位置关系确定当前位置的人员密度情况。汇总粒度需要到分钟或者是小时。

04 基于 Greenplum 和PostGIS的解决方案

传统的通过编写 SQL 实现经纬度间的计算相对复杂,代码可读性差,可移植性差。 计算执行效率低,用常规的方法计算经纬度间距需要用 ROUND,ASIN,SIN,COS 等多重函数嵌套,相对而言计算规模大,效率低,在实时场景下远远达不到要求,对日常作业更新带来很大困难。 数据精度较低,传统方法计算经纬度不支持空间投影,在一些地方需要进行 DECIMAL 截取操作,还有对π 的支持,在使用PostGIS 之前计算距离是截取的14 位π 值,传统计算方式数据精度相对较低。

PostGIS 是对象关系型数据库系统 PostgreSQL 的一个扩展,PostGIS 提供如下空间信息服务功能: 空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS 遵循 OpenGIS 的规范,PostGIS 的版权已被纳入到 GNU 的 GPL 中,由于其源代码的公开性,任何人可以对其做研究和改进。

Greenplum(以下简称GP)是一种 MPP 数据库,常用于建立企业级数据仓库。GP 数据库的是基于PostgreSQL开发的,所以 GP 跟 PostGIS 有天然的联系,经过验证可以把 PostGIS 部署在现有 GP 版本上。

PostGIS 支持的主要函数:

  • 点对点距离计算:

              ST_distance_sphere(a.geom,b.geom)

执行效率: 10亿条数据,运行处理点对点的SQL,使用常规的三角函数计算方式执行开始时间为“10:34:38”,结束时间为“12:28:52”,周期为1 小时54 分钟,使用PostGIS 提供的方式执行开始时间“10:21:53”, 结束时间为“10:29:14”, 周期约8 分钟,执行效率大大提高。

便捷与应用: 显而易见,使用PostGIS 方式计算距离的代码的可读性,简易性远远高于常规的经纬度计算SQL。可应用于家庭宽带物理小区与基站小区映射、4G 网络覆盖等地图上点与点之间的距离计算。

  • 点对面计算:

            ST_Contains(a.geom,b.geom)

执行效率: 当处理点对面的SQL 时, 常规的方式执行时间为1 小时22 分钟, 使用PostGIS 提供的方式执行时间约为1 分钟, 执行效率同样提升很大。

便捷与应用: 点与面的计算可广泛应用于基站与网格间的位置关系处理。

另外, 在精度上, 由于 MPP 数据库本身不支持空间投影, 而 PostGIS 可以使用4326(wgs86)这个坐标系统, 因此在精度上PostGIS 所运行的结果也高于通过三角函数所汇总出来的数据。

05 结 语

综上所述,相比使用传统的SQL 方式使用 PostGIS 具有精度高,速度快,代码简化,适用于空间数据的实时非实时处理,对于解决海量空间数据在电信等各个领域的应用有实际意义。

作者简介

田江涛,河北省移动通信公司 

北京邮电大学软件工程硕士,工程师。研究方向为计算机技术领域工程。

关注微信公众号

VMware 中国研发中心

Greenplum官方技术交流群

扫码添加小助手即可入群,添加时请备注 “GP网站”