溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

發(fā)布時(shí)間:2020-06-12 07:00:53 來源:網(wǎng)絡(luò) 閱讀:440 作者:艾弗森哇 欄目:數(shù)據(jù)庫

數(shù)據(jù),對(duì)一個(gè)企業(yè)的重要性不言而喻,如何利用好企業(yè)內(nèi)部數(shù)據(jù),發(fā)揮數(shù)據(jù)的更大價(jià)值,對(duì)于企業(yè)管理者而言尤為重要。作為最傳統(tǒng)的數(shù)據(jù)應(yīng)用之一,數(shù)據(jù)倉庫在企業(yè)內(nèi)部扮演著重要的角色,構(gòu)建并正確配置好數(shù)據(jù)倉庫,對(duì)于數(shù)據(jù)分析工作至關(guān)重要。一個(gè)設(shè)計(jì)良好的數(shù)據(jù)倉庫,可以讓數(shù)據(jù)分析師們?nèi)玺~得水;否則可能使企業(yè)陷入無休止的問題之中,并在未來的企業(yè)競(jìng)爭(zhēng)中處于劣勢(shì)。

隨著越來越多的基礎(chǔ)設(shè)施往云端遷移,數(shù)據(jù)倉庫是否也需要上云?上云后能解決常見的性能、成本、易用性、彈性等諸多問題嗎?如果考慮上云,需要注意哪些方面?目前主流云廠商產(chǎn)品又有何特點(diǎn)?面對(duì)上述問題,本文嘗試給出一些答案,供各位參考。本文部分內(nèi)容參考了MIT大學(xué)教授David J.DeWitt的演講材料。

一、數(shù)據(jù)倉庫建設(shè)

數(shù)據(jù)倉庫(DW)的建設(shè)方式有很多種,企業(yè)可以根據(jù)自身需求進(jìn)行選擇。下圖簡單羅列了主要的DW建設(shè)方案并做出擴(kuò)展對(duì)比。

1.1 建設(shè)方案

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

1)商業(yè)方案

商業(yè)方案,是最為傳統(tǒng)的一種,也是過去20~30年的主流方式。企業(yè)外購數(shù)倉,包括軟、硬件一體交付。其典型產(chǎn)品很多,多為國際知名大廠,國產(chǎn)廠商也有部分。

2)自建+開源

這是很多互聯(lián)網(wǎng)公司通常采用的方案,通過自建底層基礎(chǔ)設(shè)施+部署開源軟件方式完成。整個(gè)方案對(duì)企業(yè)完全自主可控,但對(duì)自有人員技術(shù)要求較高。頗為典型的產(chǎn)品就是GreenPlum。

3)云+開源

這是上一種方案的變體,即Iaas層通過云廠商提供,其他仍然是自建的。當(dāng)企業(yè)業(yè)務(wù)已經(jīng)上云,為更好地?cái)?shù)據(jù)集成,方便數(shù)據(jù)遷移,往往會(huì)采用此方案。

4)DW云

企業(yè)直接選用數(shù)據(jù)倉庫的云服務(wù),而不再獨(dú)立建設(shè)。下文將針對(duì)這種情況,重點(diǎn)說明。

1.2 方案對(duì)比

針對(duì)上述4種方案,從成本、運(yùn)維、交付、擴(kuò)展、性能等多角度進(jìn)行對(duì)比。

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

  • 成本:包括前期購買和后期運(yùn)營的費(fèi)用,這里也包含人員投入的折算費(fèi)用。

  • 運(yùn)維復(fù)雜度:主要針對(duì)企業(yè)自有技術(shù)人員的運(yùn)維工作復(fù)雜度評(píng)估。

  • 交付速度:方案的整體交付速度,包括基礎(chǔ)設(shè)施的購買、建設(shè)。

  • 擴(kuò)展性:包括數(shù)倉的容量擴(kuò)展和性能擴(kuò)展能力的綜合。

  • 性能表現(xiàn):數(shù)倉的整體性能表現(xiàn)。

1.3 重點(diǎn)對(duì)比 - 性價(jià)比

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

從上圖中可見:

方案1、2,成本、性能相對(duì)固定。其中方案1,成本較高,但性能突出;方案2(自建),則兩者均為中等。

方案3、4,成本與性能都是一個(gè)區(qū)間,且范圍較大。方案3,主要取決于云廠商提供的基礎(chǔ)設(shè)施的能力。方案4,則依靠云廠商的數(shù)倉云能力。這也對(duì)云廠商產(chǎn)品的選擇,提出了更高的要求。下文將就此展開說明。

