邱麗羚,朱 妍,季夢黎
(國網(wǎng)江蘇省電力有限公司營銷服務(wù)中心,南京 210019)
在業(yè)務(wù)應(yīng)用早期,數(shù)據(jù)量有限,不會(huì)考慮機(jī)房的容量問題[1]。但隨著業(yè)務(wù)的發(fā)展,數(shù)據(jù)量劇增,單機(jī)房容量已無法滿足數(shù)據(jù)容量需求,技術(shù)層面需要實(shí)現(xiàn)跨機(jī)房技術(shù)支撐,需要支持物理分散、邏輯統(tǒng)一的全域數(shù)據(jù)資產(chǎn)管理技術(shù)。當(dāng)業(yè)務(wù)大多分散在不同機(jī)房,希望打通各業(yè)務(wù)方的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)共享[2]。
元數(shù)據(jù)跨域統(tǒng)一管理支持?jǐn)?shù)據(jù)版本管理,在多計(jì)算集群部署模式下,同一份數(shù)據(jù)(表或分區(qū))在多個(gè)計(jì)算集群上可能存在不同的版本,元數(shù)據(jù)服務(wù)會(huì)維護(hù)每份數(shù)據(jù)的版本信息[3]。元數(shù)據(jù)管理是整個(gè)跨域計(jì)算的基礎(chǔ),數(shù)據(jù)在物理上分散存儲(chǔ)在不同的地域,邏輯上需要提供統(tǒng)一的數(shù)據(jù)視圖,為上層應(yīng)用和計(jì)算調(diào)度提供支持[4]。同一個(gè)項(xiàng)目中的不同表可以存放到不同集群,同時(shí)單個(gè)表的數(shù)據(jù)也可以根據(jù)分區(qū)列分布到不同集群,分區(qū)本身也可以嵌套,最大支持五級的分區(qū)嵌套[5]。
在異地多機(jī)房環(huán)境下的多控制集群和多計(jì)算集群架構(gòu)下,在滿足一定帶寬及網(wǎng)絡(luò)延遲要求條件下,跨域計(jì)算服務(wù)能夠從邏輯上管理同樣功能的控制集群,并選擇其中一個(gè)異地主控集群[6]。且能夠支持對單個(gè)項(xiàng)目空間進(jìn)行多個(gè)計(jì)算集群配置,讓同一個(gè)項(xiàng)目空間邏輯上擁有多個(gè)數(shù)據(jù)存儲(chǔ)與計(jì)算的集群[7]。即從系統(tǒng)設(shè)計(jì)開始,計(jì)算系統(tǒng)就沒有區(qū)分地理上的控制集群和計(jì)算集群,可以對滿足一定帶寬和網(wǎng)絡(luò)延遲條件下的異地集群同等對待,并能夠做到從用戶項(xiàng)目空間映射管理上管理異地集群,具備多集群統(tǒng)一調(diào)度能力[8]。
跨域計(jì)算框架遵循“搬計(jì)算,不搬數(shù)據(jù)”,通過Maxcmpute 的中心部署模式,實(shí)現(xiàn)全局的跨域計(jì)算任務(wù)調(diào)度。通過跨地域資源協(xié)同管理,實(shí)現(xiàn)推動(dòng)統(tǒng)推核心系統(tǒng)多地域部署,在應(yīng)用層面實(shí)現(xiàn)業(yè)務(wù)分流,資源協(xié)調(diào)。
MaxCompute 作為大數(shù)據(jù)平臺(tái)的核心產(chǎn)品,是唯一一個(gè)能夠做到統(tǒng)一平臺(tái)(統(tǒng)一元數(shù)據(jù)、統(tǒng)一數(shù)據(jù)視圖、全局的計(jì)算調(diào)度)下的同地或異地多集群多region 管理的大數(shù)據(jù)計(jì)算服務(wù)[9]。對于“搬計(jì)算,不搬數(shù)據(jù)”,覆蓋跨域資源調(diào)度,跨域計(jì)算等場景??缬蛴?jì)算總體架構(gòu)如圖1所示。
圖1 跨域計(jì)算總體架構(gòu)
跨域計(jì)算框架具備以下能力:統(tǒng)一控制集群管理跨地域計(jì)算中心,通過全局控制集群統(tǒng)一管理多地的大數(shù)據(jù)中心,統(tǒng)一資源池實(shí)現(xiàn)數(shù)據(jù)優(yōu)化存儲(chǔ),大數(shù)據(jù)系統(tǒng)全局自適應(yīng)動(dòng)態(tài)優(yōu)化,計(jì)算任務(wù)全局分配,支持跨地域計(jì)算協(xié)同運(yùn)行。
元數(shù)據(jù)是除了存儲(chǔ)和計(jì)算之外,數(shù)據(jù)倉庫可擴(kuò)展性的一個(gè)重要指標(biāo)。為了支持跨集群的數(shù)據(jù)訪問和調(diào)度,為了元數(shù)據(jù)的存儲(chǔ)不受離線計(jì)算系統(tǒng)物理集群邊界的限制,離線計(jì)算系統(tǒng)的元數(shù)據(jù)管理采用更易擴(kuò)展的設(shè)計(jì)模式,整個(gè)跨域計(jì)算服務(wù)使用一套元數(shù)據(jù)表。元數(shù)據(jù)是結(jié)構(gòu)化的數(shù)據(jù),需要足夠高效的隨機(jī)讀寫訪問,且每次訪問的數(shù)據(jù)量非常有限。隨著用戶數(shù)和數(shù)據(jù)量的累積,元數(shù)據(jù)的規(guī)模不斷擴(kuò)大,需要采用分布式大規(guī)模在線結(jié)構(gòu)化數(shù)據(jù)服務(wù)進(jìn)行存儲(chǔ)和管理。衡量數(shù)據(jù)倉庫設(shè)計(jì)可擴(kuò)展性的一個(gè)重要指標(biāo)是當(dāng)系統(tǒng)的用戶數(shù)成數(shù)量級增長時(shí),元數(shù)據(jù)表的數(shù)量能否保持不變。將所有用戶空間的元數(shù)據(jù)統(tǒng)一存儲(chǔ)在同一套元數(shù)據(jù)表中成為一個(gè)可擴(kuò)展的設(shè)計(jì)模式。
圖2 元數(shù)據(jù)管理
跨域計(jì)算框架具備以下能力:統(tǒng)一控制集群管理跨地域即跨域計(jì)算系統(tǒng)的元數(shù)據(jù)主要包括:Project(用戶空間)的元數(shù)據(jù)、Table/Partition版本數(shù)據(jù)。
MaxCompute 中的數(shù)據(jù),按照project/table/partition 的層級來組織和表示。每一層級的meta都存儲(chǔ)在同一張OTS大表中。如圖3所示,在每個(gè)project 的meta 中,有一列存儲(chǔ)該project 的多集群復(fù)制相關(guān)的配置。在partition 的元數(shù)據(jù)中,有一列存儲(chǔ)表示partition 在多集群中的數(shù)據(jù)版本。
圖3 數(shù)據(jù)多版本
元數(shù)據(jù)在OTS 中指的是每個(gè)最低層級的數(shù)據(jù)(分區(qū)表的每個(gè)分區(qū)和非分區(qū)表的表,為了描述方便,以下統(tǒng)稱為分區(qū)),在meta 中會(huì)有一列用于表示這個(gè)數(shù)據(jù)的版本信息,具體內(nèi)容如下:
{“LastestVersion”:V1,“ClusterStatus”:{“ClusterA”:“V1”,“ClusterB”:“V0”}}
其中,“LastestVersion”是一個(gè)抽象描述,表示這個(gè)分區(qū)當(dāng)前有效的版本號。V1 是一個(gè)字符串,通常不用于做語義上的判斷?!癱lusterStatus”描述這個(gè)分區(qū)在每個(gè)計(jì)算集群上的物理文件對應(yīng)的版本,如上表示這個(gè)集群的有效版本號為V1,在ClusterA 上版本號為V1,ClusterB上的版本號為V0。
計(jì)算集群之間的關(guān)系是對等的,即計(jì)算集群之間沒有主從的關(guān)系,只根據(jù)版本信息分為有效版本數(shù)據(jù)集群和無效版本數(shù)據(jù)集群。數(shù)據(jù)同步只與分區(qū)的版本信息相關(guān),永遠(yuǎn)將有效版本的集群分區(qū)數(shù)據(jù)同步至無效版本集群。
在元數(shù)據(jù)統(tǒng)一以及滿足一定帶寬及網(wǎng)絡(luò)延遲要求條件下,實(shí)現(xiàn)異地多機(jī)房環(huán)境下控制集群管理多個(gè)計(jì)算集群體系。單個(gè)項(xiàng)目空間(用戶、存儲(chǔ)資源、計(jì)算資源以及權(quán)限的邏輯抽象)可以映射到多個(gè)計(jì)算集群配置,也就是說同一個(gè)項(xiàng)目空間邏輯上擁有多個(gè)數(shù)據(jù)存儲(chǔ)與計(jì)算的集群,將用戶項(xiàng)目空間映射到異地多集群,基于各個(gè)計(jì)算集群的空閑程度,網(wǎng)絡(luò)擁擠程度等進(jìn)行統(tǒng)一的調(diào)度,滿足多集群統(tǒng)一調(diào)度能力的要求。
選取電網(wǎng)典型場景實(shí)現(xiàn)數(shù)據(jù)跨域直接讀取,利用本地計(jì)算集群進(jìn)行數(shù)據(jù)跨域直讀計(jì)算,計(jì)算結(jié)果回落總部(網(wǎng)?。┕?jié)點(diǎn)[10]??偛颗c網(wǎng)省之間數(shù)據(jù)實(shí)現(xiàn)跨域復(fù)制,同一個(gè)project 實(shí)現(xiàn)兩地?cái)?shù)據(jù)復(fù)制同步,利用本地計(jì)算集群進(jìn)行數(shù)據(jù)本地訪問計(jì)算,計(jì)算結(jié)果回落總部(網(wǎng)?。?,降低跨域數(shù)據(jù)訪問實(shí)時(shí)網(wǎng)絡(luò)開銷,總部與網(wǎng)省之間指定計(jì)算集群,實(shí)現(xiàn)跨域計(jì)算調(diào)度,計(jì)算結(jié)果回落總部(網(wǎng)?。┕?jié)點(diǎn)。
數(shù)據(jù)實(shí)現(xiàn)跨域復(fù)制,同一個(gè)project 實(shí)現(xiàn)兩地?cái)?shù)據(jù)復(fù)制同步,利用本地計(jì)算集群進(jìn)行數(shù)據(jù)本地訪問計(jì)算,計(jì)算結(jié)果回落總部(網(wǎng)?。档涂缬驍?shù)據(jù)訪問實(shí)時(shí)網(wǎng)絡(luò)開銷,總部與網(wǎng)省之間指定計(jì)算集群,實(shí)現(xiàn)跨域計(jì)算調(diào)度,指定單元region 計(jì)算集群,跨region 訪問生產(chǎn)項(xiàng)目空間表數(shù)據(jù),寫入總部項(xiàng)目空間,結(jié)果如圖4所示。
圖4 實(shí)驗(yàn)結(jié)果
通過查看腳本運(yùn)行日志,可以看到計(jì)算集群使用的是計(jì)算資源,數(shù)據(jù)寫入總部項(xiàng)目空間,任務(wù)成功運(yùn)行。
綜上所述,本文結(jié)合電力行業(yè)云計(jì)算發(fā)展,設(shè)計(jì)了一種云環(huán)境下跨域計(jì)算方法模型,闡述了跨域計(jì)算的總體架構(gòu)和實(shí)現(xiàn)的關(guān)鍵路線方法,探索了“搬計(jì)算,不搬數(shù)據(jù)”的應(yīng)用模式,可以有效節(jié)約網(wǎng)絡(luò)資源,減少數(shù)據(jù)搬遷和存儲(chǔ),降低溝通成本,提升數(shù)據(jù)需求響應(yīng)速度。