方建生, 王福民
1(廣東電信 大數據運營中心, 廣州 510080)2(廣州速方軟件有限公司, 廣州 510660)
應用Hadoop提升數據庫審計系統檢索性能的研究①
方建生1, 王福民2
1(廣東電信 大數據運營中心, 廣州 510080)2(廣州速方軟件有限公司, 廣州 510660)
鑒于單節點數據庫審計系統檢索性能低下的現狀, 探討應用Hadoop偽分布模式和HBase列存儲模型重構數據庫審計系統的檢索存儲體系, 重點研究HDFS存儲機制、MapReduce運算框架和HBase數據模型三者的集成, 以提升數據庫審計系統實時檢索和綜合分析的性能. 重構方案有效提升了檢索性能, 但鑒于數據的高可靠性和大體積, 提出結合生產現狀應用Hadoop和HBase分布式集群的展望.
數據庫審計系統; Hadoop; HBase; RDMS
數據和數據庫的安全, 是計算機運維的一個重大課題, 催生數據庫安全技術的研究[1], 集中在外部數據庫入侵檢測[2,3]和內部數據庫操作審計兩個方面.
數據庫審計系統(Database Audit System, 下稱: DBAS)主要是通過旁路監聽的方式采集訪問目標數據庫的鏡像數據流, 實時監控并記錄以審計, 及時發現違規操作和異常行為[4-6], DBAS的系統部署結構如圖1所示.
DBAS在定位異常數據操作行為上, 彌補了數據庫自身日志的不足, 已廣泛應用在銀行、醫院、電信等行業[7], 其核心模塊是:
1) 集引擎模塊, 主要從鏈路層采集網卡數據包,提取數據庫會話協議的內容入庫, 涵蓋DQL、DDL、DML、DCL操作記錄, 支持各類數據庫協議的解析,包括Oracle的TNS協議、Sybase和SQLServer的TDS協議、DB2的DRDA協議等.
采集引擎的關鍵技術是及時捕獲網卡接收的數據包, 較為常見的是應用pcap庫和dpdk庫. Intel開發的網絡數據包處理轉發套件[8,9](DPDK, Data Plane Development Kit), 利用Linux 的CPU affinity和大內存頁機制提高處理效率, 并提供UIO機制支撐網卡硬件驅動在用戶態下運行, 具有更強的性能.
2) Web審計應用, 主要是對采集入庫的SQL語句進行語義分析, 重組網絡會話, 開展4W審計, 支持多關鍵字搜索和多維度統計分析.
Web審計應用的核心是檢索功能, 支持在月表億級數據量中綜合查詢、分析. DBAS由于其功能和生產特性, 多以單機集成部署采集引擎和Web審計應用,受制于關系型數據庫系統(Relational Database Management System, 下稱 RDMS)的存儲檢索體系以及單機硬件資源不足的約束, 尤其是磁盤尋址和傳輸的IO性能, DBAS檢索效能低下.
針對該問題, DBAS查詢優化方案集中在Web應用體系和關系型數據庫上, 如應用Hibernate架構和Web前端緩存技術[10]、應用數據庫索引和分表技術[11],本文則試圖從DBAS存儲檢索體系上研究解決方案.

圖1 數據庫審計系統部署
Hadoop是一套可靠的高性能的共享存儲和分析系統[12], 可靠是首要, 高性能在于克服單機作業磁盤IO和并行作業網絡帶寬的兩大瓶頸, 核心是負責存儲的HDFS[13](Hadoop Distributed File System, 下稱: HDFS)分布式文件系統和負責并行分析的MapReduce計算框架[14].
HBase具有分布式、面向列的存儲模型特性, 存儲的數據介于映射(key/value)和關系型數據之間[15]. 通過Hadoop生態系統圈, 可以看出HBase位于結構化存儲層, 底層依賴HDFS提供的高可靠存儲支持, 上層分析則借重MapReduce的高性能計算能力[16].
HBase數據模型如表1, 其列存儲特性與倒排索引[17]原理一致, 又植根于Hadoop生態圈, 適合應用于全文檢索, 主要組成說明如下:
1) Row Key: Table主鍵、行鍵, Table中記錄按照Row Key排序;
2) Timestamp: 每次對數據操作對應的時間戳, 可視為數據的version number;
3) Column Family: 列簇, 一個table在水平方向有一個或者多個列簇, 列簇可由任意多個Column組成,列簇支持動態擴展, 無須預定義數量及類型, 二進制存儲, 用戶需自行進行類型轉換.

表1 HBase數據模型
得益于Hadoop生態圈和HBase的列存儲數據模型特性, 使HBase適合于廉價PC Server上實現實時查詢和綜合分析并易于擴展成分布式集群生產.
傳統上, DBAS存儲檢索體系應用RDMS支撐采集引擎模塊的數據寫入和Web審計應用模塊的數據讀取. 通過剖析DBAS現狀和理解HBase存儲模型特性,結合DBAS數據具有列存儲的基因特征, 顯見基于Hadoop平臺應用HBase可提升DBAS的檢索性能[18,19].
本文研究應用Hadoop平臺的高性能海量數據處理能力[20]和HBase數據庫的列存儲模型重構DBAS存儲檢索體系, 高效及時挖掘數據庫操作的違規和異常行為. 重構核心是基于DBAS單機生產的特點部署Hadoop偽分布式模式, 并用HBase替換RDMS.
3.1 DBAS存儲檢索需求分析
DBAS數據存儲檢索具有單機大數據量存儲和高并發操作、數據持續寫入和讀取操作的特點. DBAS數據存儲檢索的基本信息如表2所示, 主要是數據庫操作信息的4W記錄, 溯源什么時間什么人在哪里做了什么.
采集引擎模塊解析網卡數據包中訪問數據庫操作的信息入庫, 同時Web審計應用模塊頻繁、大量地讀取數據支撐前臺手工綜合查詢和后臺自動綜合統計,單機性能和RDMS顯然無法滿足大數據的高并發讀寫.為保證審計信息及時入庫, 資源上側重采集引擎模塊的數據處理, 從而嚴重影響Web審計應用模塊的使用.
DBAS的查詢和分析, 主要集中在SQL語句語義分析的全文關鍵詞搜索和多關鍵字聯合查詢, 較為常用場景是: 操作類型、操作時間和SQL語句的綜合查詢.

表2 RDMS表信息
3.2 DBAS存儲檢索體系重構方案
綜合DBAS的數據特征和存儲檢索需求, DBAS存儲檢索體系重構方案以Hadoop核心模塊HDFS和MapReduce及其HBase整套體系來替換DBAS傳統上單一RDMS的存儲檢索體系. 重構方案以具有列存儲特性的HBase作為DBAS采集引擎模塊寫入和Web審計應用模塊讀取的數據庫, 集成偽分布的HDFS存儲和MapReduce運算框架, 支持DBAS單機大數據量的高速并發讀寫, 提升RDMS的讀寫性能.
重構方案重點研究HBase表結構設計、HBase集成HDFS和MapReduce、以及DBAS實時檢索的實現.
1) HBase表結構設計
針對表2信息, 綜合DBAS檢索的常用場景, 重構方案中將按照4W審計需求來定義HBase的列存儲表結構, 如表3所示.
在RDMS中, 一般建立操作類型和時間作為索引滿足常用查詢, 重構方案中的HBase存儲結構便以操作類型作為Row行鍵.

表3 HBase表結構
2) HBase集成HDFS和MapReduce
Web審計應用模塊提出的檢索業務邏輯, 通過HBase提交到MapReduce作業, 而MapReduce基于HDFS上存儲的HBase表運算并輸出HBase表, 提供給Web審計應用統計分析結果, 三者集成的具體數據流如圖2所示.

圖2 DBAS數據流圖
HBase按行鍵分成<key,value>對存儲在HDFS, key 值對應行健, value 值為該行所包含的數據, 定義MapReduce的Mapper類和Reducer 類支持Web審計應用模塊提出的檢索業務需求.
3) DBAS實時檢索的實現
不同于RDMS滿足規范性數據持續性寫入的存儲和分析需求, Hadoop適合應用于一次寫入、多次讀取的數據操作場景. 針對DBAS持續性寫入HBase的需求, 重點研究數據實時存儲到HDFS的實現.
HBase底層的存儲是采用key/value的文件結構,寫操作有三個步驟: 1)寫入HLog, 防止宕機丟失數據; 2)按row有序寫入對應的memstore內存; 3)當memstore寫滿時, 數據被flush到HDFS, 持久化到新的storefile數據文件. 基于HBase的存儲機制, 應結合實際生產情況來設置memstore被flush時的閾值, 同時采集引擎模塊建立多級緩存.
DBAS部署在X86結構的單服務器上, 操作系統為centos, 采用RAID1鏡像結構, 整體資源優先滿足網卡采集的IP包持續性寫入, 再而盡快響應大數據量讀取的檢索. 實驗以某三甲醫院DBAS為案例, 存儲記錄月表8000萬條左右、存儲空間50G左右.
在軟硬環境一致、讀寫數據量和頻度一致的情況下, 部署兩套獨立的DBAS及其存儲檢索數據庫, A方案采用Mysql, B方案基于Hadoop平臺的HBase. 實驗中, 在正常生產情況下和資源優先保障磁盤寫入下,分別對兩套獨立的DBAS執行三類常見的檢索場景,觀察磁盤IO和CPU/內存利用率, 比較兩個方案三類場景的執行響應時間.
場景一: 統計delete操作的次數, delete的數據庫操作記錄比較少, 是審計中的敏感點, 經常被檢索;場景二: 統計select操作的次數, select記錄最多, 經常用于統計各類審計事件; 場景三: 查詢兩類處方藥聯合出現的記錄, 是醫院防統方的主要審計點. 三類場景執行的響應速度如圖3執行時間, 并觀察執行區間的資源利用率.

圖3 執行時間
首先, A方案中, 磁盤IO保持在較高水平, 接近30M/S的滿負荷狀態, 而B方案基本在10M/S左右,在同樣數據量寫入情況下, A方案Mysql在讀取IO請求上占用過高資源; 其次, A方案的CPU和內存占用80%以上, 而B方案基本維持在50%左右. A方案的資源利用率達到臨界, 一旦出現突發數據請求, 則會出現系統各類響應延遲, 寫入溢出; 而B方案還有很多資源空間來滿足生產.
最后, 分析兩個方案三個場景的執行時間: 1)場景一上A方案響應快, 主要在于delete記錄少且Mysql針對操作類型建立索引; 2)場景二隨著查詢數據量的體積倍增, B方案優勢明顯, 且實驗中A方案僅做單表統計, 如果涉及跨月聯表查詢, A方案性能更低; 3)場景三兩個方案的執行速度和場景二一樣, 對A方案來說, 處方藥聯合出現的查詢事前無法建立索引和存儲塊, 全表檢索耗時巨大.
在實驗案例中, 更多的同類場景執行, 發現B方案的響應時間基本穩定在20秒上下, 而A方案檢索大數據量的情況就要到60秒以上, 可見HBase列存儲模型、HDFS流式數據讀取模式、MapReduce批處理方式在大數據檢索方面的優勢.
本文基于DBAS存儲檢索的現狀, 應用Hadoop平臺及其生態圈數據庫HBase重構DBAS存儲檢索體系, 從DBAS的檢索需求和數據特點出發, 研究HDFS及MapReduce機制和HBase的集成, 使三者有效發揮以提高DBAS單節點檢索性能.
在實際產品運行中, 重構方案明顯提升了DBAS檢索性能, 但數據體積的不斷膨脹和高可靠性要求,面對審計產品行業應用的個性化要求, 展望未來, 綜合權衡DBAS的生產現狀和成本下, 研究Hadoop和HBase分布式[21,22]來支持DBAS存儲檢索是一個方向.
1 吳溥峰,張玉清.數據庫安全綜述.計算機工程,2006, 32(12):85–88.
2 葉碧野.計算機數據庫入侵檢測技術探析.電腦知識與技術, 2012,8(2X):1012–1014.
3 肖大薇.計算機數據庫入侵檢測技術分析研究.信息系統工程,2012,(4):54–55.
4 晏明春,李酒.一種新型在線數據庫審計系統.計算機工程與設計,2007,28(5):1012–1015.
5 楊磊.數據庫安全審計檢測系統的設計與實現[碩士學位論文].北京:北京交通大學,2014.
6 安鵬.基于云架構的統一審計平臺設計與實現[碩士學位論文].長春:吉林大學,2015.
7 聶元銘,吳曉明.基于數據庫安全審計的研究.信息網絡安全, 2009,(6):4–6.
8 Cerrato I, Annarumma M, Risso F. Supporting fine-grained network functions through intel DPDK. 2014 Third European Workshop on Software Defined Networks (EWSDN). IEEE Computer Society. 2014. 1–6.
9 Pongracz G, Molnar L, Kis ZL. Removing roadblocks from SDN: OpenFlow software switch performance on intel DPDK. 2013 Second European Workshop on Software Defined Networks. IEEE Computer Society. 2013. 62–67.
10 劉晨瑩.數據庫審計系統中數據快速查詢與智能分析設計與實現[碩士學位論文].保定:華北電力大學,2015.
11 李凱,楊永清,范淵.一種在大數據量存儲中快速檢索的方法:CN, 2012. CN 102184222 B.
12 White T. Hadoop: The definitive guide. O’reilly Media IncGravenstein Highway North, 2010, 215(11): 1–4.
13 Kaushik RT, Bhandarkar M, Nahrstedt K. Evaluation and analysis of GreenHDFS: A self-adaptive, energy-conserving variant of the Hadoop distributed file system. IEEE Second International Conference on Cloud Computing Technology and Science (CloudCom), 2010. IEEE. 2010. 274–287.
14 Wang L, Tao J, Ranjan R, et al. G-Hadoop: MapReduce across distributed data centers for data-intensive computing . Future Generation Computer Systems, 2013, 29(3): 739–750.
15 George L. HBase: The definitive guide. Andre, 2011, 12(1): 1–4.
16 Taylor RC. An overview of the Hadoop/MapReduce/HBase framework and its current applications in bioinformatics. Bmc Bioinformatics, 2010, 11(6): 3395–3407.
17 鄧攀,劉功申.一種高效的倒排索引存儲結構.計算機工程與應用,2008,44(31):149–152.
18 王歡,許暖,沈波.基于大數據的智能審計平臺研究.電信工程技術與標準化,2014,(12):19–22.
19 張萌.基于hadoop的網絡安全日志審計系統關鍵技術研究[碩士學位論文].哈爾濱:哈爾濱工程大學,2013.
20 翟巖龍,羅壯,楊凱,等.基于Hadoop的高性能海量數據處理平臺研究.計算機科學,2013,40(3):100–103.
21 施磊磊,施化吉,束長波,等.基于Hadoop和HBase的分布式索引模型的研究.信息技術,2015,(6):109–111.
22 萬軼,向廣利.基于hadoop和hbase的分布式索引集群研究.信息技術與信息化,2015,(1):102–103.
Study on Applying Hadoop to Enhance the Retrieval Performance of Database Audit Systems
FANG Jian-Sheng1, WANG Fu-Min212
(Operation Center of Big Data, Guangdong Telecom, Guangzhou 510080, China) (Guangzhou Soofound Software Co. Ltd., Guangzhou 510660, China)
Based on the present situation of lower retrieval performance of the single node database audit system, this paper carries out research of application of the Hadoop pseudo distribution model and the HBase column storage model to reconstruct the database audit system of the single node deployment for enhancing the retrieval performance. This paper focuses on the study of integrating HDFS storage mechanism, MapReduce computing framework and HBase data model to improve the performance of real-time retrieval and comprehensive analysis of database audit system. Reconstruction scheme can effectively improve the retrieval performance, but in view of the high reliability and large volume of the data, the application of Hadoop and HBase distributed cluster is proposed in combination with the production status.
DB audit system; Hadoop; HBase; RDMS
2016-03-30;收到修改稿時間:2016-06-06
10.15888/j.cnki.csa.005562