2014年跨年夜上海外滩人流隐患事件,使得公共安全问题受到了全体社会的普遍关注。解决这一问题的很重要一项工做就是:如何实时监控和快速预测城市中每一个地方的人流量。当某个地方的人流量超过给定的值或者有超过给定值的趋势时,相关部门能及时地采起相关措施,例如:疏散人群,交通引流等,这样才能防止悲剧的再次发生。算法
为避免相似公共安全隐患,解决因人流问题形成的交通、社会治安等问题,搭建城市实时人流监控预测系统势在必行。数据库
▲图1 上海外滩的踩踏事件安全
京东城市做为系统建设中标单位,对整个系统的需求进行了初步分析,发现一个区域的人流量与多种数据相关,如图2所示。网络
好比:(1)手机基站数据。当一个地方的手机信令数据越多时,说明周围的人也越多;框架
(2)视频监控数据。从视频的画面中,可以识别出大约有多少人;分布式
(3)交通流量数据。某条路的交通流量直观的反映了某个区域的流入流出人数;函数
(4)出行轨迹数据。轨迹数据可以反映出人的流向;性能
(5)天气数据。人的出行受天气的影响,好比下雨天,人们都不多出门,所以天气数据也有助于人流量的预测;学习
(6)不一样的地点所能承载的最大人流量是不一样的。好比大型火车站,2万的人其实不会形成公共安全威胁,可是若是一个小区忽然有2万人,那就须要注意了。所以,每一个区域的建筑类型(咱们称之为兴趣点或POI)、建筑密度、道路结构等均可以帮助人流的预警;大数据
(7)最后,若是事先了解到诸如举行演唱会等事件信息,也有助于人流量的预测。
▲图2 业务数据
上面说的这些数据,单从一项数据是没法实时监测和有效预测某个区域的人流量的,由于一项数据仅仅反映某一方面的信息。必须综合利用尽量多的数据,才能有效地实现人流量的监控与预警,确保公共安全。
通过分析论证后,肯定的大致思路是:(1)利用上述的多种数据计算出某个时间段每一个区域的流入、流出的人流量;(2)采用AI算法模型对城市中每一个区域的人流量进行建模;(3)利用创建好的模型,根据最近一段时间各区域的人流量,快速预测将来一段时间内每一个区域的人流量,并给出潜在的预警。
总体解决思路肯定以后,最关键的就是研究数据并敲定建模方法。但问题是:(1)这么多种类的数据须要如何有效管理?(2)如何从各类类型数据中快速地提取特征指标,例如人流量?(3)如何方便快速地构建模型,并对模型进行有效性验证?
若是上面三个问题没法高效解决,那人流监控及预测根本没法保证明时性。只有快速监控和预测人流量,才能有效地施行交通管制、人流疏散,防止相似于踩踏事件的公共安全事故发生。
但这个问题要解决并不容易,首先,同类型的不一样来源业务数据,数据格式可能不同,无法统一建表,这样只能为每一份数据单独设计一张表,并且当入库数据量达到1T的时候,MySQL数据库直接崩溃。即便好不容易能把数据导入到MySQL数据库,每每缺少更深刻的MySQL数据库调优经验,一个简单的数据查询过程,耗时费力。
针对这些困境,京东城市自研了——时空数据引擎(JUST引擎),经过把带有时间、空间、位置属性的数据统称为时空数据,而且借助JUST引擎强大的数据建模能力,将数据归类成6大类时空数据模型,全部的时空数据咱们均可以按照6大类数据模型进行入库管理。这6种数据类型的分类方式为:
一方面,世间万事万物均可以由实体对象以及实体对象之间的关系组成。若实体对象之间不存在关联,咱们称之为点数据;若实体之间存在关联,咱们称之为网数据。
另外一方面,根据数据的时间和空间的动态特性,咱们能够将数据分红4类:时空静态数据、空间静态时间动态数据、空间动态时间静态数据、时空动态数据。可是,因为同一物体在同一时刻只能出如今一个地方,空间动态时间静态数据不会存在。所以,根据时空动态特性,咱们将时空数据最终分红了3类,即:时空静态数据、空间静态时间动态数据和时空动态数据。
综上,根据城市数据的时空特性以及实体间的关联性,咱们能够将城市数据划分红(4-1)×2 = 6类,如图4所示。
(1)时空静态点数据:以空间点的形式存在,空间位置和读数都不随时间变化。上述数据中,兴趣点就是这类数据,例如,火车站一旦建好,它的位置、大小、分类等信息将再也不随时间变化;
(2)空间静态时间动态点数据:以空间点的形式存在,其位置信息不随时间变化,但会接二连三地产生读数。上述数据中,监控视频数据、天气数据就是这类数据;
(3)时空动态点数据,以空间点的形式存在,但位置和读数均随时间变化。上面用到的数据中,事件数据就是典型的时空动态点数据。生活中的打车数据、订单数据也是这类数据;
(4)时空静态网数据,以网络的形式存在,位置和读数均不变化。上面用到的数据中,路网数据就属于此类;
(5)空间静态时间动态网数据,是指空间网络上产生的一系列读数。例如交通流量,每条路上每隔一段时间都会产生一条读数;
(6)时空动态网数据,以网的形式存在,且空间位置和读数不断变化。上面用到的轨迹数据就是一种特殊的时空动态网数据。
回到人流预测场景,计算某个区域的绝对流出人数,就是计算出某个时刻的总人数相对于上一时刻的总人数的差值。这是典型的时空范围查询的问题。传统的关系型数据库,例如MySQL、Oracle以及PostGIS,虽然整合了时空数据管理的模块,可以知足小数据量的时空范围查询。可是一旦数据量很大,系统就会崩溃。
针对海量数据,目前采用的主流方法是分布式非关系型数据库,例如HBase。然而,原生的HBase是一个键值(key-value)数据库,只能根据一维的键值快速找到记录,没有有效的时空索引(时空数据能够当作是3维的:经度、纬度、时间),没法高效实现时空范围查询等查询分析。此外,HBase自己没有对时空数据进行优化存储,所以占用的磁盘空间很是大。以轨迹数据为例,传统的存储方式如图5所示,每一个GPS点占用一行数据,形成数据条目数与GPS点的数目相同,致使存储空间开销很大。
▲图5 传统HBase轨迹数据存储方式
针对这些问题,JUST引擎为HBase建立了多种高效时空索引,将多维的时空信息编码到一维的键当中,可以快速定位诸如时空范围查询等查询的数据。当前JUST支持的时空索引如图6所示,分别对应不一样的数据查询场景。
这就比如你在图书馆的书架上找书的过程 ,没有建立时空索引的HBase,须要你在书架上一本一本地查找你要的书。而拥有时空索引的JUST会告诉你,你所须要的书在哪一个书架、第几层、第几本中,大大减小你的查找时间。
除此以外,JUST还对6种时空数据类型的每种数据类型设计了最佳的索引存储方式以及数据分析方法。仍是以轨迹数据为例,咱们预置了多种开箱即用的轨迹处理方法,包括轨迹异常值过滤、轨迹分段、轨迹地图匹配、轨迹插值等;对于每条分段后的轨迹,咱们将这条轨迹的GPS点存储在同一条数据记录中,并采用GZip压缩方式,这样可以大大减小数据的条目数和占用空间,如图7所示。经过咱们的实验,采用JUST的轨迹存储方法与原来传统的非关系型数据库的存储方法相比,磁盘空间缩小至1/8。更小的存储空间不只节约磁盘空间,在有限的网络带宽下还加速了查询效率。比如一扇不大的门,对于胖子们来讲,一次只能一我的穿过,而对于瘦子来讲,能够容许两我的同时通过。
▲图7 JUST中轨迹数据存储方式
咱们还提出了更为精确描述轨迹形状的方法。如图8所示。传统的描述轨迹形状的方法是使用一个矩形框,该矩形框很大空间都与轨迹位置无关。所以咱们提出了采用多个小格子来描述轨迹形状的方法。更精确的轨迹形状描述容许咱们设计出了更好的过滤方法,更进一步的提升了查询效率。
▲图8 精确描述轨迹形状
正是先进的索引方法和存储方法,使得JUST的计算效率有了巨大的提高。其中,存储和索引效率相较于原生HBase提高超过7倍,查询效率相对于其余时空查询框架有了上100倍的提高,如图9所示。目前相关研究工做申请了多项国家专利,相关论文也已被国际顶尖会议ICDE 2020接收,受到了国际同行的承认。(TrajMesa: A Distributed NoSQL Storage Engine for Big Trajectory Data.ICDE 2020)
▲图9 性能对比
在实现高效率的同时,JUST平台一样也具备“易用性”的特色。经过为用户提供JUST SQL模块,以上全部的操做均可以经过SQL语句简单实现。只要熟悉任何一种关系型数据库,熟悉SQL语句,几乎可以以零学习成本地玩转JUST。
此外,咱们还为AI算法工程师量身定作了一套Notebook,全部的数据处理和模型训练,均可以在JUST Notebook上一站式进行,与此同时,还预置了丰富的开箱即用的数据预处理、数据分析、特征提取方法,用户能够随意进行组合。
目前,除了城市实时人流监控预测系统项目,JUST还完成了多个项目的交付,包括:雄安新区块数据平台、广汉国家农业产业园、南通市域治理现代化项目等,如图10所示。
▲图10 更多的项目使用了JUST
JUST已经推出了公测版本,以PaaS的形式对外提供服务,让更多的人可以享受到JUST的高扩展性、高效率以及强易用性。JUST的产品主页和产品门户分别如图11和图12所示。
【产品主页】
http://just.urban-computing.cn/
【产品门户】
http://portal-just.urban-computing.cn/
▲图11 JUST产品主页
▲图12 JUST产品门户
传统GIS厂商的时空大数据管理平台能够理解为一个数据集市,提供各种空间数据的可视化服务,查询能力仅局限于空间查询,并非真正意义上的时空数据管理平台,能够理解为大数据量空间数据管理平台。
相较于业内同类型的其余时空数据管理平台,JUST提供了丰富的时空数据模型,可以全面覆盖全部时空数据;同时设计了高效的索引存储管理方法,为每一种数据类型封装了丰富的开箱即用的处理分析函数;此外,JUST还提供了完整的SQL引擎,全部的操做均可以简单的使用SQL语句实现;为AI算法工程师准备了完备的Notebook,方便一站式地模型构建。
总之,JUST容许用户可以更方便、更快捷地管理更大规模的时空数据。
【相关论文】
-
JUST: JD Urban Spatio-Temporal Data Engine. (ICDE 2020)
-
TrajMesa: A Distributed NoSQL Storage Engine for Big Trajectory Data (Short Paper). (ICDE 2020)
推荐阅读
欢迎点击【京东科技】,了解开发者社区
更多精彩技术实践与独家干货解析
欢迎关注【京东科技开发者】公众号