原來雲數據庫也是有思想的...

本文由一刻talks發表

邵宗文,騰訊雲數據庫專家副總監。十餘年數據庫從業經驗,2009年加入騰訊,曾負責騰訊網,新聞客戶端,快報,視頻,財經,體育等數據庫平臺部署、規劃及運維支持工作。本文是邵宗文在一刻talks第100場演講局「先見·未來大會」上的演講實錄。每個行業對數據庫有不一樣的要求,雲上數據庫通過智能化運維,數據會越來越多,準確度也越來越高,模型也會越來越精準。騰訊雲上數據庫如何滿足用戶多樣化的訴求?一起來聽聽聽吧。

1

爲用戶提供數據庫服務

大家下午好,我是一刻talks講者邵宗文。我今天給大家帶來的是關於雲上數據庫及智能DBA的分享。

我們是怎麼給用戶很好的數據庫服務的?

首先我們會給客戶按模塊劃分,比如它是電商的或者是金融的客戶,因爲每個行業它對數據庫的要求是不一樣的。金融的客戶,他會要求數據庫的強一致性,對吧?數據是不能丟失的。如果說是一些電商,它有一些雙11的活動,它可能會要求數據庫有瞬間的這種支撐高併發的能力。

然後首先通過第一步,先讓用戶能夠遷移上雲,並且能夠在我們的雲上直接進行數據的快速傳遞和搬遷。第二,通過智能化的一些運維,現在還在持續不斷做,因爲智能不斷進化,隨着你數據越來越多,你的準確度會越來越高,你的模型會越來越精準。

我們幫助客戶支撐這麼大的數據量之後,用戶可能會有更多的想法。

比如說這些數據能不能進行商業的分析,對吧?能不能訂閱到他自己的一些商業專用的數據庫裏面去,挖掘出這些數據的價值。有時候爲了時效,他想能不能延遲比較低一點,可能幾秒,幾十秒就能把我的這些數據傳到我的商業數據分析裏面去,可能能做到實時的一些推薦,幫助客戶能夠在這種競爭激烈的這種行業中能脫穎而出。

另外我們也能看到雲也是一個生態,它不光是說我把數據庫做好就OK了,很多用戶可能是需要這種生態來幫他解決問題。比如說有些金融客戶還有審計的需求;有些遊戲客戶也需要通過審計來查找,有沒有人在盜用、盜取他們的數據;有一些客戶可能需要這種相關的快速備份和恢復,比如一些遊戲要不斷地升級它的版本的時候,需要快速的備份。

另外我們也需要支持豐富的多類型數據庫。像我們用到一些遷移的亮點,就是能支持數據庫的多種類型。因爲數據庫也是不斷在升級迭代版本,所以說雲的話纔有這樣的人力去做這樣的事情。否則像一家小公司它可能開發人員也非常少,如果還去投入去做這種維護各種版本升級的工作,其實是得不償失的。

2

數據遷移到騰訊雲

我們能支持有用戶自己在本地機房遷移過來,也可以通過用戶說我從其他雲上遷移過來。因爲大家可能擔心在一個雲上,可能萬一出問題,我的數據什麼都沒有了。

另外我們有自建的,因爲剛開始可能用戶說我可能對你的雲數據庫不太瞭解,對吧?我原來是什麼樣的,我現在放下來我還是什麼樣,我用CDM自建,但是自建的過程中可能他感覺到,就像我拜訪一個客戶的時候,他感覺到你的訂閱功能非常好用,如果我自己去搭,或者我自己去維護的話,我的成本是非常高的,可能需要投入兩個研發同學去做這樣的一些組件。

然後還有跨區。大家也知道我們騰訊是有非常多的海外機房,或還有很多像東京,像其他國家這種資源,很多的公司要出海,他如果是自己去建,成本也是非常高。所以說通過我們遷移可以實現整個世界的打通。

3

數據庫審計

用戶遇到審計的問題,首先你要審計記下來,存儲量也是非常驚人的,就是大家知道每個請求的操作,正常情況下是記不住的。它可能只記一些慢日誌,或者只直接寫操作,我們要把這讀寫全部記下來。這個存儲成本是要求非常高,需要一個分佈式的存儲來支撐這個量。

我們也是有這樣的,騰訊基於這樣的一個技術背景,其實完全能夠幫助到用戶去解決這樣的存儲問題。幾十億條、幾百億條數據,我要查一個什麼狀態的數據,我能不能快速地去查到,這個也是需要我們這個系統,能夠強勁地支持。通過我們研發同學的不斷努力,也是實現了這樣的一個快速的響應,在30億級的數據量情況下,差不多6到8秒的響應。

審計應用場景,就是國家三級甲等的一些要求,還有一些是技術人員的風險,另外還有一些技術的這種SQL注入的問題。

這是一個大概的簡單的一個界面,就是可以看到我們對誰做了哪些SQL命令,可以進行一個查找,並且可以快速地知道都有哪個時間點,哪個用戶做的這樣操作,避免了以前出現沒有這種審計情況下,我們需要大海撈針一樣去找。

