CreditEaseDBA-Themis數(shù)據(jù)庫質(zhì)量審核平臺(tái)
Themis是宜信公司DBA團(tuán)隊(duì)開發(fā)的一款數(shù)據(jù)庫審核產(chǎn)品,可幫助DBA、開發(fā)人員快速發(fā)現(xiàn)數(shù)據(jù)庫質(zhì)量問題,提升工作效率。其名稱源自希臘神話中的正義與法律女神。項(xiàng)目取此名稱,寓意此平臺(tái)對數(shù)據(jù)庫質(zhì)量公平判斷,明察秋毫。
此平臺(tái)可實(shí)現(xiàn)對Oracle、MySQL數(shù)據(jù)庫進(jìn)行多維度(對象結(jié)構(gòu)、SQL文本、執(zhí)行計(jì)劃及執(zhí)行特征)的審核,用以評估對象結(jié)構(gòu)設(shè)計(jì)質(zhì)量及SQL運(yùn)行效率。可幫助DBA及開發(fā)人員,快速發(fā)現(xiàn)定位問題;并提供部分輔助診斷能力,提升優(yōu)化工作效率。全部操作均可通過WEB界面進(jìn)行,簡單便捷。此外,為了更好滿足個(gè)性化需求,平臺(tái)還提供了擴(kuò)展能力,用戶可根據(jù)需要自行擴(kuò)展。
Themis(泰美斯),是希臘正義與法律女神,以頭腦清晰見稱。項(xiàng)目采用此名稱,寓意著平臺(tái)可對數(shù)據(jù)庫質(zhì)量公平判斷,明察秋毫之意。
功能概述
- 事后審核,自主優(yōu)化部分放在二期實(shí)現(xiàn)。亦可在項(xiàng)目設(shè)計(jì)階段引入,起到一部分事前審核的作用。
- 通過WEB界面完成全部工作,主要使用者是DBA和有一定數(shù)據(jù)庫基礎(chǔ)的研發(fā)人員。
- 可針對某個(gè)用戶審核,可審核包括數(shù)據(jù)結(jié)構(gòu)、SQL文本、SQL執(zhí)行特征、SQL執(zhí)行計(jì)劃等多個(gè)維度。
- 審核結(jié)果通過WEB頁面或?qū)С鑫募男问教峁?/li>
- 平臺(tái)支持主流的Oracle、MySQL數(shù)據(jù)庫,其他數(shù)據(jù)庫放在二期實(shí)現(xiàn)。
- 盡量提供靈活定制的能力,便于日后擴(kuò)展功能。
支持的數(shù)據(jù)庫
-
MySQL(5.6及以上)
-
Oracle(10g及以上)
審核維度
-
數(shù)據(jù)庫結(jié)果(對象)=》指數(shù)據(jù)庫對象,常見的表、分區(qū)、索引、視圖、觸發(fā)器等。
-
SQL文本(語句)=》指SQL語句文本本身。
-
SQL執(zhí)行計(jì)劃=》指數(shù)據(jù)庫中SQL的執(zhí)行計(jì)劃。
-
SQL執(zhí)行特征=》指語句在數(shù)據(jù)庫上的真實(shí)執(zhí)行情況。
實(shí)現(xiàn)原理
整個(gè)平臺(tái)的基本實(shí)現(xiàn)原理很簡單,就是將我們的審核對象(目前支持四種),通過規(guī)則集進(jìn)行篩選。符合規(guī)則的審核對象,都是疑似有問題的。平臺(tái)會(huì)將這些問題及關(guān)聯(lián)信息提供出來,供人工甄別使用。由此可見,平臺(tái)的功能強(qiáng)大與否,主要取決于規(guī)則集的豐富程度。平臺(tái)也提供了部分?jǐn)U展能力,方便擴(kuò)展規(guī)則集。
平臺(tái)架構(gòu)
圖中的方框部分,為平臺(tái)的主要模塊。底色不同的模塊,表示當(dāng)前的進(jìn)度狀態(tài)不同。虛線代表數(shù)據(jù)流,實(shí)線代表控制流。其核心為這幾個(gè)模塊:
- 數(shù)據(jù)采集模塊。它是負(fù)責(zé)從數(shù)據(jù)源抓取審核需要的基礎(chǔ)數(shù)據(jù)。目前支持從Oracle、MySQL抓取。
- OBJ/SQL存儲(chǔ)庫。這是系統(tǒng)的共同存儲(chǔ)部分,采集的數(shù)據(jù)和處理過程中的中間數(shù)據(jù)、結(jié)果數(shù)據(jù)都保存在這里。其核心數(shù)據(jù)分為對象類和SQL類。物理是采用的MongoDB。
- 核心管理模塊。圖中右側(cè)虛線部分包含的兩個(gè)模塊:SQL管理和OBJ管理就是這部分。它主要是完成對象的全生命周期管理。目前只做了簡單的對象過濾功能,因此還是白色底色,核心的功能尚未完成。
- 審核規(guī)則和審核引擎模塊。這部分是平臺(tái)一期的核心組件。審核規(guī)則模塊是完成規(guī)則的定義、配置工作。審核引擎模塊是完成具體規(guī)則的審核執(zhí)行部分。
- 優(yōu)化規(guī)則和優(yōu)化引擎模塊。這部分是平臺(tái)二期的核心組件。目前尚未開發(fā),因此為白色底色。
- 系統(tǒng)管理模塊。這部分是完成平臺(tái)基礎(chǔ)功能,例如任務(wù)調(diào)度、空間管理、審核報(bào)告生成、導(dǎo)出等功能。