二、云端數(shù)據(jù)倉庫

2.1 云方案優(yōu)勢(shì)

基于上面的說明,采用數(shù)據(jù)倉庫的云服務(wù),具有較多優(yōu)勢(shì),包括:

  • 更好的性價(jià)比(無論是前期購買、還是后期運(yùn)營)

  • 更快的交付速度(最快在分鐘級(jí))

  • 更優(yōu)的彈性能力(擴(kuò)展或壓縮、計(jì)算或存儲(chǔ))

  • 更低的運(yùn)維復(fù)雜度(無需士)

  • 更簡單地?cái)?shù)據(jù)集成(如果已上同一云)

  • 更豐富的數(shù)據(jù)生態(tài)(取決于云廠商產(chǎn)品)

2.2 數(shù)倉關(guān)鍵因素

數(shù)據(jù)倉庫不同于交易型數(shù)據(jù)庫,它的構(gòu)建是為了便于分析海量數(shù)據(jù),而不是處理事務(wù)。這意味著數(shù)據(jù)倉庫往往比其相應(yīng)的交易型數(shù)據(jù)庫大幾個(gè)數(shù)量級(jí),同時(shí)對(duì)于交易型數(shù)據(jù)庫的某些關(guān)鍵特性(例如ACID、響應(yīng)時(shí)間等)可能沒有那么重要。相反,數(shù)據(jù)倉庫有自己的需求,亦可作為上云選擇因素。

1)多種數(shù)據(jù)集成方式

將數(shù)據(jù)放入倉庫并正確格式化通常是數(shù)據(jù)倉庫面臨的最大挑戰(zhàn)之一。傳統(tǒng)上,數(shù)據(jù)倉庫依賴于批處理提取轉(zhuǎn)換加載作業(yè)-ETL。ETL作業(yè)仍然很重要,但現(xiàn)在也有從流式攝取數(shù)據(jù),甚至允許你直接對(duì)不在倉庫中的數(shù)據(jù)執(zhí)行查詢的能力。

2)支持?jǐn)?shù)據(jù)多元查詢

現(xiàn)有數(shù)據(jù)倉庫,除了要支持典型批量查詢外,還需要支持諸如adhoc類的查詢方式。傳統(tǒng)大數(shù)據(jù)技術(shù)棧hadoop的MapReduce不太適用于此類查詢。很多數(shù)據(jù)倉庫轉(zhuǎn)向大規(guī)模并行處理(MPP)數(shù)據(jù)庫,其原始是將數(shù)據(jù)打散后,通過并行技術(shù)在多臺(tái)服務(wù)器上執(zhí)行。此外,還有類似Spark這種利用內(nèi)存并行處理技術(shù)完成查詢。

3)標(biāo)準(zhǔn)數(shù)據(jù)訪問方式

數(shù)據(jù)倉庫支持什么語言進(jìn)行查詢。顯然,標(biāo)準(zhǔn)SQL是對(duì)用戶最為友好的方式,可顯著降低用戶的使用門檻。此外,諸如Python、R等高級(jí)語言,也可為用戶帶來更多訪問的方式。但有些是依賴于方言,這就需要進(jìn)行仔細(xì)評(píng)估。畢竟,移植的成本是筆不小的開銷。

4)靈活資源彈性能力

數(shù)據(jù)倉庫都是為了處理海量數(shù)據(jù)的,但其規(guī)模變化可能很大。此外,其計(jì)算資源的需求也是會(huì)隨著業(yè)務(wù)而不斷變化。因此對(duì)基于云的數(shù)據(jù)倉庫的資源的彈性能力要求很高,這也是區(qū)別與傳統(tǒng)自建方式一個(gè)非常大的優(yōu)勢(shì)。這里的資源,不僅包括計(jì)算資源、也包括數(shù)據(jù)存儲(chǔ)資源。此外,還需要區(qū)分是否支持計(jì)算、存儲(chǔ)的單獨(dú)提供,而不是緊耦合在一起。

5)低廉運(yùn)營維護(hù)成本

數(shù)據(jù)倉庫是復(fù)雜的系統(tǒng),從底層的物理資源、操作系統(tǒng)、倉庫軟件,到上層的數(shù)據(jù)對(duì)象、訪問語句等。作為云上的數(shù)倉,是需要提供簡單、靈活、自動(dòng)化、甚至智能化的運(yùn)維能力,方便客戶使用進(jìn)而節(jié)省用戶的綜合運(yùn)營維護(hù)成本。

