從技術到工具再到落地,Pivotal多位技術專家詳解Greenplum

大資料頻道發表於2018-12-28

2018年12月15日-16日,2018 PostgreSQL中國技術大會在浙江吉利控股集團有限公司正式開幕。大會由中國PostgreSQL使用者會主辦,雲集了國內各界的PostgreSQL技術專家,筆者有幸在大會現場採訪到了Pivotal的多位技術專家。

提到Pivotal,大家或許並不陌生, 憑藉著其在Cloud Foundry、Spring、Cloud Native、DevOps、Microservices等領域的技術累積、對企業數字化轉型的洞察以及 Pivotal的Greenplum和GemFire在大資料和資料處理領域豐富多彩的發展歷程, 今天的Pivotal, 已經成長為雲原生時代的開源巨頭。談到這個全世界首個開源的多雲資料平臺,到2018年,Greenplum專案已走過13個年頭, 獲得了眾多大企業的贊助支援。在短短兩個小時的採訪中,Pivotal多位技術專家從Greenplum的發展歷程、相關工具以及實際的落地案例三個方面,為我們全面立體的呈現了一個Greenplum。

Greenplum發展歷程:從資料倉儲到大資料分析平臺再到企業整體資料管理平臺

十多年前,Greenplum在選型資料庫核心時選定了PostgreSQL 8.2.3,並之後很長一段時間都在沿用這個核心版本。為什麼會這樣選擇呢?首先,PostgreSQL 8.2.3是當時最新的版本。因為PostgreSQL是一個單機資料庫,Greenplum研發團隊基於PostgreSQL執行器做了支援MPP分散式架構的改動,在PostgreSQL原有的最佳化器基礎之上,構造了兩個版本的Greenplum資料庫並行最佳化器,傳統查詢最佳化器及ORCA查詢最佳化器,同時還增加了Dispatcher模組和Interconnect模組。

Greenplum 4的核心版本為PostgreSQL 8.2.3,Greenplum 5的核心版本為PostgreSQL 8.3.23,而Greenplum 6的核心版本為PostgreSQL 9.4 。為什麼從4到5只實現了一個版本的升級,而5到6卻實現了四個版本的升級呢?Greenplum在釋出5.0時,進行了大量的重構工作,儘管只升級了一個Postgres的核心版本,但將Greenplum和PostgreSQL的程式碼 全分開了,之後MPP和PostgreSQL互相不再是特別緊的耦合在一起,可以獨立升級。這也是為什麼從6.0開始Postgres核心版本升級得以突飛猛進的一個重要原因。而6.0選擇升級到9.4核心也是綜合考慮各方面的因素,包括使用者釋出時間,使用者需求等。核心版本升級以後,還有很重要的一部分工作是讓Postgres的各種新特性,例如FDW,流複製等功能,支援MPP架構。

Pivotal大中華區資料產品線業務總監程良在某次演講中稱,“今天,Greenplum的定位不僅是資料倉儲和大資料分析平臺,還是企業的整體資料管理平臺。”

如何理解這句話呢?Greenplum產品經理李陽為我們進行了更詳細的解答。Greenplum最早的定位是資料倉儲,其上的主要應用是BI報表類產品,使用者執行的是長時間的批處理任務。後來隨著對大資料分析需求的持續增加,傳統的SQL查詢逐漸滿足不了越來越多樣化的資料分析需求 ,Greenplum在此資料倉儲上增加了更多分析的功能,例如支援GIS做地理資訊分析,加入GPText做文字搜尋,利用Madlib支援機器學習等。當Hadoop興起時,Greenplum除了本身可以支援MapReduce,還可以透過外部表的方式將任務下放到Hadoop中執行;現在,Greenplum有了一個統一和外部資料互動的介面——Pivotal Extension Framework ,從而成為一個完整的大資料平臺。透過PXF介面,Greenplum可連線Hadoop HDFS、HBase、Hive、Oracle、DB2、MySQL、PostgresSQL等多種外部資料來源;透過Spark-Connector支援與Spark的資料連線;透過Kafka-Connector介面支援與Kafka訊息佇列的無縫連線;透過Gemfire-Connector實現與分散式記憶體資料的連線。

Greenplum相關工具:新一代Greenplum監控管理平臺Pivotal Greenplum Command Center

Greenplum Command Center (簡稱GPCC)是Greenplum原廠推出的圖形化運維管理工具,這款產品早在Pivotal收購Greenplum就存在了,當時承擔的位置是Greenplum圖形化介面。但是資料庫操作者,尤其是企業級資料倉儲的操作者更習慣於直接在命令列工具上去配置、運維、使用。不過,這對初學者不太友好,GPCC這個專案開發的初衷之一就是為了降低技術門檻。

資料庫運維與傳統企業IT運維工作相比,最大的難點就是SQL查詢的效能問題。一般來說,分析查詢問題的經典方式通常有3種,EXPLAIN、EXPLAIN ANALYZE和反覆調參對比,比較硬核的方式就是gdb除錯。但是這幾種方式都存在著難以精確定位問題、難以解決通用問題,難以自動化等缺點。

針對此,GPCC專案推出了一個新功能[HW3] ——視覺化線上查詢計劃,該功能具備以下特點:

  • 易讀性,利用資料視覺化技術,採用貼近資料庫執行計劃的樹狀結構,更直觀地表示節點之間的關係;

  • 實時性,視覺化執行計劃完全與資料庫內部執行同步,可以直觀的看到資料庫內部正在發生的處理;

  • 用開銷非常小的方式從資料庫內部各個元件(最佳化器、執行器)採集捕獲資訊;

  • 該功能的實現是透過收集以下三大類查詢特徵資訊:查詢生命週期資訊、靜態計劃樹資訊、執行器進度資訊。

GPCC有兩個很明顯的優勢就是直觀和實時,透過採集最佳化器和執行器的內部訊息,快速定位問題,適合於很多PostgreSQL和Greenplum的最佳化場景,例如PostgreSQL應用場景中的統計資訊缺失、使用HASH聚合和溢位檔案等,Greenplum應用場景中的資料傾斜和計算傾斜、大量資料Broadcast和未使用分割槽裁剪等。

目前,GPCC這款產品已經具備了視覺化查詢進度、告警等功能,下一步將深入挖掘資料,釋出更多智慧化運維的功能。

Greenplum案例解析:某客戶監察系統案例參考

前面我們從技術和工具兩個方面介紹了Greenplum,接下來我們結合一個實際案例來看一下Greenplum的應用——某客戶監察系統案例參考。

一.面臨問題&建設目標

目前大部分的資料平臺都會面臨以下三個問題,該客戶原有的資料平臺和監察系統也不例外:

  • 業務支撐,因為受限於傳統架構下,原有資料平臺不具備分散式計算和橫向擴充套件能力,效能和業務的可擴充套件性都有一定的侷限性。

  • 業務擴充套件性,隨著業務發展,資料量會越來越大,資料型別也會越來越多,過去更多的是結構化的資料,而現在的資料包括結構化、半結構化、非結構化;

  • 資料管控,也就是資料溫度。比如有一些訪問比較頻繁的資料,我們稱之為熱資料,有一些歸檔資料或者歷史資料,我們稱之為冷資料或者溫資料。在之前的資料平臺架構中往往是沒有資料管控的,且資料質量和資料清洗做得也不夠好。

針對以上問題,該客戶經過深入的調研和思考,設立了資料平臺建設總體目標,即使用大資料技術和平臺,對各業務領域的資料進行整理,構建基礎資料平臺和三大保障體系,並在此基礎上搭建統一的資料共享和分析平臺,為企業內外部各層次使用者提供資訊服務,資料分析和挖掘支援能力。

二.技術選型

經過長時間的前期溝通,最終該客戶採用了MPP資料庫+Hadoop的混搭架構,這也是金融行業在做大資料平臺時比較常見的一種組合方式。

為什麼大家會選擇MPP+Hadoop的混搭架構呢?其實之前很多人一提到大資料就是講Hadoop,大家都試圖用Hadoop去解決所有大資料的問題,但實際落地時就會發現有些場景Hadoop並不適合,比如低延時、高併發的場景。針對這種混合負載的場景,引入MPP來做低延時、高併發和迭代分析的場景是在合適不過了,不僅效率最高,而且整個專案實施的難度也會降低。

MPP產品那麼多,為什麼要選Greenplum呢?首先,很直觀也很明顯的一個原因,Greenplum確實是MPP產品中的領先者,它是最早提出分散式計算,並且具備壓縮、行列儲存、並行載入等功能;其次,Greenplum不只可以和Hadoop連線,還可以和Hadoop外面的資料庫Oracle、DB2、MongoDB等進行有效連線。這種連線方式有一個最大的好處就是可以直接在異構資料庫的外部表上做計算。原始資料可以直接使用Greenplum的計算引擎來做計算,計算完之後,可以把資料吐回去。另外,也可以拿資料和本地表做關聯。最後,Greenplum包含全文檢索以及機器學習庫,可以賦能到Hadoop中的資料。

三.部署實施&效能成本

該客戶的監察系統建設其實是分為兩個專案的,一個是諮詢類專案,一個是實施、上線、交付類專案。諮詢類前後大概花費了一年時間,主要是幫助使用者選擇技術路線,包括其中的功能驗證和產品驗證等等。交付類專案時間大概是三到五個月之間。

系統建設完成之後,生產系統會每個250毫秒就透過微批次的方式將資料加到庫中。從交易系統的響應時間來看,準實時系統在秒級,而實時系統在毫秒級。

在成本方面大致可以節省一半,成本減少主要是來自兩方面,硬體裝置和軟體成本。之前,該客戶使用的硬體裝置是小型機,而現在只需要基於X86的PC伺服器即可。軟體成本方面,之前採購Oracle和DB2資料庫的license是很昂貴的,但是現在有了更多選擇,例如Greenplum、Kafka等,這些軟體本身是開源產品,只需為服務付費即可。

今天Greenplum服務的客戶已經遍及我們每個人生活中的方方面面,在中國的電信、銀行、保險、證券、交通、物流、網際網路和製造業當中。越來越多的客戶開始從MPP專案開始著手,逐漸利用混搭的技術來構造未來的資料之湖。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545816/viewspace-2286767/,如需轉載,請註明出處,否則將追究法律責任。

相關文章