原來雲資料庫也是有思想的

2021-09-02 22:34:02 字數 3303 閱讀 6271

本文由一刻talks發表

為使用者提供資料庫服務

大家下午好,我是一刻talks講者邵宗文。我今天給大家帶來的是關於雲上資料庫及智慧型dba的分享。

我們是怎麼給使用者很好的資料庫服務的?

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

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

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

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

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

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

我們能支援有使用者自己在本地機房遷移過來,也可以通過使用者說我從其他雲上遷移過來。因為大家可能擔心在乙個雲上,可能萬一出問題,我的資料什麼都沒有了。

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

資料庫審計

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

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

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

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

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

資料訂閱

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

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

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

智慧型dba

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

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

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

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

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

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

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

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

原來雲資料庫也是有思想的

本文由一刻talks發表 為使用者提供資料庫服務 大家下午好,我是一刻talks講者邵宗文。我今天給大家帶來的是關於雲上資料庫及智慧型dba的分享。我們是怎麼給使用者很好的資料庫服務的?首先我們會給客戶按模組劃分,比如它是電商的或者是金融的客戶,因為每個行業它對資料庫的要求是不一樣的。金融的客戶,他...

雲資料庫有哪些優點劣勢?

網易雲社群 這個問題可以基於網易雲的rds服務來舉例回答下。rds 依託網易杭研資料庫技術團隊多年 mysql 開發和運維經驗,構建於網易雲計算平台之上。相比自建資料庫,rds 具備如下優勢 雲資料庫的劣勢其它回答中也已經提到過,主要有以下三點 1 隱私安全問題 選擇乙個靠譜的雲服務商,可以有效降低...

雲資料庫有哪些優點劣勢?

這個問題可以基於網易雲的rds服務來舉例回答下。rds 依託網易杭研資料庫技術團隊多年 mysql 開發和運維經驗,構建於網易雲計算平台之上。相比自建資料庫,rds 具備如下優勢 雲資料庫的劣勢其它回答中也已經提到過,主要有以下三點 1 隱私安全問題 選擇乙個靠譜的雲服務商,可以有效降低這個風險!網...