有容乃大 UCloud數(shù)據(jù)倉(cāng)庫(kù)UDW架構(gòu)解析
數(shù)據(jù)分析對(duì)于很多企業(yè)是不可或缺的。幾乎所有大型企業(yè)都已構(gòu)建了數(shù)據(jù)倉(cāng)庫(kù), 以便對(duì)各種來(lái)源的數(shù)據(jù)進(jìn)行報(bào)告和分析,為決策提供依據(jù),從而指導(dǎo)業(yè)務(wù)流程改進(jìn)。構(gòu)建并運(yùn)行數(shù)據(jù)倉(cāng)庫(kù)是一件復(fù)雜而費(fèi)力的事情。大部分?jǐn)?shù)據(jù)倉(cāng)庫(kù)都很復(fù)雜,前期投入的軟件、硬件、人力都會(huì)很多。另外,傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)在數(shù)據(jù)爆炸性增長(zhǎng)的今天、擴(kuò)展比較困難、性能下降明顯。
為了解決這些問(wèn)題,UCloud 近日推出了大規(guī)模并行、完全托管的PB級(jí)數(shù)據(jù)倉(cāng)庫(kù)服務(wù)——UDW,可以極大地減少部署數(shù)據(jù)倉(cāng)庫(kù)相關(guān)的成本和工作量,更高效地使用商業(yè)智能 (BI)工具來(lái)分析海量數(shù)據(jù)。
MPP體系結(jié)構(gòu)+高可用架構(gòu) 實(shí)現(xiàn)高性能
UDW提供可視化的控制臺(tái),能方便快捷的管理和監(jiān)控?cái)?shù)據(jù)倉(cāng)庫(kù),降低使用門(mén)檻;此外,支持?jǐn)?shù)據(jù)壓縮、深度優(yōu)化的軟硬件方案,按實(shí)際數(shù)據(jù)處理需求開(kāi)通節(jié)點(diǎn)實(shí)例,無(wú)需為搭建數(shù)據(jù)倉(cāng)庫(kù)一次性投入高額成本;同時(shí),支持行存儲(chǔ)及列存儲(chǔ)的數(shù)據(jù)存儲(chǔ)方式,滿(mǎn)足不同場(chǎng)景下的數(shù)據(jù)存儲(chǔ)需求。
UDW是基于PostgreSQL開(kāi)發(fā)的大規(guī)模并行、完全托管的PB級(jí)數(shù)據(jù)倉(cāng)庫(kù)服務(wù),幾乎支持了PostgreSQL的所有特性。用戶(hù)只需掌握標(biāo)準(zhǔn)SQL語(yǔ)法,就可以熟練地使用UDW。
架構(gòu)上采用了可擴(kuò)展的MPP分布式體系,能為用戶(hù)提供高性能、低成本、高可用的分布式數(shù)據(jù)倉(cāng)庫(kù)。
MPP體系結(jié)構(gòu)
圖1.1 UDW架構(gòu)圖
UDW采用無(wú)共享的MPP架構(gòu),適用于海量數(shù)據(jù)的存儲(chǔ)和計(jì)算。UDW的架構(gòu)如上圖1.1所示,主要有Client、Master Node和Compute Node組成。基本組成部分的功能如下:
Client:訪問(wèn)UDW的客戶(hù)端、支持通過(guò)JDBC、ODBC、PHP、Python、命令行SQL訪問(wèn)UDW。
Master Node:訪問(wèn)UDW數(shù)據(jù)倉(cāng)庫(kù)的入口,它接收客戶(hù)端的連接請(qǐng)求、負(fù)責(zé)權(quán)限認(rèn)證、處理SQL命令、調(diào)度分發(fā)執(zhí)行計(jì)劃、匯總Fragment的執(zhí)行結(jié)果并將結(jié)果返回給客戶(hù)端。
Compute Node:Compute Node管理節(jié)點(diǎn)的計(jì)算和存儲(chǔ)資源,每個(gè)Compute Node有多個(gè)Fragment組成,F(xiàn)ragment負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)、用戶(hù)SQL的執(zhí)行。
UDW的高可用架構(gòu)
圖1.2 UDW的高可用架構(gòu)
如上圖所示,Compute Node中的Fragment通過(guò)mirror備份到其他的Compute Node上。當(dāng)primary Fragment出現(xiàn)不可用的時(shí)候會(huì)自動(dòng)切換到mirror Fragment、當(dāng)primary Fragment恢復(fù)之后、primary Fragment會(huì)自動(dòng)恢復(fù)這期間的變更。
除了Compute Node節(jié)點(diǎn)為Fragment配置鏡像之外、UDW也會(huì)為Active Node配置鏡像,確保系統(tǒng)的變更信息不會(huì)丟失,提升系統(tǒng)的健壯性。當(dāng)Active Master不可用時(shí)會(huì)自動(dòng)切換到Standby master。
分布式數(shù)據(jù)存儲(chǔ)和并發(fā)執(zhí)行任務(wù)
在UDW數(shù)據(jù)倉(cāng)庫(kù)中所有的表都是分布式的,每張表都會(huì)被切片。切片規(guī)則可以選擇按照指定的Key進(jìn)行Hash分片或者選擇隨機(jī)分片。如下圖所示test1、test2、test3、test4四張表的數(shù)據(jù)都會(huì)切片分布到所有的Fragment上面。
圖1.3 UDW數(shù)據(jù)分布圖
在進(jìn)行數(shù)據(jù)分析的時(shí)候、所有的Fragment同時(shí)工作、每個(gè)Fragment只需計(jì)算一部分?jǐn)?shù)據(jù)、所以計(jì)算效率會(huì)大大提升。如下圖所示、Master Node會(huì)把查詢(xún)?nèi)蝿?wù)下發(fā)到每個(gè)Fragment,F(xiàn)ragment接收到任務(wù)后,把任務(wù)劃分若干步執(zhí)行。
Step 1:scan表格數(shù)據(jù),如果數(shù)據(jù)不需要重新分布直接本地做計(jì)算、數(shù)據(jù)處理之后由master做匯總,進(jìn)入Step3。如果數(shù)據(jù)需要重新分布,則通過(guò)網(wǎng)絡(luò)傳輸?shù)綄?duì)應(yīng)的Fragment,然后進(jìn)入Step2。
Step2:數(shù)據(jù)處理
Step3:master節(jié)點(diǎn)匯總數(shù)據(jù)
圖1.4 UDW的并發(fā)執(zhí)行
結(jié)語(yǔ)
UDW非常適合商業(yè)智能(BI)領(lǐng)域的大數(shù)據(jù)聯(lián)機(jī)分析處理(OLAP)。充分滿(mǎn)足用戶(hù)對(duì)海量歷史數(shù)據(jù)的存取需求,為系統(tǒng)日志、銷(xiāo)售數(shù)據(jù)、監(jiān)控?cái)?shù)據(jù)等歷史數(shù)據(jù)提供低成本的存儲(chǔ)方案。
可對(duì)傳統(tǒng)互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)、金融、電信、物聯(lián)網(wǎng)等領(lǐng)域提供PB級(jí)別海量數(shù)據(jù)存儲(chǔ)、查詢(xún)、統(tǒng)計(jì)、分析,方便企業(yè)BI業(yè)務(wù)。
當(dāng)你的數(shù)據(jù)規(guī)模達(dá)到500G,單個(gè)MySQL數(shù)據(jù)庫(kù)已經(jīng)難以支持。隨著業(yè)務(wù)增長(zhǎng),數(shù)據(jù)規(guī)模可能會(huì)達(dá)到TB級(jí)別甚至可能達(dá)到PB級(jí)別,如果希望后續(xù)能夠平滑的擴(kuò)容,UDW為你提供了一個(gè)低成本、高效率的解決方案。
UDW現(xiàn)在已經(jīng)進(jìn)入全面公測(cè),只要你了解一點(diǎn)SQL語(yǔ)法就能快速熟練的使用UDW。另外我們也提供了詳細(xì)的說(shuō)明文檔。詳見(jiàn):https://docs.UCloud.cn/upd-docs/udw/index.html




























