智能化正在不斷顛覆傳統生產力。隨著數智時代的到來,AI技術在提升管理效率、降低運維成本等方面發揮著越來越重要的作用。當DB與AI相結合,數據庫產品也變得更加智能化。目前智能數據庫技術是業內的研究熱點,openGauss 作為國內數據庫根技術的重要一支,在這一領域取得了哪些成就?未來有哪些發展規劃?
2023年4月7-8日,由中國DBA聯盟(ACDU)和墨天輪社區聯合主辦的第十二屆“數據技術嘉年華”(DTC 2023)在北京新云南皇冠假日酒店成功召開。華為openGauss數據庫AI領域負責人李士福在【數智趨勢:智能運維與自治】專題論壇發表了題為 《openGauss:自駕駛數據庫內核》 的演講。本文根據演講實錄整理而成。
(嘉賓簡介:李士福,15年數據庫內核開發經驗,2014年加入華為高斯部,曾在Teradata研發中心從事分布式MPPDB數據庫研發。目前其主要負責GaussDB(含openGauss)自治數據庫內核的研發工作,包括DBMind自治運維系統、DB4AI庫內AI引擎和自學型內核;同時作為openGauss社區TC成員支撐openGauss社區拓展。)
一、openGauss自駕駛內核整體介紹
李士福表示,openGauss自駕駛內核整體上主要包含兩個子系統:AI4DB自治系統和DB4AI庫內AI引擎。
AI4DB自治系統主要又包含兩大部分:一個是DBMind自治運維系統,是給用戶、主要是DBA做自監控、自診斷、自由化和自安全,其主要目標是方便用戶做系統的運維診斷,讓系統更高效、可靠運行;另一個是把AI技術嵌到數據庫內核之中,實現智能查詢重寫、代價估計、行數估計、計劃自適應選擇、負載自適應調度、自學習索引、緩存自適應淘汰等。
DB4AI庫內AI引擎則是指在數據庫內置很多AI算法,把AI能力直接內嵌到數據庫中,通過訓練和推理SQL語法、訓練語句執行計劃及代價為數據庫提供AI能力,這樣能方便用戶使用訓練和推理的語句。同時DB4AI還可以提供算法API接口,供學習型內核組件調用,從而為庫內組件加速。
二、DBMind運維管理系統架構和應用
李士福指出,DBMind整體運維架構主要涵蓋四個方面:數據采集層作為底座,主要負責在數據庫運行節點上部署Agent采集節點,從而采集數據庫指標和OS指標,同時還負責執行AI Service下發的運維管理命令。在數據計算層,數據庫外的節點可以在備機部署AI Service服務節點,同時有一些存儲的引擎,來實現數據計算存儲。自治服務層主要提供三大方面的自治服務:其一是SQL診斷調優,包括慢SQL診斷、發現以及索引優化等;其二是安全,提供異常行為檢測、敏感數據發現;其三是運維,即整個系統的運維診斷,包括參數調優、系統分析診斷等。最頂層是監控,通過端到端的監控診斷、運維還有優化,實現了從問題發現、問題診斷到問題優化的全流程管控,對用戶來說是無感知的。
在DBMind自治運維系統層層嚴密的架構下,其有廣泛的應用。李士福透露,DBMind自治運維系統的應用主要聚焦于三個方面:索引推薦能力、慢SQL診斷和建議、多指標關聯分析。
索引推薦能力是指在數據庫內核中內置單條索引的推薦能力,來實現單條索引推薦,從而讓用戶很容易對一條語句實現索引加速。由于單條索引很難對整個系統有效,因此openGauss DBMind額外增加了對整個系統負載的索引推薦,通過對批量workload的采集、處理、壓縮后再進行單條索引推薦,從而降低索引推薦比例、提升整體效率。
慢SQL診斷和建議是在openGauss中集成的能力之一。在數據庫中,openGauss會識別哪些語句是慢SQL,然后采集慢SQL和它的相關指標特征。同時結合當前系統的運行狀況,比如CPU使用率和IO使用率等指標,把這些信息作為統一的集合進行訓練。訓練后形成的特征庫,可用于與之后遇到的慢SQL語句境進行智能匹配,最后把根因結果在界面上展示,同時給出優化建議。
多指標關聯分析可以幫助我們快速發現問題。我們都知道,采集的指標是多種多樣的,一個指標的變動可能聯動其他指標也發生變化。目前openGauss施行了多種異常檢測算法,例如:持續增長、毛刺、周期性等。基于這些檢測算法觀察環境指標,可以發現指標間的關聯關系,從而確定影響關鍵指標的變化因素有哪些。
三、庫內AI引擎架構和應用
對DBMind整體運維架構進行了詳細的介紹后,李士福還分享了庫內AI引擎架構和應用方面的知識點。
DB4AI庫內AI引擎架構中,基于優化路徑,openGauss可以展示當前AI算子的執行路徑,讓用戶可以查看執行計劃。其次是全流程業務管理,除了常見的模型管理,openGauss數據庫還支持通過系統表存儲管理模型。此外,還支持數據集管理,在數據更新變化的情況下,不影響當前訓練的模型。李士福透露,研發團隊還在做模型的漂移,去保證模型的新鮮度;進一步還將結合異構計算能力,將執行算子下推到GPU去做穩定訓練加速,從而構建起完整的DB4AI引擎架構。
DB4AI與不同的應用相結合,能幫助開發者提升工作效率。“在應用上,DB4AI給用戶提供交互式的界面,例如結合Jupyter做交互式的分析。因此,我們提供DB4AI Python庫,結合這個命令可以很容易地在交互界面上給用戶展示相關信息。這種可以使用Python的方式讓用戶很容易上手。”李士福說道。
目前DB4AI也積累了豐富的案例,例如庫內AI高效訓練和推理、模型自適應漂移。通過機器學習算法,完成可解釋模型;每個月采2000個樣板信息完成模型漂移,解決了模型與當前業務不擬合等問題。openGauss 在DB4AI方面的應用能極大地節省人力,降低成本。
此外,李士福還就智能優化器架構做了簡要介紹。openGauss數據庫的智能優化器主要完成四項任務:智能基數估計、自適應計劃選擇、智能代價模型、智能計劃探索。其中,他重點介紹了智能基數估計、自適應計劃選擇這兩項任務。智能基數估計是指結合AI算子對數據做分析和處理,改善了基于神經網絡算法的傳統方法很難落地的情況;自適應計劃選擇主要解決的是緩存計劃的使用問題。
在演講尾聲,李士福總結指出,AI與DB的結合其實是一個新興領域,目前openGauss在這一領域投入很多。AI與DB相結合能解決當前運維場景效率的問題,還可以提升用戶使用價值。后續,華為將持續深耕這一領域,并將研究成果持續應用至社區。