摘 要 在物联网与大数据应用蓬勃发展的背景下,各类感知设备产生海量的时序数据,设备管理软件版本的快速迭代导致时序数据的模式演化问题日益凸显.模式演化要求对数据模式进行版本管理,使数据进行模式变更时不产生信息损失,且支持对数据跨模式版本进行读写操作.结合流行的时序数据库管理系统,调研总结了各类数据库管理系统对模式演化的支持情况,对时序数据及其模式进行了形式化表述,对其模式演化的过程进行了分析,设计了一种面向时序数据的模式演化跟踪及查询方法,形式化表达了模式跟踪及跨模式版本查询的整体框架与关键步骤,并在时序数据库Apache IoTDB上进行了实现与测试.最后,分析了实现系统的性能,并展望了未来研究方向.
关键词 时序数据库;时序数据;模式演化;多模式版本数据;查询重写
在物联网与大数据广泛应用的背景下,各类感知设备每分每秒都会产生海量的时间序列数据,存储、查询和统计分析这些数据的需求使时序数据库的重要性日益凸显.在敏捷开发等软件工程的工业实践中,智能设备主控软件版本频繁变更,其所产生的数据模式也会形成多种版本.在实际应用中,一个时序数据库经常需要同时维护数量众多且版本多样的传感器数据,这就引出了时序数据模式演化的问题.
数据模式演化(schema evolution)[1]在数据库领域有多年的研究历史,一般指不会导致数据丢失的模式变更过程.目前已有的数据库对数据模式演化的功能实现各有侧重,本文对历史模式支持方式分为3类:
第1类是支持离线模式演化的数据库,具体包括使用DeltaSQL[2]等工具直接记录引起模式变更的语句,以及LiquiBase[3],Rails Migrations[4]等以数据库变更记录的形式跟踪模式版本演化过程.以LiquiBase为例,在根据