?

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

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

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

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

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

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

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

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

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

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

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

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

image.png

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

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

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

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

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

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

image.png

分布列下推查詢

image.png

非分布列join

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

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

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

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

分享到

zhangnn

相關推薦