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