关键词:
JSON
时态数据
数据模型
时态查询语言
时态索引
摘要:
随着互联网技术的不断发展,轻量级、易于解析的数据交换语言JSON得到广泛使用。时间属性是数据的一个重要维度,随着数据的添加、修改或删除,数据会随着时间的推移而变化。因此,需要对JSON数据的更新历史进行记录,以便能够有效处理时态JSON数据,跟踪JSON文档随时间的变化,并支持时态查询。但当前关于JSON的时态建模研究主要关注JSON数据在单一时间维度上的时态扩展,而忽略了JSON数据同时在事务时间和有效时间两个时间维度上的变化过程。并且当前的JSON查询语言也不支持针对双时态JSON文档的时态查询和索引。本文针对以上问题,开展的主要研究工作如下:
(1)针对目前JSON无法记录时变数据变化轨迹问题,提出一种基于树结构的双时态JSON数据模型。在传统JSON文档里引入事务时间和有效时间2个时间维度构建双时态JSON模型,模型中时变数据由时态版本节点管理。设计双时态JSON模型与文档转换算法,保证转换中时变数据时间顺序。通过实验比较双时态JSON文档与单时态JSON和文档快照对双时态耦合数据的存储性能和解析时间。结果表明,双时态耦合数据中存在时间差异情况时,双时态JSON模型的存储性能和解析时间更好,具有较高实际应用价值。
(2)针对传统JSONPath无法对时态JSON数据进行时态查询操作的问题,为了支持对该数据模型的有效查询和分析,在传统JSONPath查询语言基础上设计了时态查询操作符,设计具有时态查询功能的JSON查询语言BtJSONPath。在时间维度方面,该查询语言允许用户根据有效时间和事务时间2个维度进行数据检索。在数据检索方面,该查询语言允许用户进行双向查询,即由时间检索数据具体状态,由数据状态检索时间点或时间区间。在3个数据集上进行实验,证明BtJSONPath相比传统JSONPath在时态查询方面的有效性和优越性。
(3)双时态JSON文档随着时间的推移不可避免地会生成大量时变数据,导致时态查询效率下降。针对这一问题,首先在传统JSONPath索引基础上构造一种支持时态查询的索引结构BtMap,这是一种支持双向映射功能的Map结构。其次,提出一种由value检索key的逆向映射算法,实现时态索引的双向映射功能。在3个数据集上进行比较实验,结果表明,实现时态索引的BtJSONPath比未实现时态索引的BtJSONPath在时态查询时具有更高的查询效率。
图[30]表[20]参[69]