CMU研發資料庫調優AI,水平超DBA老炮
這個週末,最不開心的應該是優秀的資料庫管理員了。
這些優秀的資料庫管理員(以下簡稱資料庫管理員為DBA),原本可以靠自己的本事,享受高薪,可是,好景不長了,因為即便是資質平平的DBA,以後藉助AI的力量,也能瞬間達到優秀DBA的水平。
來看最近來自卡耐基梅隆資料庫小組的最新研究成果,他們正用最新的深度學習技術,完成資料庫的調優工作。
如果這項技術在未來進一步普及,那麼,很無奈,這個行業不得不接受AI對於人員結構的改造。
DBA迎來新的革命
卡內基·梅隆大學資料庫小組採用機器學習實現了資料庫的自動化管理,其線上版的自動化管理服務 OtterTune 稍後即會上線。
OtterTune 所要解決的是資料庫管理中最為繁雜的問題:諸如快取大小分配、寫入頻率管理等因素在內的數百項引數的動態設定。過去,這項工作只能由經驗豐富的資料庫專家手動來完成。
這其中採用了怎樣的原理呢?
OtterTune 到底用了什麼原理?
採用機器學習後,OtterTune 把資料庫管理系統(DBMS)的工作流程變成這樣:
一開始,OtterTune 需要被告知明確的優化目標,如延遲、吞吐量等;其客戶端 Controller 會自動關聯目標 DBMS 及其亞馬遜 EC2 副本的型別與當前設定。
而後,Controller 便開啟第一個觀察週期,觀察 DBMS 並記錄目標項。觀察結束時,Controller 會蒐集好 DBMS 的內部引數,並將它和目標項傳送給 Tuning Manager。
收到引數後,Tuning Manager 便把它們儲存入庫。OtterTune 用這些引數計算出 DBMS 的目標配置,並將其發回至 Controller,Controller 部署並執行新的配置,以提升資料庫效能。
管理人員可隨時啟用或終止 OtterTune 服務。
簡而言之:
首先,需要設定一些優化目標,連線到資料庫系統,使用初始化的設定去執行;
然後控制器開啟第一次觀察週期,記錄下當前設定模式下的所有系統效能度量,並返回這些結果給調優器;
調優器記錄這些結果,並根據這些度量資訊和系統資訊計算出新的資料庫配置;
最後調優器把調優結果配置傳回控制器,同時可以有效評估系統提升的期望值;
使用者根據評估值決定是否使用新的配置。
其中最核心的步驟就是:計算出新的資料庫管理系統DBMS 的目標配置,即這裡面用到的主要是機器學習。
下面詳細解釋一下機器學習在裡面的作用。
機器學習的作用
機器學習模組分為三部分:獲取 Controller 觀察到的工作負載引數(Workload Characterization 元件),識別並學習這些引數(Knob Identification 元件),自動管理資料庫(Automatic Tuner 元件)。
下面一一來說:
Workload Characterization: OtterTune 使用 DBMS 的內部執行引數來提取資料庫的工作負載特徵。機器學習模組使用聚類方法來衡量這些引數的相關性,儘可能地裁剪引數量,以降低計算的複雜程度。
Knob Identification: 識別並學習資料庫引數,OtterTune 所用的特徵選取方法是 Lasso,以找出它們的重要程度。OtterTune 據此來計算 DBMS 的目標配置,它使用一種增量方法來找出資料庫的最佳配置。
Automatic Tuner: 而後的工作則交由 Automatic Tuner 元件。首先,它用 Workload Characterization 元件的效能資料來確定 DBMS 的目標負載;而後,它會選擇一組不同的配置進行測試。
OtterTune 的目標總是優化下一組配置,儘可能地蒐集資料來提升效能,而非緊盯住目標配置不放。
結果對比
OtterTune 在論文中測試了 MySQL 和 Postgres 這兩個資料庫的延遲和吞吐量,結果如下:
從圖中可以看出,相比於 MYSQL 管理指令碼,OtterTune 的延遲要低 60%,吞吐量則能提升 35%。
相比於 Postgres 的預設配置,OtterTune 與其他方法在延遲方面的提升大體相近;但吞吐量方面,OtterTune 比 DBA 的選擇要好 12%。
總體來看,OtterTune可以在延遲和吞吐等效能指標上大幅領先傳統的自動化配置指令碼,並接近專業DBA的水平。
AI如何擊中了這個行業的痛點?
為什麼這個行業需要AI來改造?DBA的日常工作到底有哪些痛點?
讓我們把目光拉近,看看這個行業到底有什麼問題。
目前的資料庫,主要採用專業的資料庫管理員(以下稱DBA)來設計資料系統的架構,調優等。
但是,由於業務系統極其複雜,且隨著業務的快速迭代,需要資料庫系統能跟上業務的節奏,快速響應,快速更新,這就導致調優任務也隨之變得極其複雜。
DBA需要靈活掌握各項影響系統性能的控制因素,也必須對資料底層,甚至體系結構都有深入瞭解,才能很好地完成調優任務。
因此,真正滿足優秀的DBA就非常少了,而且價格昂貴。
隨著大資料行業的井噴式發展,這種人才一直都是嚴重供不應求。
不過,這部分原本可以享受高薪的人群,好日子貌似要走到頭了。
因為,普通DBA也能借助AI搶飯碗了。
卡耐基梅隆的資料庫小組整出來的這個新研究,就是要通過使用AI技術,簡化了DBA對於資料庫系統的調優過程,即便是普通的DBA,也能達到、甚至超過專業DBA調優系統的能力。
所以,一旦AI在此領域真正開始發揮作用,人力成本將大幅降低,工作又能快速響應,公司再也不會因為專業DBA短缺而影響業務發展了,這將是公司老闆拍手稱快的大好事。
原文地址:
https://aws.amazon.com/cn/blogs/ai/tuning-your-dbms-automatically-with-machine-learning/?tag=vglnk-c1507-20文章翻譯來自微信公眾號:AI100