文献标识码: A
DOI: 10.19358/j.issn.2096-5133.2020.11.005
引用格式: 杜娟,苏秋月. 基于DAG的Hive数据溯源方法[J].信息技术与网络安全,2020,39(11):31-37.
0 引言
Hive是基于Hadoop的开源数据仓库工具,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;可以将SQL语句转换为MapReduce任务运行,通过自己的SQL查询分析需要的内容。这套SQL简称Hive SQL,使不熟悉MapReduce的用户可以很方便地利用SQL语言查询、汇总和分析数据[1]。由于Hive在数据存储和分析上的灵活性,众多企业用它存储重要数据。这些敏感的商业数据被大量企业内部人员访问和操作,一旦发生人为误操作或违规操作,很容易导致数据的泄露。现有大数据平台上的数据安全防护方案缺乏对敏感数据灵活的访问控制,难以对数据的生命周期及用户操作行为进行精确的追踪溯源,无法提供对大数据合规审计管理的支撑。因此,如何提供有效的安全防护机制来保障Hive中数据的安全,是目前研究的重点。
数据溯源也称为数据血缘、数据谱系等,数据溯源技术根据追踪路径重现数据的历史、状态和演变过程,实现数据历史档案的追溯[2]。通过数据溯源能追踪到异常发生的原因,还能帮助人们确定数据仓库中各项数据的来源。国内外学者在数据溯源技术上进行了深入研究。在数据溯源模型方面,汪洪昕[3]提出了数据染色体溯源模型,更加完善地揭示数据传播过程中的变化及数据的关系,并在Hadoop平台中得以实现。郝鹏飞[4]通过对大数据模型分析平台工作流特征分析,讨论了基于Oozie模型工作流的数据溯源问题。
目前针对数据库的数据溯源追踪主要有两种方法:(1)基于标注的方法[5],此类方法虽然实施起来比较简单,但需要额外的存储空间且随着处理的数据量增加其执行效率会降低,难以直接应用于维护着海量数据的Hive数据仓库;(2)基于逆置函数的方法[6],此类方法需要的存储空间较小,但不是所有的数据处理都可以逆置,且其溯源追踪的性能完全取决于逆置机制。对于Hive数据仓库中复杂的数据处理,要构造一个良好的逆置机制难度较大。Hive数据的溯源重点在于数据沿袭问题,而给定数据的数据沿袭问题可以概括为建立数据的血缘关系,得到其产生过程以及源数据。
对于数据仓库中数据溯源问题,柯洁[7]等人基于W3C的PROV模型对ETL过程的数据溯源进行了深入分析,并提出了相应的数据溯源算法。文献[8-9]讨论了数据仓库中的数据谱系跟踪问题,提供了谱系跟踪算法以及溯源过程中属性映射和转换起源集的求解方法。但这些研究均针对传统数据仓库中的数据溯源,难以应用于大数据环境下Hive的数据溯源。针对大数据环境,文献[10]提出了一种基于层的数据溯源架构,其中包括大数据来源的捕获及可视化,并且在溯源数据中引入了一种访问控制机制。文献[11-13]总结了数据库中的数据溯源技术,分析了在Hadoop环境下数据溯源面临的研究挑战,并从数据溯源模型、溯源数据存储、溯源查询语言等方面梳理了现有解决方案。Apache Atlas是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括数据分类、集中策略引擎、数据溯源、安全和生命周期管理在内的元数据治理核心能力[14],因此可以将Apache Atlas引入到Hive数据溯源中。
针对传统数据溯源机制难以满足Hive中大规模、复杂的数据处理问题,本文提出了基于有向无环图(Directed Acyclic Graph,DAG)的数据溯源方法。通过对Apache Atlas进行扩展,在Hive中实现了该数据溯源方法,并通过实验证明该方法可为Hive提供准确、高效的数据溯源机制,也为数据安全审计提供了有力支撑。
本文详细内容请下载:http://www.chinaaet.com/resource/share/2000003062
作者信息:
杜 娟1,苏秋月2
(1.61646部队,北京100192;2.四川大学,四川 成都610065)