然後可能是某個同學誤操作了,他可能不承認,現在的話有這樣的一套系統能幫助你快速的去尋找這些痛點。

然後還有支持很多命令,比如說某個ID的話,我還要知道超過多少毫秒的到底有多少,這樣可以幫助它可以解決一些慢日誌的問題。

4

數據訂閱

現在很多公司對數據重視起來。我們的數據訂閱,針對用戶可以做可配置化,他說我可以需要訂閱哪些庫,哪些表,因爲有些全訂閱也沒有必要。基於我們通用的一些像,可以把我們的數據訂閱到Kafka,Kafka是一個非常通用的數據的中間存儲,你可以通過Kafka去消費到你的各種相關的一些商業的數據庫裏面去。

我可以在數據庫做一個操作,然後通過我的數據定義功能,馬上Kafka的主題就收到了我這個數據庫的Insert操作。這樣的話可以根據這種固定的格式,我可以把這個數據轉到比如說像Redis,對吧?我可以只寫一個數據庫,我就可以操縱我的中間緩存,或者我通過我的數據庫直接可以到我的數據的倉庫,而不需要說我還要再額外的去做很多額外的成本,這是我剛纔說的,就是基於通過我的對數據庫的增刪改查,去影響到我的緩存,降低開發者的這種縮短開發的一些工作內容。

另外還有數據訂閱的別的場景,就是用戶可以通過,比如說我沒有在你的雲上數據庫,但我可以通過自建遷移,然後遷移到你這個數據庫,然後在這個數據上去開啓我們的這樣的一個訂閱。對已有的數據庫,我又不想在我主庫上影響性能的話,你可以再從庫上,我們也可以進行這樣數據訂閱。外部的,這種通過我們的遷移工具,然後可以通過外部雲上遷到我們這,然後我們也可以幫他實現這樣一個數據的功能。

5

智能DBA

最後我們現在結合本次主題的亮點就是智能DBA,因爲我剛纔說到了,我們現在雲上有大量的這種用戶業務,就是說有非常多的用戶業務,然後可能有近百萬家的企業在雲上。

如果說讓用戶進來給他的很多的數據是比較抽象的,比如說多少毫秒的延遲,多少的慢日誌數,其實用戶是無感知的,因爲很多用戶是小白用戶,他可能會想到能不能告訴我,我整體這個業務現在質量得分是多少,對吧?0到100是滿分,我現在是90分,我可能很開心,我的業務是穩定的,如果說50分是不是我的業務就有問題了,我得查一查是什麼原因。

所以說我們去做這樣的一些智能方向,就是把所有的大量的數據,可能很多維度數據去做這樣的質量得分。然後另外我們會把這些庫表,就是用戶經常會遇到這些問題,我們會提前去分析。

可能有些用戶說我之前SQL語句什麼都沒改過,爲什麼我現在變得非常慢,那我可能會說有一個很好的比喻告訴他,就是你剛開始是個小孩的時候,你這件衣服是夠穿的,對吧?但你這個孩子是在不斷成長,你的業務也在不斷成長,可能原來一張表只有不到100萬的數據,現在一張表已經有1000萬的數據,這個衣服已經無法承載你這個發展,所以說你的SQL語句雖然沒變,但是你的業務數據量發生了變化,所以你就成爲慢日誌了。所以你要去進行優化。

另外還有一個問題就是用戶說,我想知道比如說一些企業會做一些預算,我到底明年會用多少你的數據量,或者你的訪問量會有多少?我們通過AI,我們可以跟進用戶,比如說半年內的數據,我可以預測出來它未來半年或者未來幾個月,它的數據量可能會達到多少,或者它的訪問量比如說會比現在翻多少倍,這樣用戶大概對未來的訪問量有預知的話,他可以提前做好一個規模的預算。

這個其實可以看到,通過用質量得分的形式,就讓用戶知道我的訂單模塊,購物模塊目前是一個什麼樣的情況,如果是90分,看看還有哪幾個是影響他的,大概他是什麼原因。

然後另外就是我們自己在不斷的嘗試一些demo,我們會做一些模型出來,質量得分,然後告訴這可能是什麼原因,是cpu過度,可能是一些複雜SQL,還有一些其他的維度、碎片、索引是否合理。

然後另外我會對這種死索,就是數據庫經常會遇到問題,也會進行智能的分析。相當於用戶只要知道我的得分,然後順藤摸瓜,大概就能知道自己的問題,然後還能知道自己對應的請求SQL語句的問題。

今天我的分享就到這,然後之前我說的很多像智能化的這種數據,其實在騰訊已經非常多的在去推廣起來,如果大家能夠儘快的去應用我們雲的話,可以節約很多的時間,像我們的一個大客戶,就三年上市的某團,大家也看到了,他就是在我們雲上,基於我們的雲上的這種基礎服務,得到了一個快速的發展。今天的分享就到此結束,謝謝大家。

此文已由作者授權騰訊雲+社區發佈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章