亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4093 | 回復(fù): 0
打印 上一主題 下一主題

開源大數(shù)據(jù)引擎:Greenplum 數(shù)據(jù)庫架構(gòu)分析 [復(fù)制鏈接]

論壇徽章:
11
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-06-25 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-06-24 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-05-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-04-21 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-23 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-03 06:20:00綜合交流區(qū)版塊每周發(fā)帖之星
日期:2015-12-02 15:03:53數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-19 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-08-20 06:20:002015年辭舊歲徽章
日期:2015-03-03 16:54:15數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-07-30 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-03-23 09:49 |只看該作者 |倒序瀏覽
Greenplum 數(shù)據(jù)庫是最先進的分布式開源數(shù)據(jù)庫技術(shù),主要用來處理大規(guī)模的數(shù)據(jù)分析任務(wù),包括數(shù)據(jù)倉庫、商務(wù)智能(OLAP)和數(shù)據(jù)挖掘等。自2015年10月正式開源以來,受到國內(nèi)外業(yè)內(nèi)人士的廣泛關(guān)注。本文就社區(qū)關(guān)心的Greenplum數(shù)據(jù)庫技術(shù)架構(gòu)進行介紹。
一. Greenplum數(shù)據(jù)庫簡介

大數(shù)據(jù)是個炙手可熱的詞,各行各業(yè)都在談。一談到大數(shù)據(jù),好多人認為就是Hadoop。實際上Hadoop只是大數(shù)據(jù)若干處理方案中的一個,F(xiàn)在的SQL、NoSQL、NewSQL、Hadoop等等,都能在不同層面或不同應(yīng)用上處理大數(shù)據(jù)的某些問題。而Greenplum數(shù)據(jù)庫做為一個分布式大規(guī)模并行處理數(shù)據(jù)庫,在大多數(shù)情況下,更適合做大數(shù)據(jù)的存儲引擎、計算引擎和分析引擎。

Greenplum數(shù)據(jù)庫也簡稱GPDB。它擁有豐富的特性:

第一,完善的標準支持:GPDB完全支持ANSI SQL 2008標準和SQL OLAP 2003 擴展;從應(yīng)用編程接口上講,它支持ODBC和JDBC。完善的標準支持使得系統(tǒng)開發(fā)、維護和管理都大為方便。而現(xiàn)在的 NoSQL,NewSQL和Hadoop 對 SQL 的支持都不完善,不同的系統(tǒng)需要單獨開發(fā)和管理,且移植性不好。

第二,支持分布式事務(wù),支持ACID。保證數(shù)據(jù)的強一致性。

第三,做為分布式數(shù)據(jù)庫,擁有良好的線性擴展能力。在國內(nèi)外用戶生產(chǎn)環(huán)境中,具有上百個物理節(jié)點的GPDB集群都有很多案例。

第四,GPDB是企業(yè)級數(shù)據(jù)庫產(chǎn)品,全球有上千個集群在不同客戶的生產(chǎn)環(huán)境運行。這些集群為全球很多大的金融、政府、物流、零售等公司的關(guān)鍵業(yè)務(wù)提供服務(wù)。

第五,GPDB是Greenplum(現(xiàn)在的Pivotal)公司十多年研發(fā)投入的結(jié)果。GPDB基于PostgreSQL 8.2,PostgreSQL 8.2有大約80萬行源代碼,而GPDB現(xiàn)在有130萬行源碼。相比PostgreSQL 8.2,增加了約50萬行的源代碼。

第六,Greenplum有很多合作伙伴,GPDB有完善的生態(tài)系統(tǒng),可以與很多企業(yè)級產(chǎn)品集成,譬如SAS,Cognos,Informatic,Tableau等;也可以很多種開源軟件集成,譬如Pentaho,Talend 等。
二. Greenplum架構(gòu)

2.1 平臺架構(gòu)

圖(1)是Greenplum數(shù)據(jù)庫平臺概括圖。平臺分為四個層次,我們依次從下往上看。

圖片描述

