文獻標識碼: 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.xxav2194.com/resource/share/2000003062
作者信息:
杜 娟1,蘇秋月2
(1.61646部隊,北京100192;2.四川大學,四川 成都610065)