孟凱 雷平 禹熹



關(guān)鍵詞:數(shù)據(jù)庫(kù)變更;健康檢查;變更評(píng)審;指標(biāo)驅(qū)動(dòng)
1技術(shù)背景
目前,研發(fā)部門(mén)對(duì)于數(shù)據(jù)庫(kù)設(shè)計(jì)的重視程度比較高,特別是在金融行業(yè),研發(fā)部門(mén)配備集中的數(shù)據(jù)庫(kù)變更評(píng)審小組進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)把關(guān)[1]。通過(guò)對(duì)相關(guān)技術(shù)方案以及配套流程進(jìn)行調(diào)研,本文梳理出目前數(shù)據(jù)庫(kù)變更設(shè)計(jì)評(píng)審過(guò)程中主要遇到如下挑戰(zhàn)。
(1)缺乏高效協(xié)作。數(shù)據(jù)庫(kù)建模過(guò)程、變更評(píng)審流程、研發(fā)管理流程關(guān)聯(lián)不足,參與各方的信息共享成本較高,導(dǎo)致數(shù)據(jù)庫(kù)變更效率不高。
(2)數(shù)據(jù)庫(kù)設(shè)計(jì)門(mén)檻高。目前,組織采用專門(mén)的數(shù)據(jù)庫(kù)建模軟件進(jìn)行數(shù)據(jù)庫(kù)建模及管理,由于軟件的專業(yè)性特點(diǎn),對(duì)數(shù)據(jù)庫(kù)管理人員具備的知識(shí)和技能要求較高。
(3)評(píng)估標(biāo)準(zhǔn)不統(tǒng)一。根據(jù)業(yè)務(wù)場(chǎng)景不同,通常組織內(nèi)系統(tǒng)會(huì)采用多種數(shù)據(jù)庫(kù)產(chǎn)品,且隨著產(chǎn)品版本迭代,各產(chǎn)品的設(shè)計(jì)規(guī)范、最佳實(shí)踐有所區(qū)別,對(duì)評(píng)審人員的技術(shù)、經(jīng)驗(yàn)有較高要求。另外,數(shù)據(jù)庫(kù)變更類(lèi)型較多,評(píng)審規(guī)則、風(fēng)險(xiǎn)識(shí)別標(biāo)準(zhǔn)不一,導(dǎo)致評(píng)審的成本較高,質(zhì)量也不高。
(4)缺乏全局影響性評(píng)估。在較短的時(shí)間內(nèi)進(jìn)行數(shù)據(jù)庫(kù)變更設(shè)計(jì),對(duì)整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)影響性未知,對(duì)有血緣關(guān)系的系統(tǒng)的影響性缺少分析手段。而且,由于應(yīng)用系統(tǒng)調(diào)整導(dǎo)致的數(shù)據(jù)庫(kù)問(wèn)題捕獲成本較高,往往在上線后才被發(fā)現(xiàn),可能帶來(lái)較嚴(yán)重的生產(chǎn)問(wèn)題。
為了解決這些問(wèn)題,本文提出了一種高度靈活配置、自動(dòng)化評(píng)審、整體健康評(píng)估的數(shù)據(jù)庫(kù)設(shè)計(jì)評(píng)審方案,通過(guò)嵌入現(xiàn)有研發(fā)流程,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)變更的規(guī)范檢查、風(fēng)險(xiǎn)評(píng)估、影響性分析,并對(duì)整體數(shù)據(jù)庫(kù)的健康情況進(jìn)行實(shí)時(shí)分析。
2設(shè)計(jì)思路
本文通過(guò)與建模元數(shù)據(jù)信息對(duì)接,實(shí)現(xiàn)可兼容主流關(guān)系型數(shù)據(jù)庫(kù)變更評(píng)審的統(tǒng)一平臺(tái)。本方案從數(shù)據(jù)庫(kù)變更角度和全庫(kù)整體角度出發(fā),通過(guò)分類(lèi)可配置的變更評(píng)審規(guī)則,實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)類(lèi)型的規(guī)范設(shè)計(jì)檢查、變更風(fēng)險(xiǎn)提示、影響性分析功能;建立數(shù)據(jù)庫(kù)監(jiān)控組件,對(duì)數(shù)據(jù)庫(kù)對(duì)象設(shè)計(jì)、熱點(diǎn)SQL語(yǔ)句、配置參數(shù)層面進(jìn)行全面、實(shí)日寸監(jiān)控。另外,基于元數(shù)據(jù)信息,通過(guò)大數(shù)據(jù)庫(kù)配置信息及數(shù)據(jù)轉(zhuǎn)移配置工具,建立跨系統(tǒng)間元數(shù)據(jù)表級(jí)血緣關(guān)系,擴(kuò)大變更影響評(píng)估范圍。
2.1建立數(shù)據(jù)庫(kù)變更評(píng)審門(mén)戶,打通流程斷點(diǎn)
為保證數(shù)據(jù)庫(kù)變更設(shè)計(jì)、評(píng)審、版本發(fā)布等流程的暢通,在原數(shù)據(jù)庫(kù)設(shè)計(jì)評(píng)審流程的基礎(chǔ)上,建立了數(shù)據(jù)庫(kù)變更評(píng)審平臺(tái),對(duì)接建模平臺(tái)、組織研發(fā)流程平臺(tái),同步系統(tǒng)信息、建模數(shù)據(jù)、數(shù)據(jù)字典、驗(yàn)證環(huán)境信息,實(shí)現(xiàn)數(shù)據(jù)庫(kù)變更流程的一站式服務(wù)平臺(tái)[2]。通過(guò)各個(gè)平臺(tái)的數(shù)據(jù)同步及接口開(kāi)發(fā),進(jìn)一步實(shí)現(xiàn)數(shù)據(jù)庫(kù)變更申請(qǐng)、數(shù)據(jù)庫(kù)變更評(píng)審及版本提測(cè)流程平臺(tái)化,幫助數(shù)據(jù)庫(kù)設(shè)計(jì)人員及評(píng)審人員有效地處理數(shù)據(jù)庫(kù)變更任務(wù)、跟蹤任務(wù)狀態(tài)、統(tǒng)計(jì)變更信息。圖1為變更評(píng)審平臺(tái)示意圖。
2.2規(guī)范數(shù)據(jù)庫(kù)設(shè)計(jì)建模,提高建模效率
在實(shí)際使用的過(guò)程中,設(shè)計(jì)人員普遍反饋數(shù)據(jù)庫(kù)建模的時(shí)間成本較高.對(duì)建模軟件的熟悉程度和對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范的理解程度影響建模的效率。因此,本文對(duì)此做了兩處優(yōu)化。
(1)通過(guò)導(dǎo)人梳理詞根、業(yè)務(wù)術(shù)語(yǔ)等數(shù)據(jù)字典,引用智能匹配識(shí)別組件,實(shí)現(xiàn)建模輸入信息檢查,為數(shù)據(jù)庫(kù)設(shè)計(jì)人員提供元數(shù)據(jù)定義輔助功能,對(duì)建模數(shù)據(jù)根據(jù)規(guī)范與錄入要求做提前檢查,減少建模溝通成本。
(2)梳理ER建模相關(guān)屬性,通過(guò)ER建模標(biāo)準(zhǔn)模型定制開(kāi)發(fā)建模批量工具,通過(guò)建模接口實(shí)現(xiàn)建模元數(shù)據(jù)批量錄入模塊。此場(chǎng)景適用于系統(tǒng)集或新建大型系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì),可通過(guò)數(shù)據(jù)庫(kù)設(shè)計(jì)文檔、元數(shù)據(jù)清單的輸入自動(dòng)轉(zhuǎn)換為ER模型,對(duì)接元數(shù)據(jù)規(guī)范輸入預(yù)檢工具,實(shí)現(xiàn)批量建模檢查、批量建模導(dǎo)入,滿足大規(guī)模建模需求,提高建模效率。
2.3實(shí)現(xiàn)自動(dòng)化變更評(píng)審,提升評(píng)審質(zhì)量
為保證數(shù)據(jù)庫(kù)建模的統(tǒng)一標(biāo)準(zhǔn)和質(zhì)量,須針對(duì)不同的變更類(lèi)型(圖2),從不同的影響性角度進(jìn)行評(píng)審[3-4]。為了更有針對(duì)性地對(duì)DDL變更進(jìn)行評(píng)審,本文對(duì)變更類(lèi)型進(jìn)行分類(lèi),并將評(píng)審規(guī)范和影響性評(píng)估抽象成指標(biāo),針對(duì)每一類(lèi)語(yǔ)句,制定評(píng)審指標(biāo)集合,逐項(xiàng)進(jìn)行過(guò)濾檢查,既提高了檢查效率,也確保評(píng)審的標(biāo)準(zhǔn)和質(zhì)量一致。對(duì)于不同的數(shù)據(jù)庫(kù)產(chǎn)品,參考各產(chǎn)品的限制及最佳實(shí)踐,形成按產(chǎn)品版本、變更類(lèi)型等維度分類(lèi)的評(píng)審規(guī)則庫(kù),支持各變更評(píng)審流程中動(dòng)態(tài)選擇評(píng)審套餐,實(shí)現(xiàn)標(biāo)準(zhǔn)化、可配置的評(píng)審功能。
2.4數(shù)據(jù)庫(kù)健康分析監(jiān)控組件
通過(guò)數(shù)據(jù)庫(kù)變更評(píng)審平臺(tái),實(shí)現(xiàn)以數(shù)據(jù)庫(kù)變更為任務(wù)單元的評(píng)審工作(圖3),圍繞變更內(nèi)容進(jìn)行審核和風(fēng)險(xiǎn)評(píng)估[5-8]。然而,數(shù)據(jù)庫(kù)系統(tǒng)提供服務(wù),是由DML語(yǔ)句進(jìn)行驅(qū)動(dòng)的,數(shù)據(jù)庫(kù)的表現(xiàn)如何,是否有性能上的或者故障隱患,離不開(kāi)整體的運(yùn)行環(huán)境——硬件、參數(shù)、事務(wù)、語(yǔ)句、索引、表數(shù)據(jù)量、場(chǎng)景、流量壓力、數(shù)據(jù)庫(kù)產(chǎn)品特性等。為滿足此類(lèi)需求,需要實(shí)現(xiàn)數(shù)據(jù)庫(kù)綜合健康分析的能力。結(jié)合組織設(shè)計(jì)規(guī)范、業(yè)務(wù)場(chǎng)景及最佳實(shí)踐,通過(guò)“Prometheus+Grafana”方案,配置數(shù)據(jù)庫(kù)健康分析監(jiān)控組件。該組件除了實(shí)現(xiàn)SQL審核、靜態(tài)對(duì)象分析、設(shè)計(jì)規(guī)范檢查、配置參數(shù)檢查外,最大的特點(diǎn)是通過(guò)收集數(shù)據(jù)庫(kù)運(yùn)行信息,對(duì)數(shù)據(jù)庫(kù)運(yùn)行情況進(jìn)行分析,其中包括熱點(diǎn)SQL分析、全表掃描語(yǔ)句分析、未使用索引分析、長(zhǎng)事務(wù)分析等,并可根據(jù)數(shù)據(jù)庫(kù)的不同使用場(chǎng)景,定制不同閾值的檢查模板,實(shí)現(xiàn)個(gè)性化檢查任務(wù)。
2.5外圍服務(wù)組件
通過(guò)分析、加工來(lái)自各平臺(tái)的信息,實(shí)現(xiàn)開(kāi)發(fā)、設(shè)計(jì)人員關(guān)心的數(shù)據(jù)庫(kù)服務(wù)。
(1)通過(guò)圖數(shù)據(jù)庫(kù),建立表級(jí)數(shù)據(jù)庫(kù)系統(tǒng)血緣關(guān)系,幫助設(shè)計(jì)人員及評(píng)審人員快速分析變更的影響性。
(2)實(shí)現(xiàn)生產(chǎn)、研發(fā)環(huán)境數(shù)據(jù)庫(kù)DDL代碼基線快速比對(duì)功能,保證生產(chǎn)環(huán)境、研發(fā)代碼庫(kù)代碼的一致性。
(3)實(shí)現(xiàn)數(shù)據(jù)字典快速搜索功能。
(4)實(shí)現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)文檔生成及下載。
(5)通過(guò)語(yǔ)義分析,實(shí)現(xiàn)增量數(shù)據(jù)庫(kù)變更SQL生成功能,集成測(cè)試環(huán)境進(jìn)行一鍵測(cè)試。
3結(jié)束語(yǔ)
本文首先介紹研發(fā)過(guò)程數(shù)據(jù)庫(kù)變更評(píng)審現(xiàn)狀以及面臨的問(wèn)題:其次分析現(xiàn)有技術(shù)背景和業(yè)界技術(shù)方案,并結(jié)合自身實(shí)際引導(dǎo)出本文設(shè)計(jì)思路;最后推導(dǎo)出本文提供的解決方案。
本文通過(guò)優(yōu)化流程,建立了基于規(guī)則指標(biāo)的數(shù)據(jù)庫(kù)變更評(píng)審工具以及健康分析組件,大大提高了研發(fā)過(guò)程中變更評(píng)審質(zhì)量和效率,并協(xié)助各業(yè)務(wù)系統(tǒng)檢查設(shè)計(jì)中存在的問(wèn)題及隱患,使設(shè)計(jì)缺陷率大為降低及生產(chǎn)事件大大減少。
未來(lái),計(jì)劃在現(xiàn)有技術(shù)的基礎(chǔ)上,精煉優(yōu)化評(píng)審規(guī)則,根據(jù)歷史評(píng)審數(shù)據(jù)及生產(chǎn)事件,提取評(píng)審要素,實(shí)現(xiàn)數(shù)據(jù)庫(kù)健康準(zhǔn)確把脈。另外,為了與多平臺(tái)適配推廣,計(jì)劃將進(jìn)一步實(shí)現(xiàn)服務(wù)模塊化,為數(shù)據(jù)庫(kù)設(shè)計(jì)人員提供更方便、高效的服務(wù)。