MPP核心架構(gòu)

    GPDB是大規(guī)模無共享的處理架構(gòu),后面會專門介紹;

    先進的并行優(yōu)化器是性能突出的關(guān)鍵之一。GPDB有兩個優(yōu)化器,一個是基于PostgreSQL planner的優(yōu)化器;一個是全新開發(fā)的ORCA優(yōu)化器。ORCA是Greenplum 5年以前啟動的全新項目,這個優(yōu)化器經(jīng)過幾年的開發(fā)和測試之后,最近已經(jīng)成為GPDB企業(yè)版本的默認優(yōu)化器。

    GPDB的存儲引擎支持多態(tài)存儲,一個表的數(shù)據(jù)可以根據(jù)訪問模式的不同使用不同的存儲方式。存儲方式對用戶透明,執(zhí)行查詢時,不用關(guān)心待訪問的數(shù)據(jù)使用的存儲模式,優(yōu)化器會自動選擇最佳查詢計劃。

    分布式數(shù)據(jù)庫中,某些操作(例如跨節(jié)點關(guān)聯(lián))需要多個節(jié)點間進行數(shù)據(jù)交換。GPDB的并行數(shù)據(jù)庫流引擎,可以根據(jù)數(shù)據(jù)的特點,例如分布方式、數(shù)據(jù)量等選擇最合適的數(shù)據(jù)流操作符。目前GPDB支持兩種數(shù)據(jù)流操作符:重分發(fā)(Redistribution)和廣播(Broadcast)。重分發(fā)根據(jù)數(shù)據(jù)的哈希值重新分發(fā)到各個數(shù)據(jù)節(jié)點上,適用于數(shù)據(jù)量大的情況;廣播則將數(shù)據(jù)發(fā)送給所有數(shù)據(jù)節(jié)點,適用于數(shù)據(jù)量較小的情況,例如維度表。

    軟件交換機是GPDB的一個重要組件,軟件交換機可以在各個數(shù)據(jù)節(jié)點間及與主節(jié)點間建立可靠的UDP數(shù)據(jù)通訊機制,是實現(xiàn)高效數(shù)據(jù)流的核心。

    Scatter/Gather 流引擎是專為并行數(shù)據(jù)加載和導(dǎo)出而設(shè)計,Scatter指數(shù)據(jù)通過并行加載服務(wù)器并行分散到各個數(shù)據(jù)節(jié)點,Gather指數(shù)據(jù)在 GPDB內(nèi)部可以根據(jù)分布策略按需并行分發(fā)。

服務(wù)層

    GPDB支持多級容錯機制和高可用:
    o 主節(jié)點(Master)高可用:為了避免主節(jié)點單點故障,可以設(shè)置一個主節(jié)點的副本(稱為 Standby Master),他們之間通過流復(fù)制技術(shù)實現(xiàn)同步復(fù)制。當(dāng)主節(jié)點發(fā)生故障時,從節(jié)點成為主節(jié)點,處理用戶請求并協(xié)調(diào)查詢執(zhí)行。它們之間通過心跳檢測故障。
    o 數(shù)據(jù)節(jié)點(Segment)高可用:每個數(shù)據(jù)節(jié)點都可以配備一個鏡像,它們之間通過文件操作級別的同步實現(xiàn)數(shù)據(jù)的同步復(fù)制(稱為filerep技術(shù))。數(shù)據(jù)節(jié)點上建議使用RAID5磁盤,以進一步提高數(shù)據(jù)的高可用。故障檢測進程(ftsprobe)定期發(fā)送心跳給各個數(shù)據(jù)節(jié)點。當(dāng)某個節(jié)點發(fā)生故障時,GPDB會自動進行故障切換。
    o 網(wǎng)絡(luò)高可用:為了避免網(wǎng)絡(luò)的單點故障,每個主機配置多個網(wǎng)口,并使用多個交換機避免網(wǎng)絡(luò)故障時造成整個服務(wù)不可用。

    在線擴展:數(shù)據(jù)量增大,現(xiàn)有集群不能滿足需求時,可以對GPDB數(shù)據(jù)庫進行動態(tài)擴展。擴展過程中,業(yè)務(wù)可以繼續(xù)運行,不需要宕機。
    任務(wù)管理是指對資源的管理和使用情況的管理。

