城市计算
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4.2 城市数据管理挑战

有许多类型的数据,如文本、图像、交通和气象数据等,都是由城市空间中不同的来源不断生成的。为了更好地支持上层数据挖掘和服务,需要跨不同领域管理大规模动态的数据集。云计算平台,如Microsoft Azure和Amazon Web Services,被视为大规模和动态数据的理想基础设施。由于大多数城市数据都与空间信息和时间属性(称为时空数据)相关,城市计算需要云计算技术来管理时空数据。然而,当前的云计算平台并非专为时空数据设计。以下是在处理时空数据时面临的主要挑战。

1.4.2.1 唯一的数据结构

时空数据具有唯一的数据结构,这些结构与文本和图像不同。例如,一张照片在拍摄后的大小是固定的,而一辆出租车在城市中行驶的轨迹长度会不断增加。一个移动物体的轨迹数据会以不可更改的顺序持续流入云端,我们无法预知轨迹何时结束以及它最终会多大。此外,为了支持不同的查询,时空数据的存储机制也不同。

1.4.2.2 不同的查询方式

我们通常通过关键词查询文档,即精确或近似匹配一些关键词与文档集合。然而,在城市计算中,我们通常需要处理对时空数据的时空范围查询或k最近邻查询。例如,在60s的时间范围内找到附近的空出租车是一个针对出租车轨迹数据的时空范围查询[65]。同样,在驾驶过程中搜索最近的加油站是一个连续的1最近邻查询,针对的是POI。现有的云组件无法直接且高效地处理时空查询,因为在大多数云存储系统中没有找到索引和检索算法。

1.4.2.3 混合索引结构

传统的索引和查询算法通常是针对某一类型的数据提出的。例如,R树是用于索引空间点数据的,倒排索引是为了处理文本文档而设计的。然而,在城市计算中,我们需要处理具有不同格式和更新频率的多数据集,这些数据集跨越不同的领域。这需要能够组织多模态数据(例如,将轨迹、兴趣点和空气质量数据一起管理)的(混合)索引结构。如果没有这样的混合索引结构,上层机器学习模型的在线特征提取过程将需要很长时间,从而无法提供即时服务。目前,这样的研究非常罕见。

1.4.2.4 将时空索引与云集成

在处理文本和图像时,云计算平台通常依赖分布式计算环境,如Spark、Storm和Hadoop,因为针对文本和图像设计的索引结构功能相当有限。例如,倒排索引通常用于维护单词和单词所在文档之间的关系。然而,对于时空数据,有效的索引结构可以将检索算法的效率提高几个量级。将时空索引的优势与云中的分布式计算系统结合起来,可以使得云在处理更大规模的数据时更加高效,同时使用更少的计算资源。

将时空索引集成到云的并行计算环境中是一个艰巨的挑战,特别是在有大量轨迹数据流入云时。例如,要找到在几分钟内穿越一系列道路段的车辆,就需要将轨迹索引结构系统地集成到基于Storm的计算框架中。因为使用了并行计算框架和索引结构,所以平衡内存和输入/输出(I/O)吞吐量是一个挑战,这需要用到分布式系统、云存储和索引算法的知识。一些索引结构在独立运行的机器上可能表现很好,但考虑到索引分区和更新的潜在问题,它们可能不是分布式环境下的最佳选择。