詳解數據倉庫之MPP架構--GreenPlum

概述

最近開始接觸數據可視化項目,準備做一下數據倉庫,特此總結一下數據倉庫之MPP架構內容。


一、數據倉庫簡介

數據倉庫,英文名稱為Data Warehouse,可簡寫為DW或DWH。數據倉庫,是為企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。它是單個數據存儲,出於分析性報告和決策支持目的而創建。

數據倉庫的目的是構建面向分析的集成化數據環境,為企業提供決策支持(Decision Support)。其實數據倉庫本身並不“生產”任何數據,同時自身也不需要“消費”任何的數據,數據來源於外部,並且開放給外部應用,這也是為什麼叫“倉庫”,而不叫“工廠”的原因。因此數據倉庫的基本架構主要包含的是數據流入流出的過程,可以分為三層——源數據、數據倉庫、數據應用。

詳解數據倉庫之MPP架構--GreenPlum

數據倉庫最主要的工作是從各數據源獲取數據及在數據倉庫內的數據轉換和流動都可以認為是 ETL(抽取Extra, 轉化 Transfer, 裝載 Load)的過程,ETL 是數據倉庫的流水線,也可以認為是數據倉庫的血液,它維繫著數據倉庫中數據的新陳代謝,而數據倉庫日常的管理和維護工作的大部分精力就是保持 ETL 的正常和穩定。

隨著海量數據問題的出現,海量管理能力,多類型,變化快,高可用性,低成本,高端可擴展性等需求給企業數據戰略帶來了巨大的挑戰。企業數據倉庫、數據中心的技術選型變得尤其重要!


二、數據倉庫特點

1、面向主題

是企業系統信息中的數據綜合、歸類並進行分析的一個抽象,對應企業中某一個宏觀分析領域所涉及的分析對象。

比如購物是一個主題,那麼購物裡面包含用戶、訂單、支付、物流等數據綜合,對這些數據要進行歸類並分析,分析這個對象數據的一個完整性、一致性的描述,能完整、統一的劃分對象所設計的各項數據。

如果此時要統計一個用戶從瀏覽到支付完成的時間時,在購物主題中缺少了支付數據或訂單數據,那麼這個對象數據的完整性和一致性就可能無法保證了。


2、數據集成

數據倉庫的數據是從原有分散的數據庫中的數據抽取而來的。

操作型數據和支持決策分析型(DSS)數據差別甚大,這裡需要做大量的數據清洗與數據整理的工作。

第一:每一個主題的源數據在原有分散數據庫中的有許多重複和不一致,且不同數據庫的數據是和不同的應用邏輯捆綁的。

第二:數據倉庫中的綜合性數據不能從原有的數據庫系統直接得到,因此在數據進入數據倉庫之前要進過統一和綜合。(字段同名異意,異名同義,長度等)


3、不可更新

數據倉庫的數據主要是提供決策分析用,設計的數據主要是數據查詢,一般情況下不做修改,這些數據反映的是一段較長時間內歷史數據的內容,有一塊修改了影響的是整個歷史數據的過程數據。

數據倉庫的查詢量往往很大,所以對數據查詢提出了更高的要求,要求採用各種複雜的索引技術,並對數據查詢的界面友好性和數據凸顯性提出更高的要求。


4、隨時間不斷變化

數據倉庫中的數據不可更新是針對應用來說,從數據的進入到刪除的整個生命週期中,數據倉庫的數據是永遠不變的。

數據倉庫的數據是隨著時間變化而不斷增加新的數據。

數據倉庫隨著時間變化不斷刪去久的數據內容,數據倉庫的數據也有時限的,數據庫的數據時限一般是60 ~ 90天,而數據倉庫的數據一般是5年~10年。

數據倉庫中包含大量的綜合性數據,這些數據很多是跟時間有關的,這些數據特徵都包含時間項,以標明數據的歷史時期。


三、數據倉庫和數據庫的區別

數據庫的操作:一般稱為聯機事務處理OLAP(On-Line Transaction Processing),是針對具體的業務在數據庫中的聯機操作,具有數據量較少的特點,通常對少量的數據記錄進行查詢、修改。

數據倉庫的操作:一般稱為聯機分析處理OLAP(On-Line Analytical Processing),是針對某些主題(綜合數據)的歷史數據進行分析,支持管理決策。

詳解數據倉庫之MPP架構--GreenPlum


四、數據倉庫--MPP架構