產(chǎn)品特性

    數(shù)據(jù)加載在后面會專門介紹。

    數(shù)據(jù)聯(lián)邦是比較有意思的,最近“數(shù)據(jù)湖泊”這個詞非常火熱,數(shù)據(jù)湖泊的目的是不需再對數(shù)據(jù)像以前那樣經(jīng)過定制,生成特定的業(yè)務(wù)報表;而是保存原始數(shù)據(jù),什么時候想分析就從原始數(shù)據(jù)上直接處理。GBDB可以實現(xiàn)數(shù)據(jù)湖泊(我們稱之為數(shù)據(jù)聯(lián)邦),它能訪問和處理數(shù)據(jù)中心里面的所有數(shù)據(jù),不管你的數(shù)據(jù)是在Hadoop、在文件系統(tǒng)上、還是在其他數(shù)據(jù)庫中,Greenplum可以使用一個SQL在保證ACID的前提下訪問所有數(shù)據(jù)。

    GPDB即支持行存,也支持列存。還為不需更新的數(shù)據(jù)存儲和處理進行了專門的優(yōu)化。
    支持多種壓縮方法,包括QuickLZ,Zlib,RLE 等。
    支持多級分區(qū)表,分區(qū)支持多種模式,包括范圍,列表等。
    支持B樹、位圖和GiST 等索引
    GPDB認證機制支持多種方式,包括LDAP和Kerberos等。通過訪問控制列表(ACL),可以實現(xiàn)靈活的基于角色的安全控制。
    擴展語言支持:GPDB 支持使用多種流行語言實現(xiàn)用戶自定義函數(shù)(UDF,類似于Oracle的存儲過程),包括 Python,R,Java,Perl,C/C++ 等。
    地理信息處理:通過集成PostGIS,GPDB支持對地理信息進行存儲和分析。
    內(nèi)建數(shù)據(jù)挖掘算法庫:通過MADLib(現(xiàn)在是Apache孵化項目)算法庫,可以內(nèi)建幾十種常見的數(shù)據(jù)分析和挖掘算法到GPDB數(shù)據(jù)庫中,包括邏輯回歸,決策樹,隨機森林等。不需要寫任何算法代碼,通過SQL就可以使用其中的所有算法。
    文本檢索:通過GPText擴展,GPDB可以支持高效靈活豐富的全文檢索功能。與 MADLib 合用,可以進行并行文本分析和挖掘。

客戶端訪問和工具

通過psql命令行工具可以訪問GPDB數(shù)據(jù)庫的所有功能,此外還提供了ODBC、JDBC、OLEDB、libpq等應(yīng)用編程接口。

數(shù)據(jù)庫或者數(shù)據(jù)集群的管理工具非常重要,GPDB提供了圖形化的管理工具GPCC(Greenplum Command Center),幫你管理狀態(tài),監(jiān)控資源使用情況。

Greenplum Workload Manager是剛剛發(fā)布的新產(chǎn)品,用以實現(xiàn)基于規(guī)則的資源管理。它支持自定義規(guī)則,當(dāng)某個SQL滿足規(guī)則描述的條件時會執(zhí)行某些操作。比如你可以定義規(guī)則自動取消消耗CPU資源達50%以上的查詢。

2.2 大規(guī)模并行處理(MPP)無共享架構(gòu)

MPP 是Greenplum數(shù)據(jù)庫最突出的特色,F(xiàn)在很流行MPP這個詞,我們可以看一下它是什么意思。下邊圖(2)中,主節(jié)點有兩個,一個是主節(jié)點,一個是從主節(jié)點。通過軟交換機制,也就是通過高速網(wǎng)絡(luò),主節(jié)點連到數(shù)據(jù)節(jié)點。每個數(shù)據(jù)節(jié)點有自己的CPU,自己的內(nèi)存,自己的硬盤,他們唯一共享的就是網(wǎng)絡(luò)。這也是稱為無共享架構(gòu)的原因。這種架構(gòu)的好處是集群是分布式的環(huán)境,數(shù)據(jù)可以分布在很多節(jié)點上進行并行處理,可以做到線性擴展。

圖片描述

在分布式數(shù)據(jù)庫中,性能好壞的最重要因素是數(shù)據(jù)分布是否均勻。如果數(shù)據(jù)分布不均勻,有的節(jié)點上數(shù)據(jù)非常多,有的節(jié)點數(shù)據(jù)很少,這樣會出現(xiàn)短板效應(yīng),整個SQL的效率不會很好。Greenplum支持多種數(shù)據(jù)分布的策略,默認使用主鍵或者第一個字段進行哈希分布,還支持隨機分布。除了橫向上數(shù)據(jù)可以按節(jié)點分布之外,在某個節(jié)點上還可以對數(shù)據(jù)進行分區(qū)。分區(qū)的規(guī)則比較靈活,可以按照范圍分區(qū),也可以按照列表值分區(qū),如圖(3)。

圖片描述

2.3 并行查詢計劃和執(zhí)行

下面是個簡單的SQL,如圖(4),從兩張表中找到2008年的銷售數(shù)據(jù)。圖中右邊是這個SQL的查詢計劃。從生成的查詢計劃樹中看到有三種不同的顏色,顏色相同表示做同一件事情,我們稱之為分片/切片(Slice)。最下層的橙色切片中有一個重分發(fā)節(jié)點,這個節(jié)點將本節(jié)點的數(shù)據(jù)重新分發(fā)到其他節(jié)點上。中間綠色切片表示分布式數(shù)據(jù)關(guān)聯(lián)(HashJoin)。最上面切片負責(zé)將各個數(shù)據(jù)節(jié)點收到的數(shù)據(jù)進行匯總。

圖片描述

然后看看這個查詢計劃的執(zhí)行,如圖(5)。主節(jié)點(Master)上的調(diào)度器(QD)會下發(fā)查詢?nèi)蝿?wù)到每個數(shù)據(jù)節(jié)點,數(shù)據(jù)節(jié)點收到任務(wù)后(查詢計劃樹),創(chuàng)建工作進程(QE)執(zhí)行任務(wù)。如果需要跨節(jié)點數(shù)據(jù)交換(例如上面的HashJoin),則數(shù)據(jù)節(jié)點上會創(chuàng)建多個工作進程協(xié)調(diào)執(zhí)行任務(wù)。不同節(jié)點上執(zhí)行同一任務(wù)(查詢計劃中的切片)的進程組成一個團伙(Gang)。數(shù)據(jù)從下往上流動,最終Master返回給客戶端。

圖片描述

2.4 多態(tài)存儲

上面介紹了GPDB的特點和SQL執(zhí)行計劃以及執(zhí)行過程,那數(shù)據(jù)在每個節(jié)點上到底怎么樣存儲?

Greenplum提供稱為“多態(tài)存儲”的靈活存儲方式。多態(tài)存儲可以根據(jù)數(shù)據(jù)熱度或者訪問模式的不同而使用不同的存儲方式。一張表的不同數(shù)據(jù)可以使用不同的物理存儲方式,如圖(6)。支持的存儲方式包含:

    行存儲:行存儲是傳統(tǒng)數(shù)據(jù)庫常用的存儲方式,特點是訪問比較快,多列更新比較容易。
    列存儲:列存儲按列保存,不同列的數(shù)據(jù)存儲在不同的地方(通常是不同文件中)。適合一次只訪問寬表中某幾個字段的情況。列存儲的另外一個優(yōu)勢是壓縮比高。
    外部表:數(shù)據(jù)保存在其他系統(tǒng)中例如HDFS,數(shù)據(jù)庫只保留元數(shù)據(jù)信息。

圖片描述

2.5 大規(guī)模并行數(shù)據(jù)加載

作為一個數(shù)據(jù)庫,一定會保存和處理數(shù)據(jù)。那數(shù)據(jù)來源于什么地方?Oracle這樣的數(shù)據(jù)庫里面的數(shù)據(jù)多是客戶生成的,譬如你銀行轉(zhuǎn)賬、淘寶訂單等。對于數(shù)據(jù)分析型的數(shù)據(jù)庫,其源數(shù)據(jù)通常是在其他系統(tǒng)中,而且數(shù)據(jù)量很大。這樣數(shù)據(jù)加載的能力就變得非常重要。Greenplum提供了非常好的數(shù)據(jù)加載方案,支持高速的加載各種數(shù)據(jù)源的不同數(shù)據(jù)格式的數(shù)據(jù),如圖(7)。

    并行數(shù)據(jù)加載:因為是并行數(shù)據(jù)加載,所以性能非常好。Greenplum有叫DCA的一體機產(chǎn)品,第一代DCA可以做到10TB/小時;第二代為16TB/小時。第三代很快就要發(fā)布了,速度會更快。
    數(shù)據(jù)源和數(shù)據(jù)格式:數(shù)據(jù)源支持Hadoop,文件系統(tǒng),數(shù)據(jù)庫,還有 ETL管理的數(shù)據(jù)。數(shù)據(jù)格式支持文本,CSV,Parquet,Avro等。

圖片描述
三. Greenplum核心組件

Greenplum 數(shù)據(jù)庫包括以下核心組件:

    解析器:主節(jié)點收到客戶端請求后,執(zhí)行認證操作。認證成功建立連接后,客戶端可以發(fā)送查詢給數(shù)據(jù)庫。解析器負責(zé)對收到的查詢SQL字符串進行詞法解析、語法解析,并生成語法樹。
    優(yōu)化器:優(yōu)化器對解析器的結(jié)果進行處理,從所有可能的查詢計劃中選擇一個最優(yōu)或者接近最優(yōu)的計劃,生成查詢計劃。查詢計劃描述了如何執(zhí)行一個查詢,通常以樹形結(jié)構(gòu)描述。Greenplum最新的優(yōu)化器叫 ORCA,關(guān)于 ORCA,可以從 ACM 論文中獲得詳細信息。(http://dl.acm.org/citation.cfm?i ... mp;CFTOKEN=89888184
    調(diào)度器(QD):調(diào)度器發(fā)送優(yōu)化后的查詢計劃給所有數(shù)據(jù)節(jié)點(Segments)上的執(zhí)行器(QE)。調(diào)度器負責(zé)任務(wù)的執(zhí)行,包括執(zhí)行器的創(chuàng)建、銷毀、錯誤處理、任務(wù)取消、狀態(tài)更新等。
    執(zhí)行器(QE):執(zhí)行器收到調(diào)度器發(fā)送的查詢計劃后,開始執(zhí)行自己負責(zé)的那部分計劃。典型的操作包括數(shù)據(jù)掃描、哈希關(guān)聯(lián)、排序、聚集等。
    Interconnect:負責(zé)集群中各個節(jié)點間的數(shù)據(jù)傳輸。
    系統(tǒng)表:系統(tǒng)表存儲和管理數(shù)據(jù)庫、表、字段的元數(shù)據(jù)。每個節(jié)點上都有相應(yīng)的拷貝。
    分布式事務(wù):主節(jié)點上的分布式事務(wù)管理器協(xié)調(diào)數(shù)據(jù)節(jié)點上事務(wù)的提交和回滾操作,由兩階段提交(2PC)實現(xiàn)。每個數(shù)據(jù)節(jié)點都有自己的事務(wù)日志,負責(zé)自己節(jié)點上的事務(wù)處理。

四、Greenplum開源

2015年3月份,Pivotal宣布了Greenplum的開源計劃,經(jīng)過6個月緊鑼密鼓的工作,于10月27號正式開源。官方網(wǎng)站為http://greenplum.org。許可證書使用Apache 2許可證。

Greenplum 開源社區(qū)提供了運行環(huán)境沙盒以及使用教程,里面包含了Greenplum數(shù)據(jù)庫的一些主要特性。從https://github.com/greenplum-db/gpdb-sandbox-tutorials 可以下載沙盒和教程。

有關(guān)Greenplum數(shù)據(jù)庫使用和開發(fā)的任何問題都可以去郵件列表討論:郵件列表有兩個:gpdb-dev@greenplum.orggpdb-user@greenplum.org

源代碼位于https://github.com/greenplum-db/gpdb,開源不到兩個月就有1187個收藏,256個fork,超過150個pull request,其中136個pull request 已經(jīng)關(guān)閉。貢獻者中除了包含Pivotal的員工外,還有來自全球(包括中國、美國、日本和歐洲)的社區(qū)開發(fā)人員。關(guān)于從源代碼編譯和安裝Greenplum數(shù)據(jù)庫,可以參考:http://gpdb.rocks/gpdb/2015/10/29/how-to-build-gpdb.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP