赵佳彬 富春岩
摘要:随着云计算、物联网等的发展,大数据的时代已经到来。大数据给人们的生活带来了极大的便利,但也给传统的数据管理方式带来了极大的挑战。为保证已经历多次加工过程的数据能被正确使用,用户必须知道数据的演化过程。该文介绍了数据追溯概念框架,提出一种数据追溯系统,并对其部分功能进行了分析。
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)34-0012-02
1 引言
大數据环境下,数据从最初的发布者到最后的销售者之间可能经过了多个节点,经历了多次加工。在这种情况下,验证数据的可靠性、时效性及安全性非常必要,但目前还缺乏有效的手段。研究者必须采用最准确的、最完整的、最具时效的数据才能开展有效的研究工作。不仅对科学计算、电子政务、企业信息化等领域非常重要,在政府部门、公司企业进行统计数据分析时,如果用存在问题的数据进行统计分析数据挖掘,都可能产生严重的不良后果[1]。
为了保证已经历多次加工的数据能被正确使用,用户必须知晓数据的产生、更新、变换和传播过程。通过数据追溯,用户可了解数据在生命周期的语义变化过程,鉴别数据的来源,并回溯到所有相关数据的来源,实现对数据的质量评估、数据的审计跟踪,数据交换监控等问题,并在相关的数据交换平台中应用。此外,数据追溯还可用于病毒防护及入侵检测、数据发现、信息检索等应用领域。
2 数据追溯概念框架
要对数据进行有效的追溯需要一个概念框架。首先,数据模型的构建,决定了原始数据的获取、更新、重构、评估等各种操作。本文提出了如图 1 所示的概念框架。图中包含了所追溯数据的初始数据模型应该包含的数据信息。
3 数据追溯的方法
数据追溯的方法目前主要有标注的方法[2]和基于逆置函数的方法[3]。
3.1基于标注的方法
标注法是一种基于注释的、简单有效地进行数据追溯方法。只需要记录、注释下相关数据的辅助信息,以供使用者处理信息即可。工作流追溯管理系统一般采用的都是这种基于标注的方法。标注用于数据追溯,是对记录中关于数据出处、作者、时间及其演变历史等重要信息进行注释,并将这些注释信息与数据一起传输,这样用户就可以接通过注释信息查询数据的起源信息。
对于小型系统来说,进行数据追溯时,只要数据存储策略得当,采用这种方式的效率还是很高的。但对于大型系统来说,数据记录得太详细会使注释信息可能比原数据还多,系统将很难对超细粒度的实验数据进行良好的管理,这样就会导致管理和使用效率的降低。
3.2 基于逆置函数的方法
这种方法是另外一种进行数据追溯的方法,它一般是通过构造逆向函数对查询求逆,从结果逆向追溯到源数据。一般只有在需要用到数据追溯时,才进行计算。这种方法,只要设好逆置机制就可以实现跟踪,无需存储数据转换时的中间结果,也不像标注法那样,要存储数据整个过程的注释信息,这种方法只需要少量的元数据知识的信息,即可实现数据追溯。理论上来说,在一定的限制条件下,通过分析数据库操作语句,可得出任意粒度的数据追溯。但实际上,逆置方式的优点虽然很多,但不是所有的数据追溯都可以用逆置法实现。
4 数据追溯系统总体设计
包括模式级数据追溯解析、字段级模式级数据追溯解析功能,标注信息生成功能,溯源信息存储、溯源信息查询以及溯源信息显示功能。
系统通过词法分析器和语法分析器进行词法和语法分析得到抽象语法树;通过对抽象语法树进行起源语义分析,将获得 SQL 中模式级与字段级数据。 进行模式级及字段级数据追溯解析后,将生成SQL 执行计划,通过执行计划,生成元数据中的数据追溯起源标注信息,并将标注信息填充到元数据中。因此,标注信息会随着元组的传递而进行传输,在元组传递到根结点时,将源元组的数据追溯起源标注信息与目标元组的数据追溯起源标注信息都填充至起源元数据表中。 最后,通过溯源信息存储、溯源信息查询以及溯源信息显示功能实现数据追溯查询和显示的功能。
5 模式级和概念级溯源信息查询功能
当溯源信息被解析和存储后,可进行查询并及显示。下面简单介绍一下模式级和概念级溯源信息查询功能。
5.1 模式级溯源查询
首先,输入目标表名,从表名id映射表中找到目标表名对应的 id,再从关系定义的表中找到目标表的定义,接下来根据表的类型对相应的表结点进行初始化,然后遍历目标表字段定义,生成一个新的子节点描述该字段并放入相应的表结点中,并找到对应该目标表的转换结点,遍历转换列表,生成转换对应的 dot 图形,再从对转换表操作得到相应的转换定义。然后就可以初始化一个转换 dot 结点,根据转换定义填充 dot 图,添加源表 dot 与新生成的转换 dot 图之间的连接边,最后生成dot脚本。
5.2 概念级溯源查询
首先,输入目标表名和目标字段名,从表名id映射表中找到目标表名对应的 id,再从关系定义的表中找到目标表的定义,从目标表定义中找到相关的目标字段定义,然后根据目标表名找到对应的目标字段的定义,生成目标字段 dot 结点,找到该字段所对应属性的映射的 id,再在属性映射表中找到属性映射项,这样就可以生成属性映射 dot 结点,建立属性映射 dot 结点到所对应目标字段结点的连接。对源字段队列进行初始化,将属性映射的来源字段 id 放入其中,然后再取出源字段队列的首元素字段 id,进行递归调用,最后生成dot脚本。
6 总结
数据溯源可以查询数据来源,对数据来源进行跟踪,评估数据的质量好坏和数据的可靠性;可再现数据的产生、重构过程,有利于数据共享和优化;发生错误时,可迅速定位错误位置,分析错误原因,并解释数据现状产生的原因。因此,数据溯源在科学与生产、生活各个领域都有非常重要的意义。
参考文献:
[1] 中国互联网络中心.2015年中国互联网络发展状况统计报告[EB/OL], http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201502/P020150203548852631921.pdf?COLLCC=3994320344&,2015.
[2] CHITICARIU L,TAN W C,VIJAYVARGIYA G. DBNotes: a post-itsystem for relational databases based on provenance[C]// Proc of theACM SIGMOD International Conference on Management of Data.NewYork: ACM Press,2005: 942-944.
[3] FAN Hao,POULOV A.Tracing data lineage using automed schematransformation pathways[C]// Proc of the 19th British National Con-ference on Databases.Berlin: Springer,2012.
【通联编辑:梁书】