随着全球定位系统(GPS)和射频识别(RFID)等定位技术的迅速发展,获取大规模高精度时空轨迹数据已成为现实。这些时空轨迹数据在多个领域展现出重要的应用价值,包括智能交通、城市规划和环境监测等。
时空轨迹通常分为受路网限制的路网轨迹数据和其他空间的时空轨迹。其中,路网时空轨迹因其能够反映交通模式和移动规律,成为当前研究的热点。深入挖掘路网轨迹数据,对于分析道路交通状况、居民出行行为和城市功能结构等社会问题具有重要意义。
随着路网轨迹数据量的急剧增加,如何有效地建模、存储和管理这些海量数据已成为当前研究中的关键挑战。大规模数据处理不仅要求高效的存储与索引机制,还需要支持实时应用的快速查询与分析方法。
图数据库广泛使用图遍历索引来优化查询性能。但是,随着数据规模的增加,该索引会生成大量随机I/O操作,导致查询性能下降。因此,图数据库的原生索引难以满足GIS应用对时空查询效率和表达能力的要求。
为了有效地表示路网空间中的时空轨迹,Chen等提出了压缩线性参考技术,可以将轨迹从(x, y, t)空间转换至二维的CLR空间进行表示。
道路网络用有向图G=(N, A)表示。其中,N={n1, n2, ..., nM}表示路网中的道路节点集合。A={a1, a2, ..., aK}表示路网中的有向路段集合。每个有向路段au={lu, du, ns, ne}包含一组属性,lu是路网的唯一标识,du表示路段长度,ns和ne是有向路段的起始点和终点。
图1 路网时空路径示意图
如图2所示,图数据库中的逻辑模型采用资源描述框架(Resource Description Framework,RDF)格式来表示路网时空路径。在该模型中,所有路网时空路径实体在图形数据库中都表示为相应的节点。
图2 图形数据库中表示路网时空轨迹的示例
数据量的不断增长导致图数据的索引性能不可避免地面临瓶颈。为应对这一挑战,本研究在图数据库中引入了时空索引,以提高查询的效率。
基于图数据库的时空索引如图4。该索引先在路网层创建RTree构建路网空间索引,然后在每条Link上创建2层索引:时间索引和时空路径段索引。
图3 图数据库中路网时空轨迹的时空索引结构
基于上述构建的时空索引,本文在图数据库上设计了2种时空查询方法:时空窗口-时空路径相交查询;时空路径-时空路径相交查询。
图4 时空路径-时空路径相交查询示例
实验数据包含2类:① 武汉2018年的路网数据; ② 路网时空轨迹数据。武汉的路网数据通过OpenStreetMap获取,包含19 352个路网节点和52 873条有向路段。
为了验证时空索引在不同数量级下的查询效率,本次实验人工合成了5 d的时空轨迹数据。对于每一天,本次实验分别生成了25 000、50 000、75 000以及100 000条轨迹。
为了验证所提出的基于图数据库的路网时空轨迹索引的效率,本研究采用Nebula Graph作为存储平台,并在不同规模的时空轨迹数据上进行实验。实验内容包括以下2类时空查询任务:
在原生图数据库索引的处理中,首先需要遍历所有Link节点,以识别与给定时空窗口相交的Link节点。随后,对每个找到的Link节点进行循环遍历,进一步查找其上的时空路径段节点,从而确定与时空窗口相交的时空路径段节点。
图5 不同量级数据集下查询效率对比
实验结果显示,当每日存储100 000条轨迹时,原生的图数据库索引查询为28.08 s,本文提出的高效时空索引仅需0.88 s,效率提升31.91倍。
对于这种查询类型,原生图数据库索引首先通过ComposeOf和Project边找出与给定时空路径对应的Link节点。随后循环遍历每个Link节点上的时空路径段节点,以查找与另一时空路径相交的路径段节点。
图6 不同量级数据集下查询效率对比
在存储100 000条轨迹时,查询时间从原生索引的18.69 s降至2.67 s,效率提升约7倍。
图7 不同空间窗口下的效率对比
图8 不同时间窗口下的效率对比
不同索引结构 | 25,000条 | 50,000条 | 75,000条 | 100,000条 |
---|---|---|---|---|
基于图数据库的时空索引 | 0.46 | 0.60 | 0.78 | 0.88 |
使用时间索引和时空路径段索引 | 0.75 | 0.86 | 0.99 | 1.30 |
使用路网索引 | 5.45 | 9.19 | 12.41 | 16.69 |
原生的图数据库索引 | 7.65 | 13.68 | 20.88 | 28.08 |
表1 不同索引结构下各数据量级时空窗口-时空路径相交查询效率对比(单位:秒)
本文提出了一种基于图数据库的路网时空轨迹建模和高效索引方法。该方法采用压缩线性参考(CLR)模型对路网时空轨迹进行建模,并将其存储在图数据库中。在此基础上,该方法进一步构建了一个高效的时空索引。
实验结果表明,与Nebula Graph原生索引相比,本文提出的高效时空索引在时空窗口-时空路径相交查询中的效率提升至少16.63倍,在时空路径-时空路径相交查询中的效率提升至少2.74倍。