?

騰訊云TBase集群架構(gòu)圖

上圖是TBase的集群架構(gòu)圖:

Coordinator:協(xié)調(diào)節(jié)點(簡稱CN),對外提供接口,負(fù)責(zé)數(shù)據(jù)的分發(fā)和查詢規(guī)劃,多個節(jié)點位置對等,每個節(jié)點都提供相同的數(shù)據(jù)庫視圖;在功能上CN上只存儲系統(tǒng)的全局元數(shù)據(jù),并不存儲實際的業(yè)務(wù)數(shù)據(jù)。

Datanode:處理存儲本節(jié)點相關(guān)的元數(shù)據(jù),每個節(jié)點還存儲業(yè)務(wù)數(shù)據(jù)的分片,簡稱DN。在功能上,DN節(jié)點負(fù)責(zé)完成執(zhí)行協(xié)調(diào)節(jié)點分發(fā)的執(zhí)行請求。

GTM:全局事務(wù)管理器(Global Transaction Manager),負(fù)責(zé)管理集群事務(wù)信息,同時管理集群的全局對象,比如序列等。

在這個架構(gòu)下,TBase集群具有下面幾個能力:

多活/多主:每個coordinator提供相同的集群視圖,可以從任何一個CN進(jìn)行寫入,業(yè)務(wù)無需感知集群拓?fù)?

讀/寫擴(kuò)展:數(shù)據(jù)被分片存儲在了不同的DN,集群的讀/寫能力,隨著集群規(guī)模的擴(kuò)大做而得到提升;

集群寫一致:業(yè)務(wù)在一個CN節(jié)點發(fā)生的寫事務(wù)會一致性的呈現(xiàn)在其他的CN節(jié)點,就像這些事務(wù)是本CN節(jié)點發(fā)生的一樣;

集群結(jié)構(gòu)透明:數(shù)據(jù)位于不同的數(shù)據(jù)庫節(jié)點中,當(dāng)查詢數(shù)據(jù)時,不必關(guān)心數(shù)據(jù)位于具體的節(jié)點。

在云南抗疫小程序中,為滿足業(yè)務(wù)高并發(fā)的入庫和業(yè)務(wù)分析查詢,TBase使用高性能分區(qū)表功能,根據(jù)數(shù)據(jù)量的大小將人群流動數(shù)據(jù)按照天或者間隔幾天進(jìn)行分區(qū)存放,解決了業(yè)務(wù)分庫分表的痛點,并且可以進(jìn)行冷熱數(shù)據(jù)分離,為海量數(shù)據(jù)的處理提供了高效的方案。同時,利用TBase智能掃描快速定位數(shù)據(jù)的位置,減少人群范圍,實現(xiàn)快速定位。另外,TBase采用分布式架構(gòu),可根據(jù)業(yè)務(wù)壓力大小靈活擴(kuò)展計算和存儲資源,在節(jié)省成本的同時幫助業(yè)務(wù)高效穩(wěn)定運行。

在數(shù)據(jù)的讀取上,TBase將查詢下推,并行執(zhí)行用戶SQL,分布式j(luò)oin執(zhí)行示例如下:

image.png

要實現(xiàn)億級數(shù)據(jù)的秒級返回,最重要的是提高數(shù)據(jù)節(jié)點執(zhí)行效率,這里就需要提到數(shù)據(jù)重分布技術(shù)。

大家都知道,在分布式執(zhí)行中通用的技術(shù)是數(shù)據(jù)重分布,數(shù)據(jù)重分布時容易導(dǎo)致數(shù)據(jù)節(jié)點內(nèi)部資源使用不平衡,從而影響效率。TBase的數(shù)據(jù)重分布模型進(jìn)行了業(yè)界獨一無二的優(yōu)化,該優(yōu)化利用了CPU多核并行計算能力,增強了對復(fù)雜SQL的執(zhí)行優(yōu)化,可以減輕生產(chǎn)者負(fù)擔(dān),從而大大提高數(shù)據(jù)重分布時的執(zhí)行效率和分布式系統(tǒng)中關(guān)聯(lián)和聚合的效率,輕松實現(xiàn)小程序查詢業(yè)務(wù)中億級數(shù)據(jù)的秒級返回。

通過TBase的shard算法可以將數(shù)據(jù)快速均勻的分布到各個數(shù)據(jù)節(jié)點中,提升檢索效率的同時也解決了單庫的存儲壓力瓶頸問題。

Part Ⅱ 海量數(shù)據(jù)智能處理分析與建模

通過抗疫小程序,在疫情病患恢復(fù)期間,一旦發(fā)現(xiàn)確診人員就可以快速回溯病患曾經(jīng)出入過的場所,從而快速找出可能和他有過接觸的人員并及時通過短信、電話等方式向可能接觸者發(fā)出提醒,盡最大可能減少交叉?zhèn)鞑サ目赡苄?。特別是復(fù)工人潮的沖擊下,為確保市民安全防止病毒擴(kuò)散,需要不間斷的對人群進(jìn)行流動和回溯分析。

在TBase的智能分析與建模能力下,僅需30秒即可實現(xiàn)億級數(shù)據(jù)量去重。這樣的秒級響應(yīng)是怎么實現(xiàn)的呢?TBase利用兩個計算特性對海量數(shù)據(jù)進(jìn)行分析和關(guān)聯(lián):

image.png

分布列下推查詢

image.png

非分布列join

在人流不斷進(jìn)出公共場所時,由于前端在設(shè)計表結(jié)構(gòu)并未增加主鍵,存在業(yè)務(wù)重復(fù)掃碼以及誤操作等情況,這將導(dǎo)致一部分?jǐn)?shù)據(jù)是重復(fù),但是這些數(shù)據(jù)依然是有參考價值的,將這些數(shù)據(jù)用在后續(xù)計算模型豐富,但這無疑給模型帶來了不必要的計算。因此我們需要對業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)據(jù)去重操作。利用TBase獨特的node_id和ctid以及業(yè)務(wù)主鍵屬性進(jìn)行快速篩選以及去重處理之后,簡化了后續(xù)數(shù)據(jù)建模中產(chǎn)生的不必要中間結(jié)果。

根據(jù)掃碼數(shù)據(jù)以及人群的動態(tài)軌跡信息,首先根據(jù)業(yè)務(wù)數(shù)據(jù)量的一些特征分布列設(shè)計。比如一些主屬性的唯一特征,利用分布列進(jìn)行下推查詢,提升分布式的join計算能力。一些無法下推的查詢,將復(fù)雜查詢的各部分?jǐn)?shù)據(jù)轉(zhuǎn)化成重分布查詢,利用CPU內(nèi)存計算優(yōu)勢提高計算。通過針對業(yè)務(wù)主屬性快速的分析,合理進(jìn)行相關(guān)表結(jié)構(gòu)設(shè)計,快速的將分析結(jié)果提供給前端設(shè)備進(jìn)行預(yù)警。

另外,TBase的多核計算能力也成功將CPU多核并行計算能力、執(zhí)行SQL能力實現(xiàn)秒級返回,保障了模型的穩(wěn)定分析能力。

在TBase強悍性能的支持下,“云南防抗疫”小程序從接入數(shù)據(jù)庫到上線僅用了18個小時,有效運用科技化、信息化、大數(shù)據(jù)的手段,推動疫情防控工作更加高效和精準(zhǔn),進(jìn)一步降低疫情防控風(fēng)險。

分享到

zhangnn

相關(guān)推薦