自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Greenplum高性能數(shù)據(jù)引擎探秘

原創(chuàng)
數(shù)據(jù)庫 其他數(shù)據(jù)庫
高性能數(shù)據(jù)引擎也都是基于這兩個方面的來最求高效:“大規(guī)模”需要的是數(shù)據(jù)吞吐能力,就是所謂的I/O;“數(shù)據(jù)處理”需要的是并行計算能力,即充分利用硬件資源對任務(wù)及進程的最大化運行。

【51CTO獨家特稿】Greenplum數(shù)據(jù)引擎是為新一代數(shù)據(jù)倉庫和大規(guī)模分析處理而建立的軟件解決方案。其最大的特點是不需要高端的硬件支持仍然可以支撐大規(guī)模的高性能數(shù)據(jù)倉庫和商業(yè)智能查詢。在數(shù)據(jù)倉庫、商業(yè)智能的應(yīng)用上,尤其海量數(shù)據(jù)的處理方面性能極其優(yōu)異。

高性能的大規(guī)模數(shù)據(jù)處理能力是DBA對數(shù)據(jù)庫夢寐以求的能力之一。從字面上不難看出,“高性能的大規(guī)模數(shù)據(jù)處理能力”中,一方面是針對“大規(guī)模的數(shù)據(jù)”,另一方面就是“數(shù)據(jù)的處理”,施加于二者之上的要求是“高性能”。

所以,高性能數(shù)據(jù)引擎也都是基于這兩個方面的來最求高效:“大規(guī)模”需要的是數(shù)據(jù)吞吐能力,就是所謂的I/O;“數(shù)據(jù)處理”需要的是并行計算能力,即充分利用硬件資源對任務(wù)及進程的最大化運行。

Greenplum界面展示

在理解提升I/O和并行計算的能力之前,我們需要深入Greenplum的核心,了解一下Greenplum的Shared Nothing架構(gòu)。

Shared Nothing架構(gòu)

與Oracle RAC的Shared Everything架構(gòu)不同,Greenplum采用Shared Nothing架構(gòu)。整個集群由很多個數(shù)據(jù)節(jié)點(Segment Host)和控制節(jié)點(Master Host)組成,其中每個數(shù)據(jù)節(jié)點上可以運行多個數(shù)據(jù)庫。

簡單來說,Shared Nothing是一個分布式的架構(gòu),每個節(jié)點相對獨立。典型的Shared Nothing系統(tǒng)會集數(shù)據(jù)庫、內(nèi)存Cache、等存儲狀態(tài)的信息;而不在節(jié)點上保存狀態(tài)的信息。

Shared Nothing架構(gòu)簡圖 
Shared Nothing架構(gòu)簡圖

對于應(yīng)對大規(guī)模數(shù)據(jù)處理的服務(wù)器集群設(shè)備,若將Session狀態(tài)信息保存在各個數(shù)據(jù)節(jié)點上,各節(jié)點的Session復(fù)制會極大的影響性能;若采用Shared Nothing,保持每個節(jié)點的無狀態(tài)性,不再使用Session來保持全局的狀態(tài),而是將Session直接放在數(shù)據(jù)庫中,在數(shù)據(jù)庫前再加一層如Memcached分布式Cache,這樣將可極大的提高性能,當(dāng)改變Session中的對象時,將同步到Cache和數(shù)據(jù)庫。

基于Shared Nothing的分布式架構(gòu)模式,Greenplum在高效處理I/O數(shù)據(jù)吞吐和并發(fā)計算的過程就很好理解。

高效I/O的實現(xiàn)

I/O瓶頸是數(shù)據(jù)庫,特別是大規(guī)模數(shù)據(jù)分析處理中永恒的話題。在Greenplum中,需要存儲的數(shù)據(jù)在進入進入數(shù)據(jù)庫時,將首先進行數(shù)據(jù)分布的處理工作;將一個表里的數(shù)據(jù)平均分布到每個節(jié)點,并為每個表指定一個分發(fā)列(distribute Column),之后便根據(jù)Hash來分布數(shù)據(jù)。

Greenplum的高效數(shù)據(jù)載入 
Greenplum的高效數(shù)據(jù)載入

基于Shared Nothing的原則,Greenplum這樣處理可以充分發(fā)揮每個節(jié)點處I/O的處理能力。在這一過程中,控制節(jié)點(Master Host)將不再承擔(dān)計算任務(wù),而只負(fù)責(zé)必要的邏輯控制和客戶端交互。

這是Greenplum的獨到之處。在多數(shù)集群的大規(guī)模數(shù)據(jù)處理系統(tǒng)中,都使用中心節(jié)點進行大量的控制和計算,大量的數(shù)據(jù)交換過程中將造成中心節(jié)點的負(fù)載過大;多數(shù)情況下,數(shù)據(jù)庫的I/O瓶頸在這一位置(處理過程)形成病灶,進而隨多核心CPU時序控制和處理響應(yīng)的時段等問題開始蔓延,最終致使系統(tǒng)中很多節(jié)點的I/O位置病入膏肓。

在Greenplum中,控制節(jié)點只負(fù)責(zé)必要的邏輯處理和客戶端交互,節(jié)點間的數(shù)據(jù)交互將直接在節(jié)點間完成,而不需要控制節(jié)點;在一定的硬件資源支持下,高效I/O不再是DBA的夢想。

并行計算能力

I/O瓶頸的解決為并行計算能力的提升創(chuàng)造了良好的環(huán)境。下面我們一起來看看Greenplum是如何進行高性能的并行計算的。

在硬件方面,Greenplum可以使用標(biāo)準(zhǔn)的服務(wù)器并通過服務(wù)器間的高級通信連接,將多臺服務(wù)器組成一個強大的計算平臺,實現(xiàn)快速的海量并行運算。

在系統(tǒng)內(nèi)部,Greenplum通過自己的并行數(shù)據(jù)流引擎來實現(xiàn)更多計算需求的硬件資源調(diào)度。一般,多表JOIN操作是考驗系統(tǒng)并行計算能力的經(jīng)典案例。在Greenplum中,這一過程是將一個表里的數(shù)據(jù)平均分布到每個節(jié)點,并為每個表指定一個分發(fā)列,之后便根據(jù)Hash算法來分布數(shù)據(jù)。

這樣,每個節(jié)點的數(shù)據(jù)通過分發(fā)列即得知。如果對distribute Column做JOIN操作,只需要通過分發(fā)列得到數(shù)據(jù)的節(jié)點位置,并對相應(yīng)的節(jié)點進行計算,最后合并結(jié)果就可完成。

當(dāng)然,這種幾個表規(guī)模的查詢還不能證明Greenplum在并行計算方面的能力。但重要的是,通過Greenplum的并行數(shù)據(jù)流引擎,我們可以在一個主機上同時啟動多個PostgreSQL數(shù)據(jù)庫進行更多表的關(guān)聯(lián)及更復(fù)雜的查詢操作。這就充分發(fā)揮了硬件資源的性能。

Greenplum高性能大數(shù)據(jù)數(shù)據(jù)查詢
 Greenplum高性能大數(shù)據(jù)數(shù)據(jù)查詢

在進行數(shù)據(jù)裝載時,不是常規(guī)的一個中心數(shù)據(jù)源將數(shù)據(jù)分發(fā)至各節(jié)點,而是所有節(jié)點同時讀取數(shù)據(jù),然后根據(jù)Hash算法,將屬于自己的數(shù)據(jù)留下,將其他的節(jié)點的數(shù)據(jù)通過網(wǎng)絡(luò)直接傳送給需求方。這種多數(shù)據(jù)流的并行傳輸保證了高性能的數(shù)據(jù)裝載速度。

在進行并發(fā)數(shù)據(jù)分析時,Greenplum的另一個強大之處是支持對一個Segment節(jié)點的虛擬化,在載入數(shù)據(jù)后,我們可以對數(shù)據(jù)節(jié)點虛擬多個數(shù)據(jù)庫進行并行分析操作,依舊源于Share nothing架構(gòu),Greenplum的一個Segment可支持2-10個虛擬數(shù)據(jù)庫(官方推薦為6個),可以最大限度發(fā)揮硬件設(shè)備,提高并行規(guī)模和查詢分析效率。

 

【編輯推薦】

  1. 成功實施數(shù)據(jù)倉庫項目的七個步驟
  2. 簡述Oracle數(shù)據(jù)倉庫的體系結(jié)構(gòu)
  3. 輕松掌握數(shù)據(jù)倉庫開發(fā)
  4. 淺析商業(yè)智能BI的三個層次
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2015-07-13 11:39:25

SphinxSQL

2023-06-19 07:13:51

云原生湖倉一體

2023-01-05 09:33:38

低代碼高性能引擎

2010-03-12 10:52:59

Greenplum

2010-07-21 08:51:48

淘寶架構(gòu)

2024-07-04 10:23:51

2014-05-07 14:09:20

Fourinone

2022-01-04 18:41:36

移動

2018-12-06 10:07:49

微軟機器學(xué)習(xí)開源

2010-05-25 15:42:52

智能計算綠色高性能

2018-08-08 10:47:26

杉巖

2021-02-04 10:22:32

前端開發(fā)技術(shù)

2017-06-13 13:40:56

數(shù)據(jù)中心性能機房

2015-03-13 19:34:41

2019-07-23 11:41:45

數(shù)據(jù)庫SQLDocker

2013-03-06 16:14:16

UCHTML5游戲引擎

2023-09-27 09:11:13

操作系統(tǒng)HTTP

2022-08-05 20:00:26

架構(gòu)數(shù)據(jù)分析

2019-03-01 11:03:22

Lustre高性能計算
點贊
收藏

51CTO技術(shù)棧公眾號