Greenplum助力AI科學計算

對數據庫行業瞭解的小夥伴都知道,Greenplum是一款有着豐富特性和擴展的數據庫產品。但實際上,Greenplum 早已不再是一個單純的”數據庫”,我們的目標是將其打造成一個強大的大數據平臺,滿足用戶的全方位的分析需求。

Greenplum是一款可以大規模橫向擴展(MPP架構)的並行數據庫,以PostgreSQL爲內核,運行標準的SQL語句,能夠很好的支持ACID特性。Greenplum提供了更豐富的特性,種類繁多的擴展使其滿足各行各業的庫內數據分析需求和複雜任務。此外,Greenplum可以靈活的將其部署在任何本地或者任意的雲環境當中。

Greenplum自開源以來陸續正式發佈了兩個大的版本:5版本和6版本,分別使用了postgres內核8.3和9.4。即將發佈的Greenplum 7將基於PG12, 內核升級工作我們已經完成,現在正在進行打磨和清理工作,把它打造一個性能優異的穩定版本。選擇PostgresSQL作爲內核,使Greenplum可以完全集成兩個龐大社區的集體智慧,打造出更優異的產品。Greenplum原生支持的特性就已經遠遠多於很多新生產品。

要想把Greenplum打造爲一個強大的數據庫分析平臺,需要把數據全部聯通,Greenplum的數據聯邦使這一切成爲了可能

Greenplum提供了豐富的數據接口,可以方便的直接讀取或者寫入結構化和非結構化數據,並提供並行的提取和加載外部數據來對大數據分析場景下的任務進行了優化。外部數據可以從任意其他的服務來獲取,例如雲存儲,其他的數據庫等等。這裏我們有兩個重量級的擴展組件,一個是PXF,通過外表實現了簡易的接口,並行的操作外部數據。另外一個就是GPSS,提供kafka連接器,可以流式的進行數據處理工作。此外,Greenplum提供了豐富的文件格式支持。

另一個數據聯邦的重要新特性是用戶可以在多個Greenplum集羣部署,實現單集羣查詢其他集羣的數據。

這麼做有以下幾個好處:

  • 避免數據複製
  • 公司部門和用例之間高度隔離
  • 通過創建集羣到集羣的連接來提高數據承載量和併發的可擴展性

Greenplum在查詢優化階段實現多種優化,通過感知到對端集羣的配置和數據的統計信息,可以儘可能的將對端集羣的查詢推到對端集羣並行執行,也可以將連接和謂詞儘可能的下推到對端集羣執行,來減少數據在兩個集羣之間的傳輸。

Greenplum提供並開源了Madlib這個基於SQL的數據庫內置的可擴展的機器學習庫。很多小夥伴對python上的各種AI庫較爲熟悉,Madlib實現了類似的功能,而且提供了SQL的接口,也就是說,用戶可以用select + 函數名來調用這個庫。這就意味着,所有的數據調用和計算都在Database內完成而不需要數據的導入導出。由於應用在大規模並行處理的數據庫內,它的可擴展性也非常好,能夠處理較大量級的數據。

Madlib具有強大的數據分析能力。圖分析也是它的專長。隨着各行各業數據化轉型的推進,大量文本信息被收集起來等待處理。因此對於文本數據,Greenplum通過GPText這一組件,提供了文本數據的提取,索引,檢索和自然語言處理的能力。通過和Madlib的聯合,Greenplum還可以對文本數據進行聚類,情感分析等處理。

除了擴展組件之外,Greenplum還提供了數據分析的語言擴展。Greenplum原生的有SQL標準的UDF,UDA支持。擴展的語言包括pl/pyhton、 R、 Perl、 java、 c、 c++等。爲了安全性,Greenplum對這些語言支持容器化,使其運行在容器中。對於R語言,Greenplum還額外封裝了GreenplumR庫。使用這些擴展語言,用戶無需額外學習數據庫的知識,對於數據科學家來說無需額外的負擔。

 Greenplum還提供了Spark鏈接器,方便使用Spark的用戶處理庫內數據Spark 代碼中引用 Greenplum 數據源。Spark 和 Greenplum 都是多節點並行引擎,通過網絡高速並行傳輸數據。從Greenplum直接加載數據到Spark進行處理,處理之後,將結果集從Spark寫入Greenplum以實現數據持久化,無需將數據導出和複製到位於 Greenplum 之外的文件。

下面給大家介紹下Greenplum的雲戰略。我們的目標是使客戶可以在任意適合的環境部署 Greenplum,來提供我們的數據分析服務。目前 Greenplum 支持bare-metal,私有云和公有云的部署,後面我們會深度基於VMware的基礎設施,提供更高效實用的方案。

雲上的部署更能解決很多在實體機部署中的種種痛點。在雲上環境,我們離不開數據的安全性。因此我們正在做透明加密這個新特性來做到:

  1. 防止數據中心操作員訪問磁盤上的數據,
  2. 防止單個密鑰丟失危及所有數據 

在實現上,我們將提供

  1. 磁盤上的表文件、系統文件的加密
  2. 主密鑰將存儲在外部 KMS 服務器上。
  3. 對象密鑰將存儲在 GPDB Master 上
  4. 多級密鑰層次結構
  5. 支持密鑰輪換

(以最終發佈爲準)

雲環境的資源和查詢的管理監控分析也是很重要的,在擴展組件Greenplum Comman Center的新特性中,將添加更豐富的資源和查詢管理監控的新特性。

我們正在與VMware的VSphere進行深度的結合,提供基於OVA的部署方案。來實現自動部署,減少運維。使得部署升級Greenplum更加的安全便捷。

作爲一款開源產品,Greenplum的開源版可以供大家免費使用、學習和了解其設計思路以及功能實現的具體細節,並對它進行二次開發。歡迎大家參與到我們的社區來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章