海量資料處理利器greenplum 初識

2022-02-01 01:45:36 字數 2154 閱讀 2238

如果想在資料倉儲中快速查詢結果,可以使用greenplum。

greenplum資料庫也簡稱gpdb。它擁有豐富的特性:

第一,完善的標準支援:gpdb完全支援ansi sql 2008標準和sql olap 2003 擴充套件;從應用程式設計介面上講,它支援odbc和jdbc。完善的標準支援使得系統開發、維護和管理都大為方便。而現在的 nosql,newsql和hadoop 對 sql 的支援都不完善,不同的系統需要單獨開發和管理,且移植性不好。

第二,支援分布式事務,支援acid。保證資料的強一致性。

第三,做為分布式資料庫,擁有良好的線性擴充套件能力。在國內外使用者生產環境中,具有上百個物理節點的gpdb集群都有很多案例。

第四,gpdb是企業級資料庫產品,全球有上千個集群在不同客戶的生產環境執行。這些集群為全球很多大的金融、**、物流、零售等公司的關鍵業務提供服務。

第五,gpdb是greenplum(現在的pivotal)公司十多年研發投入的結果。gpdb基於postgresql 8.2,postgresql 8.2有大約80萬行源**,而gpdb現在有130萬行原始碼。相比postgresql 8.2,增加了約50萬行的源**。

第六,greenplum有很多合作夥伴,gpdb有完善的生態系統,可以與很多企業級產品整合,譬如sas,cognos,informatic,tableau等;也可以很多種開源軟體整合,譬如pentaho,talend 等。

greenplum最早是在10多年前(大約在2023年)出現的,基本上和hadoop是同一時期(hadoop 約是2023年前後,早期的nutch可追溯到2023年)。當時的背景是:

下圖就是gfs的架構

greenplum的總體架構如下:

資料庫由master severs和segment severs通過interconnect互聯組成。

master主機負責:建立與客戶端的連線和管理;sql的解析並形成執行計畫;執行計畫向segment的分發收集segment的執行結果;master不儲存業務資料,只儲存資料字典。 

segment主機負責:業務資料的儲存和訪問;使用者查詢sql的執行。

greenplum使用mpp架構。

基本體系架構

master節點,可以做成高可用的架構

master node高可用,類似於hadoop的namenode和second namenode,實現主備的高可用。

segments節點

對於資料的裝載和效能監控。

並行備份和恢復。

資料訪問流程,資料分布到不同顏色的節點上

查詢流程分為查詢建立和查詢分發,計算後將結果返回。

對於儲存,將儲存的內容分布到各個結點上。

對於資料的分布,分為hash分布和隨機分布兩種。

均勻分布的情況:

gpdb從開始設計的時候就被定義成資料倉儲,如果是olap的應用,可以嘗試使用gpdb。

海量資料處理

1 有一千萬條簡訊,有重複,以文字檔案的形式儲存,一行一條,有 重複。請用5分鐘時間,找出重複出現最多的前10條。方法1 可以用雜湊表的方法對1千萬條分成若干組進行邊掃瞄邊建雜湊表。第一次掃瞄,取首位元組,尾位元組,中間隨便兩位元組作為hash code,插入到hash table中。並記錄其位址和...

海量資料處理

給定a b兩個檔案,各存放50億個url,每個url各占用64位元組,記憶體限制是4g,如何找出a b檔案共同的url?答案 可以估計每個檔案的大小為5g 64 300g,遠大於4g。所以不可能將其完全載入到記憶體中處理。考慮採取分而治之的方法。遍歷檔案a,對每個url求取hash url 1000...

海量資料處理

分而治之 hash對映 hash統計 堆 快速 歸併排序 300萬個查詢字串中統計最熱門的10個查詢。針對此類典型的top k問題,採取的對策往往是 hashmap 堆。hash統計 先對這批海量資料預處理。具體方法是 維護乙個key為query字串,value為該query出現次數的hashtab...