1、傳統數據倉庫

數據倉庫有著如下幾個特性:主題導向、集成性、時間差異性、不變動性,而每一個特性的使用程度和趨向,將決定這個數據倉庫的能力,但是也因為業務導向性的存在,也常常會佔主導作用,將數據倉庫向數據集市轉化,而使得數據倉庫本身變的臃腫,查詢效率下降,分析細顆粒度的數據變的較為困難。

對於此,著重分析一下它的幾個特性,尋求新的變革。

1)主題導向(Subject-Oriented)

將數據倉庫有別於一般 OLTP 系統,數據倉庫的資料模型設計,著重將資料按其意義歸類至相同的主題區(subject area),因此稱為主題導向。舉例如 Party、Arrangement、Event、Product 等。

2)集成性(Integrated)

資料來自企業各 OLTP 系統,在數據倉庫中是集成過且一致的。

3)時間差異性(Time-Variant)

資料的變動,在數據倉庫中是能夠被紀錄以及追蹤變化的,有助於能反映出能隨著時間變化的資料軌跡。

4)不變動性(Nonvolatile)

資料一旦確認寫入後是不會被替換或刪除的,即使資料是錯誤的亦同。由此可以看出,數據倉庫本身是一個不斷收集數據,按相應的規則進行組合匯聚的過程,如圖 所示。

詳解數據倉庫之MPP架構--GreenPlum

圖:數據倉庫聚合數據面板

觀察上圖可以知道,這個過程所損耗的,也只是倉庫本身的性能和 ETL 性能,而倉庫本身的性能取決於通信、I/O 能力和硬件性能,ETL 的性能也基於此。因此,在硬件性能如此強勁的今天,如何提高這三項指標,決定了倉庫本身性能的優劣,那麼一個合適的架構去操作,將顯得尤為重要,特別是在數據量不斷膨脹的今天,架構將決定企業數據倉庫的支撐能力。


2、MPP架構數據倉庫

在大數據普及的今天,各種架構的數據庫不斷出現,下圖即是當前使用的各種結構的一個對比圖,從易用性到擴展能力的對比。

詳解數據倉庫之MPP架構--GreenPlum

圖 :大數據技術棧對比

對於兼顧易用性和擴展能力而言,MPP 架構的數據庫佔據著比較大的優勢。結合上圖的結果,能處理高數據量的 MPP 架構數據庫,是現在的最佳選擇,那麼 MPP 到底是什麼呢?

MPP 即大規模並行處理(Massively Parallel Processor),在 MPP 系統中,每個SMP 節點也可以運行自己的操作系統、數據庫等。換言之,每個節點內的 CPU 不能訪問另一個節點的內存。節點之間的信息交互是通過節點互聯網絡實現的,這個過程一般稱為數據重分配(Data Redistribution)。

與傳統的 SMP 架構明顯不同,通常情況下,MPP 系統因為要在不同處理單元之間傳送信息,所以它的效率要比 SMP 要差一點,但是這也不是絕對的,因為 MPP 系統不共享資源,因此對它而言,資源比 SMP 要多,當需要處理的事務達到一定規模時,MPP 的效率要比 SMP好。這就是看通信時間佔用計算時間的比例而定,如果通信時間比較多,那 MPP 系統不佔優勢了,相反,如果通信時間比較少,那 MPP 系統可以充分發揮資源的優勢,達到高效率。當前使用的 OTLP 程序中,用戶訪問一箇中心數據庫,如果採用 SMP 系統結構,它的效率要比採用 MPP 結構要快得多。而 MPP 系統在決策支持和數據挖掘方面顯示了優勢,可以這樣說,如果操作相互之間沒有什麼關係,處理單元之間需要進行的通信比較少,那採用MPP 系統就要好,相反就不合適了。

在數據庫非共享集群中,每個節點都有獨立的磁盤存儲系統和內存系統,業務數據根據數據庫模型和應用特點劃分到各個節點上,每臺數據節點通過專用網絡或者商業通用網絡互相連接,彼此協同計算,作為整體提供數據庫服務。非共享數據庫集群有完全的可伸縮性、高可用、高性能、優秀的性價比、資源共享等優勢。

詳解數據倉庫之MPP架構--GreenPlum

圖:大規模並行處理(MPP)架構

MPP 架構數據庫採用 Shared-nothing 架構(非共享集群),每個節點都有自己的操作系統、數據庫、硬件資源,節點之間通過網絡來通信。在擁有高帶寬網絡的內部環境中,使得每個資源都能擁有最佳的運行環境,以獲得高輸出性能。

詳解數據倉庫之MPP架構--GreenPlum

圖 :Shared-nothing架構


因此,相較於傳統型數據庫和其他架構數據庫,MPP 架構的數據庫有如下優勢:

1)大數據分析需求

傳統數據庫無法支持大規模集群與 PB 級別數據量,且性能受限、擴展性受限,MPP架構數據支持大規模集群以及PB級別數據,性能根據擴展節點性能呈線性關係

2)軟硬件一體機成本高昂、擴展受限

高性能單機服務器的成本十分高昂,生產擴容、測試、開發、容災都需新購同型號一體機(機櫃),並且跨代兼容性問題目前也沒有得到很好的解決。MPP架構數據庫可根據需要無限擴展。

3)In-memory 技術太貴而且不成熟

內存成本過高,TB 級別以下,不適合大數據量;MPP架構成本可控,對於TB級數據支持優秀,很適合大數據量。

4)Hadoop 技術的先天不足

Hive 等 sql-on-hadoop 性能太慢,SQL 兼容性與支持不足,數據安全性無法保證。MPP架構數據庫支持通用標準SQL,數據可冗餘備份,具有高可用,高安全性。


五、主流分佈式數據庫選擇--GreenPlum

1、 基礎架構

Greenplum 是基於 Hadoop 的一款分佈式數據庫產品,在處理海量數據方面相比傳統數據庫有著較大的優勢。

Greenplum 整體架構如下圖:

詳解數據倉庫之MPP架構--GreenPlum

圖:GreenPlum整體架構圖

數據庫由 Master Severs 和 Segment Severs 通過 Interconnect 互聯組。

Master 主機負責:建立與客戶端的連接和管理;SQL 的解析並形成執行計劃;執行計劃向 Segment 的分發收集 Segment 的執行結果;Master 不存儲業務數據,只存儲數據字典。

Segment 主機負責:業務數據的存儲和存取;用戶查詢 SQL 的執行。

2、主要特性

Greenplum 整體有如下技術特點:

1)Shared-nothing 架構

海量數據庫採用最易於擴展的 Shared-nothing 架構,每個節點都有自己的操作系統、數據庫、硬件資源,節點之間通過網絡來通信。

2)基於 gNet Software Interconnect

數據庫的內部通信通過基於超級計算的“軟件 Switch”內部連接層,基於通用的 gNet(GigE, 10GigE) NICs/switches 在節點間傳遞消息和數據,採用高擴展協議,支持擴展到 1000個以上節點。

3)並行加載技術

利用並行數據流引擎,數據加載完全並行,加載數據可達到 4.5T/小時(理想配置)。並且可以直接通過 SQL 語句對外部表進行操作

4)支持行、列壓縮存儲技術

海量數據庫支持 ZLIB 和 QUICKLZ 方式的壓縮,壓縮比可到 10:1。壓縮數據不一定會帶來性能的下降,壓縮表通過利用空閒的 CPU 資源,而減少 I/O 資源佔用。海量數據庫除支持主流的行存儲模式外,還支持列存儲模式。如果常用的查詢只取表中少量字段,則列模式效率更高,如查詢需要取表中的大量字段,行模式效率更高。海量數據庫的多種壓縮存儲技術在提高數據存儲能力的同時,也可根據不同應用需求提高查詢的效率。

3、主要侷限

1)用戶不可靈活控制事務的提交,用戶提交的處理將被自動視作整體事務,整體提交,整體回滾。

2)數據庫需要額外的空間清理維護,給數據庫維護帶來額外的工作量。

3)用戶不能靈活分配或控制服務器資源,服務器自動分配分發。

4)對磁盤I/O有比較高的要求。


4、 GreenPlum 對比其他數據庫

詳解數據倉庫之MPP架構--GreenPlum

相比於其他的數據庫,GreenPlum 數據庫最大的優勢在於其開源,極大的降低了其成本費用,相較於以往動輒四五百萬以上的費用,如今只需要不到三分之一的價格即可在企業成功運用,且能夠根據自己企業的特性進行改良。


後面會分享更多關於GreenPlum方面的內容,感興趣的朋友可以關注下~

詳解數據倉庫之MPP架構--GreenPlum


分享到:


相關文章: