資料量越發龐大怎麼辦?新一代資料處理利器Greenplum來助攻
作者:李樹桓 個推資料研發工程師
前言:近年來,網際網路的快速發展積累了海量大資料,而在這些大資料的處理上,不同技術棧所具備的效能也有所不同,如何快速有效地處理這些龐大的資料倉,成為很多運營者為之苦惱的問題!隨著Greenplum的異軍突起,以往大資料倉儲所面臨的很多問題都得到了有效解決,Greenplum也成為新一代海量資料處理典型代表。本文結合個推資料研發工程師李樹桓在大資料領域的實踐,對處理龐大的資料量時,如何選擇有效的技術棧做了深入研究,探索出Greenplum是當前處理大資料倉較為高效穩定的利器。
一、Greenplum誕生的背景
時間回到2002年,那時整個網際網路資料量正處於快速增長期,一方面傳統資料庫難以滿足當前的計算需求,另一方面傳統資料庫大多基於SMP架構,這種架構最大的一個特點是共享所有資源,擴充套件效能差,因此面對日益增長的資料量,難以繼續支撐,需要一種具有分散式並行資料計算能力的資料庫,Greenplum正是在此背景下誕生了。
和傳統資料庫的SMP架構不同,Greenplum主要基於MPP架構,這是由多個伺服器通過節點網際網路絡連線而成的系統,每個節點只訪問自己的本地資源(包括記憶體、儲存等),是一種完全無共享(Share Nothing)結構,擴充套件能力較之前有明顯提升。
二、解讀 Greenplum架構
Greenplum主要由Master主節點和Interconnect網路層以及負責資料儲存和計算的多個節點共同組成。
Master上有主節點和從節點兩部分,兩者主要的功能是生成查詢計劃並派發,以及協調Segment平行計算,同時在Master上儲存著global system catalog,這個全域性目錄存著一組Greenplum資料庫系統本身所具有的後設資料的系統表。需要說明的是Master本身不參與資料互動,Greenplum所有的並行任務都是在Segment的資料節點上完成的,因此,Master節點不會成為資料庫的效能瓶頸。
中間的網路層Interconnect,主要負責並行查詢計劃生產和Dispatch分發以及協調節點上QE執行器的並行工作, 正是因為Interconnect的存在,Greenplum才能實現對同一個叢集中多個PostgreSQL例項的高效協同和平行計算。
整個結構圖下方負責資料儲存和計算的每個節點上又有多個例項,每個例項都是一個PostgreSQL資料庫,這些例項共享節點的IO和CPU。PostgreSQL在穩定性和效能方面較為先進,同時又有豐富的語法支援,滿足了Greenplum的功能需要。
三、瞭解Greenplum優勢
Greenplum之所以能成為處理海量大資料的有效工具,與其所具備的幾大優勢密不可分。
優勢一:計算效率提升
Greenplum的資料管道可以高效地將資料從磁碟傳輸到CPU,而目前市面上常用的計算引擎SPARK在傳輸資料時,則需要為每個併發查詢分配一個記憶體,這對大型資料集的查詢十分不利,而Greenplum所具備的實時查詢功能,能夠有效對大資料集進行計算。
優勢二:擴充套件效能增強
Greenplum基於的MPP架構,節點之間完全不共享,同時又可以達到並行查詢,因此在進行線性擴充套件時,資料規模可以達到PB級別。目前,Greenplum已經實現了開源,並且社群生態活躍,對於使用者而言,也會覺得更為可靠。
優勢三:功能性優化
Greenplum可以支援複雜的SQL查詢,大幅簡化了資料的操作和互動過程。而目前流行的HAWQ、Spark SQL、Impala等技術基本都基於MapReduce進行的優化,雖然部分也使用了SQL查詢,但是對SQL的支援十分有限。
四、Greenplum的容錯機制
Greenplum資料庫簡稱GPDB,它擁有豐富的特性,支援多級容錯機制和高可用。
1)主節點高可用:為了避免主節點單點故障,特別設定一個主節點的副本(稱為 Standby Master),通過流複製技術實現兩者同步複製,當主節點發生故障時,從節點可以成為主節點,從而完成使用者請求並協調查詢執行。
2)資料節點高可用:每個資料節點都可以配備一個映象,它們之間通過檔案操作級別的同步來實現資料的同步複製(稱為filerep技術)。故障檢測程式(ftsprobe)會定期傳送心跳給各個資料節點,當某個節點發生故障時,GPDB會自動進行故障切換。
3)網路高可用:為了避免網路的單點故障,每個主機會配置多個網口,並使用多個交換機,避免網路故障時造成整個伺服器不可用。
同時,GPDB具有圖形化的效能監控功能,基於此功能,使用者可以確定資料庫當前的執行情況和歷史查詢資訊,同時跟蹤系統使用情況和資源資訊。
五、 Greenplum在業務場景中的應用
個推在大資料領域深耕多年,在處理龐大的資料倉的過程中,也在不斷進行優化和更新技術棧,在進行技術選型時,針對不同的技術棧做了如下對比:
總得來說,Greenplum幫助開發者有效解決了處理資料庫時遇到的一些難點,比如跨天去重、使用者自定義維度、複雜的SQL查詢等問題,同時,也方便開發者直接在原始資料上進行實時查詢,減少了資料聚合過程中的遺失,當然,強大的Greenplum仍存在著一些問題需要去完善,例如在節點擴充套件的過程中後設資料的管理問題,分散式資料庫在擴充套件節點時會帶來資料一致性,擴充套件的過程中有時會出現後設資料混亂的情況等等,好在Greenplum有很多優秀的運維工具,能夠幫我們在發生問題及時進行排查,更好的保障業務的穩定性。但是,儘管Greenplum在處理大資料方面的優勢比較明顯,對開發者來說,還是要根據自身需求選擇相應的技術棧。
相關文章
- 流資料處理利器
- 大資料量處理實踐方案整理大資料
- Salesforce 大資料量處理篇(二)IndexSalesforce大資料Index
- laravel 處理mongodb大資料量對比方法LaravelMongoDB大資料
- 大資料量報表展現慢容易卡死,怎麼辦?大資料
- 大資料分析為啥越來越重要大資料
- 資料預處理利器 Amazon Glue DataBrew
- 大資料處理過程是怎樣大資料
- redis資料丟失你怎麼處理?Redis
- 海量資料處理利器 Roaring BitMap 原理介紹
- 大資料常用處理框架大資料框架
- Linux資料夾執行許可權不夠怎麼辦?如何處理?Linux
- 網站以資料異常稽核處理賬號提不了怎麼辦?網站
- 大資料的處理是怎樣的過程大資料
- 產品經理為什麼越來越不值錢?不懂資料,只能尷尬退場
- 剖析大資料平臺的資料處理大資料
- java大資料處理:如何使用Java技術實現高效的大資料處理Java大資料
- 資料族群分析處理利器:領存FT 2000+ 6U VPX 高效能資料處理刀片
- 智慧駕駛資料後處理分析利器—INTEWORK-VDA
- [翻譯]map和reduce,處理資料結構的利器資料結構
- 大資料處理的基本流程大資料
- Python資料處理(二):處理 Excel 資料PythonExcel
- 大資料學習之Hadoop如何高效處理大資料大資料Hadoop
- 輕鬆處理增值稅發票資料的利器——增值稅發票識別 APIAPI
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 阿里巴巴資深大資料工程師:大資料處理實踐阿里大資料工程師
- 資料處理
- 高併發,大資料量系統的資料結構優化思路大資料資料結構優化
- 大資料處理系統有哪些大資料
- 大資料處理平臺都有哪些?大資料
- 海量資料的併發處理
- MapReduce中對大資料處理最合適的資料格式是什麼?大資料
- 匯出資料量大的報表記憶體溢位怎麼辦?記憶體溢位
- 資料處理利器python與scala物件導向對比分析2-大資料ML樣本集案例實戰Python物件大資料
- 故障分析 | Greenplum Segment 故障處理
- 新一代資料分析利器:Google Dremel原理分析KLGoREM
- 報表連 hive,資料量比較大,怎麼分頁查詢?Hive
- 支付類系統資料處理和資料中臺的資料處理方式有什麼不同?