GBase新聞
用戶之聲:基于GBase 8a數據庫審計日志的數據存儲管理應用分享
GBase 8a數據庫是面向大數據分析應用的一款高性能國產數據庫產品,在數據倉庫等領域有著廣泛的應用。對于此類GBase 8a集群,通常會面臨因數據庫存儲使用量快速增長而引發的數據遷移和集群擴容等運維問題。為了提高GBase 8a數據庫存儲資源利用率,節省服務器資源,本文結合實踐經驗提出了基于GBase 8a審計日志的數據存儲管理方案。
GBase 8a數據庫審計日志記錄了數據庫執行的SQL語句,包括提交任務用戶、任務所屬數據庫名、開始時間、SQL語句、執行狀態等信息。利用審計日志可以獲取集群各邏輯庫中SQL的執行情況,方便進行分析和管理。
方案
本方案主要是通過解析審計日志中SQL語句涉及的表以及Where條件中日期字段的時點值來構建各表中各時點數據的訪問情況,然后根據系統業務特點動態進行數據遷移,實現數據庫中各表進行時點級的精細化管理。具體方法如下:
1、開啟GBase 8a的審計日志和轉儲功能,定時訪問audit_log_express表,獲取SQL執行記錄。
(1)從audit_log_express表獲取滿足以下條件的記錄:sql命令類型為insert、update、delete、create table,執行狀態為success;
(2)獲取每條記錄中的開始時間、SQL語句等內容。
2、根據上一步獲取的SQL語句,對其進行語法分析,獲取涉及的表和篩選條件。
(1)對SQL語句進行語法分析;
(2)提取SQL語句中From和Join涉及的表名,以及Where條件涉及的日期字段、日期操作符(如:=、in、between and等)、取值。
3、將上兩步獲取的結果存儲到訪問歷史表中。
(1)預先創建訪問歷史表,包括以下字段:表名、日期字段名、日期操作符、日期時點值、上次訪問日期;
(2)如果步驟2中獲取的記錄不存訪問歷史表中,則存儲到訪問歷史表;如果存在則更新對應記錄的上次訪問日期。
4、根據應用業務特點制定相應的存儲策略,基于訪問歷史表識別冷熱數據,進行時點級的數據管理。根據具體冷熱分層方案,將長期無使用記錄的時點數據遷移到歸檔存儲,例如對象存儲中。
效果
采用本方案可以識別表中時點數據的冷熱情況,對各表的時點數據進行動態遷移流轉,可以實現對數據進行時點級的精細管理。不但可以提高數據庫存儲利用率,節省高配物理機資源;而且進行數據遷移后還以有效提高庫內SQL的執行效率,減輕運維工作壓力。
建議
據悉GBase做了血緣分析、表訪問頻次等特性;后續可以做更多更精細化的數據管理;建議GBase增加對數據遷移到對象存儲的支持,通過配置化實現自動將數據歸檔到對象存儲以及從對象存儲恢復數據,更進一步方便用戶的使用與操作。