6)靈活使用方式

數(shù)據(jù)倉庫本身是資源密集型應(yīng)用,如何減低用戶的使用成本,是云廠商均需考慮的。例如支持暫停與恢復(fù)功能,支持計(jì)算與存儲(chǔ)的獨(dú)立擴(kuò)展等。

2.3 是否上云/如何選擇?

使用數(shù)據(jù)倉庫云服務(wù),好處多多。那是否都要上云呢?這需要結(jié)合企業(yè)需求,考量以下因素來決定。

1)是否有足夠的技術(shù)積累?

數(shù)據(jù)倉庫本身具備較高的技術(shù)門檻,即使選擇開源也需要摸索積累的過程,除非是直接使用外部商業(yè)產(chǎn)品。

2)是否已經(jīng)在使用云?

如果已經(jīng)是某云的客戶,那么從云做數(shù)據(jù)集成將更加容易。否則,跨云或從本地加載數(shù)據(jù),將是一個(gè)大工程。

3)是否對(duì)可用性要求很高?

這方面各企業(yè)差異較大,如企業(yè)比較重視可用性,云廠商/商業(yè)產(chǎn)品無疑具有優(yōu)勢(shì)。

4)數(shù)據(jù)規(guī)模是否很大?

數(shù)據(jù)倉庫的一個(gè)核心難點(diǎn),就是支撐的數(shù)據(jù)規(guī)模。如企業(yè)數(shù)據(jù)規(guī)模非常大,將對(duì)自建方式帶來很大挑戰(zhàn)。

5)擴(kuò)展需求是否強(qiáng)烈?

如企業(yè)在快速發(fā)展期,其數(shù)據(jù)規(guī)模、使用復(fù)雜度等變化很大,這就要求數(shù)倉具有很好的可擴(kuò)展性,可快速適應(yīng)企業(yè)發(fā)展。云方案相較于其他三種方案,無疑具有優(yōu)勢(shì)。

6)使用特征變化劇烈?

如企業(yè)的數(shù)據(jù)使用,非常具有不確定性,即要求數(shù)倉具有很好地彈性,可根據(jù)需要靈活擴(kuò)縮容;乃至對(duì)查詢能力也同樣有此類要求。非云的三種方案,都很難適應(yīng)快速變化。

7)短期成本壓力較大?

企業(yè)有數(shù)倉需求,但短期通過自建、外采商業(yè)都一次性投入過大,亦可考慮云方案。

三、數(shù)倉的兩種模式

數(shù)倉從技術(shù)實(shí)現(xiàn)上,有兩種大的分類。在下面說明廠商產(chǎn)品前,簡單普及下。

3.1 Shared-Nothing

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

  • 節(jié)點(diǎn)間通過高速網(wǎng)絡(luò)互連,訪問本地資源不需要通過網(wǎng)絡(luò)。這種方式設(shè)計(jì)簡單,擴(kuò)展性較好。在較好的模型設(shè)計(jì)下,數(shù)據(jù)無需移動(dòng),處理效率高。

  • 節(jié)點(diǎn)本身具有計(jì)算和存儲(chǔ)資源,即兩者是需要耦合在一起的。這是此模式的硬傷,即存儲(chǔ)、計(jì)算無法分離,無法做到按需獨(dú)立彈性。

3.2 Shared Disk/Storage

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

  • 節(jié)點(diǎn)間互相訪問或節(jié)點(diǎn)訪問存儲(chǔ),都是需要通過高速網(wǎng)絡(luò)。數(shù)據(jù)本身都是存儲(chǔ)在”遠(yuǎn)端存儲(chǔ)”中,而非本地。網(wǎng)絡(luò)可能成為瓶頸,受到IO傳輸總量的限制。網(wǎng)絡(luò)除了承載節(jié)點(diǎn)間的數(shù)據(jù)交換流量外,更多的是要承擔(dān)大量數(shù)據(jù)訪問的流量。

  • 這種方式彈性很好,計(jì)算、存儲(chǔ)可獨(dú)立擴(kuò)展。

兩種方式的優(yōu)劣,尚無統(tǒng)一定論,但較為主流是采用shared disk/storage的共享方式。但這種方式下,遠(yuǎn)端存儲(chǔ)的性能?如何利用本地存儲(chǔ)?網(wǎng)絡(luò)性能對(duì)整體影響?如何實(shí)現(xiàn)動(dòng)態(tài)資源分配?擴(kuò)縮容的實(shí)現(xiàn)?等問題均值得研究。鄭州好的不孕不育醫(yī)院有哪些:http://www.xbzztj.com/

四、典型數(shù)倉云服務(wù)

4.1 Amazon (AWS) Redshift

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

Redshift是典型的shared-nothing設(shè)計(jì),本地掛載存儲(chǔ)。充分利用AWS的基礎(chǔ)服務(wù),EC2作為計(jì)算節(jié)點(diǎn),S3作為存儲(chǔ)及故障恢復(fù)使用。優(yōu)勢(shì)在于通過調(diào)整和定制,性能表現(xiàn)突出;但其架構(gòu)也決定了計(jì)算與存儲(chǔ)不能獨(dú)立縮放。鄭州不孕不育醫(yī)院有哪些:http://wapyyk.39.net/zz3/zonghe/1d427.html

支持從多種數(shù)據(jù)源加載數(shù)據(jù),也支持集成流式數(shù)據(jù),但只支持結(jié)構(gòu)化數(shù)據(jù)。支持直接對(duì)S3上的數(shù)據(jù)進(jìn)行查詢,而無需ETL。其支持PostgreSQL的方言,對(duì)有些數(shù)據(jù)類型和函數(shù)不支持。Redshift本身監(jiān)控組件性能并自動(dòng)恢復(fù),其他維護(hù)工作由用戶負(fù)責(zé)。日常運(yùn)維工作,通過用戶手工在控制臺(tái)完成。

4.2 Snowflake

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

Snowflake是Shared-storage設(shè)計(jì),存儲(chǔ)與計(jì)算分離。本身構(gòu)建在AWS上,充分利用AWS的基礎(chǔ)服務(wù)能力,EC2作為計(jì)算節(jié)點(diǎn),本地支持緩存,數(shù)據(jù)表存儲(chǔ)在S3中。它提出一種“虛擬倉庫”的概念,每個(gè)查詢可分配到不同的虛擬倉庫中,針對(duì)不同的倉庫也分配不同的資源。倉庫間不會(huì)影響性能,且倉庫本身具有很高的彈性,可自動(dòng)提供額外的計(jì)算資源。

支持結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),不需要ETL或預(yù)處理就可以攝取這些數(shù)據(jù)。雖然先不支持流式數(shù)據(jù),但可連接到Spark以接收流數(shù)據(jù)。它使用標(biāo)準(zhǔn)SQL并做了適當(dāng)擴(kuò)展。其維護(hù)比較簡單,不需要維護(hù)索引、清理數(shù)據(jù)等工作。

4.3 Microsoft Azure SQL Data Warehouse

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

SDW是Shared-Storage設(shè)計(jì)?;谖④浀腟QL Server PDW軟件,利用Azure存儲(chǔ)彈性能力。對(duì)T-SQL的全面兼容,可動(dòng)態(tài)調(diào)整資源,可通過Ploybase支持非加載訪問。

4.4 Google BigQuery

云端數(shù)據(jù)倉庫的模式選型與建設(shè)

BigQuery是存儲(chǔ)與計(jì)算分離設(shè)計(jì),利用Google的基礎(chǔ)服務(wù)能力,存儲(chǔ)在Collosus FS。工作機(jī)制是將SQL查詢轉(zhuǎn)換為低級(jí)指令,依次執(zhí)行。其完全抽象了資源的提供、分配、維護(hù)、擴(kuò)縮容等,所有都是Google自動(dòng)處理。非常適合易用性作為第一訴求的場(chǎng)景。存儲(chǔ)上根據(jù)處理規(guī)模、負(fù)載等情況,自動(dòng)分配分片。計(jì)算上資源不專有,在內(nèi)部和外部客戶復(fù)用。不能顯式控制單一查詢的資源使用。計(jì)費(fèi)上使用按計(jì)算量收費(fèi)方式(TB “processed”)http://dalian.huodong.dqccc.com/exposition/detail-2237296.html

使用上支持標(biāo)準(zhǔn)SQL,也支持半結(jié)構(gòu)化數(shù)據(jù)類型,支持外部表。支持從Google云端加載或直接訪問,也可以導(dǎo)入數(shù)據(jù)流。其沒有索引,除了數(shù)據(jù)管理外,幾乎不需要維護(hù)。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI