來自PostgresConf US 2018鑽石級贊助商的對話
不久前PostgresConf US 2018年度大會在美國澤西市成功舉辦。鑽石級贊助商 Pivotal 的資深首席軟體工程師,Heikki Linnakangas,負責主持Greenplum 峰會。下面我們與大家一起分享下記者與Heikki的對話,請他談談對Pivotal、Greenplum和Postgres的介紹和感受。
成為PostgreSQL提交者對你從事Greenplum的工作有何影響?
近些年來,我們一直努力將新版本的PostgreSQL整合進Greenplum,最近加入的是PostgreSQL 8.4。PostgreSQL 8.4最早是在2008年發布的,也是在那一年我成為了PostgreSQL項目的提交者。看到我之前的提交內容進入Greenplum的存儲庫,我感到很自豪。
需要注意的是,不論你被什麼捷徑所誘惑,這個捷徑最終反而會給你帶來麻煩。幸好,其他PostgreSQL提交者都是「火眼金睛」,PostgreSQL的提交歷史記錄非常乾淨,用起來很愉快。
你認為PostgreSQL和Greenplum在未來會有很多的合作嗎?
當然!隨著我們不斷地在Greenplum中融入更新版本的PostgreSQL,雙方的合作摩擦會越來越小。最近這幾年,PostgreSQL增加了很多基本的基礎架構,Greenplum可以藉助它們實現數據分布,例如分區和並行化。這減少了維護Greenplum的人力, 讓開發人員騰出時間處理其他工作。
我們在計劃Greenplum的新功能時,始終著眼於以相容於PostgreSQL的方式進行設計,如果合適的話,就首先在PostgreSQL社區中進行開發。讓更多人儘早看到代碼,可以改進代碼質量,因此這樣做有利於PostgreSQL社區,對Greenplum也有益。
你認為Greenplum的哪些地方值得PostgreSQL學習借鑒?PostgreSQL的哪些地方值得Greenplum學習借鑒呢?
Greenplum中的一些功能是PostgreSQL尚不具備的,因此PostgreSQL可以學習借鑒的地方很多。通常情況下,代碼並不是直接適用的,而且Greenplum做出的一些權衡取捨可能不同於PostgreSQL社區的期望。但不管怎樣,了解現有的實施對於激發靈感、吸取經驗教訓是非常有用的。
Pivotal有一套完善的流程,專門用來發布Greenplum次要版本、緊急錯誤修復等等。但從Greenplum 4 到Greenplum 5(後者是Greenplum的第一個開源版本),兩者之間有很大差距。對於Greenplum 5,我們必須重新學習如何發布主要版本。另一方面,在過去超過15年的時間裡,PostgreSQL 維持著一個非常可靠、穩定的發布流程,基本每年都發布主要版本,每個主要版本享受5年的支持。我們正在努力讓Greenplum也具備與此類似的可靠、穩定的發布日程表。
在推動Greenplum與PostgreSQL的代碼一致性時,遇到過哪些挑戰?
首先,我們花了很多時間清理Greenplum代碼庫。在整合PostgreSQL 8.3的過程中(這也是我們經歷的第一次主要版本升級),我們改進了多年積攢下來的數不清的PostgreSQL和Greenplum之間的代碼小差別。這些小的更改包括空格、注釋、變數名等等。它們中的大多數都具備一定的作用,卻妨礙了整合。
我們已經基本完成了這項清理工作,現在建立了一個完善的流程,用於合併主要的PostgreSQL版本。不過,每個版本都有自己的問題。以PostgreSQL 8.4的合併為例,PostgreSQL提供了窗口函數,我們必須根據PostgreSQL的實施來調整現有的Greenplum實施。
對於正在進行中的PostgreSQL 9.1合併,我們將在Greenplum中加入Foreign Data Wrappers。我們需要決定在MPP上下文中提供外部表有何作用。你只在主節點運行外部表嗎?這就很簡單,但這樣一來就不能再享受MPP提供的優勢。或者要讓每個數據段提取自己的外部數據切片嗎?這就需要擴展Foreign Data Wrapper API,而且我們的擴展方法必須與現有PostgreSQL數據封裝器的整個生態系統兼容。
下一年,對於兩個社區之間的合作,有沒有什麼具體的目標?
來自EnterpriseDB的開發者宣布,計劃為PostgreSQL v12開發一種新的Heap格式,名為「zheap」。這會解決很多與「清空」大表相關的問題。清空很耗時,如果數據多達上百個TB,更是如此。Greenplum使用名為Append-Optimized Tables的自定義存儲格式在很大程度上解決了這個問題。但我們更傾向於不用維護自定義存儲格式,而是集中精力讓Greenplum更好地處理MPP操作,比如對群集執行並行查詢。因此,我們會密切關注zheap的開發,並樂意提供幫助。
最希望保留PostgresConf US 2018中的哪些會議?
我希望我們可以保持傾聽Greenplum客戶的發言,了解他們如何使用這個產品、遇到了哪些問題。我最喜歡與用戶交流!因為想要了解DBA和應用開發人員面臨的日常問題並不容易。
我還認為通過峰會的舉辦可以招聘到優秀的技術人暈啊,結識很多新同事和未來的PostgreSQL開發人員!
最喜歡PostgresConf US的哪個環節?
我是第一次參加,非常好!我參加了很多面向PostgreSQL開發人員的會議,結識開發人員同行,暢談未來的功能和工程問題。我在會議上聽到更多DBA和用戶的心聲。
關於Pivotal
Pivotal的雲原生平台幫助世界很多知名品牌實現了軟體創新。與遍及全球的數百萬社區開發人員一起,Pivotal技術每天都影響到數十億的用戶。
Pivotal開發了全球首個基於開源Greenplum資料庫和Postgres的全功能、多雲、大規模並行處理(MPP)數據分析平台Pivotal Greenplum。Pivotal Greenplum可對多結構數據執行全面的綜合分析。Pivotal Greenplum由世界上最先進的基於成本的查詢優化器提供支持,可以針對海量數據提供無與倫比的分析查詢性能。
PostgreSQL是全球最佳的開源操作型(OLTP)資料庫,但很多PostgreSQL用戶不得不使用專有的分析資料庫(例如Oracle或Teradata)來處理數據倉庫和大數據工作負載。Greenplum資料庫提供了一條可靠的遷移路徑,客戶可以告別昂貴、專有的替代方案,加入Postgres生態系統。
Pivotal參加了Greenplum峰會,這是PostgresConf US 2018期間專為Greenplum資料庫舉辦的專場活動。活動形式多樣,既有出色的研討會,包括Greenplum的原聯合創始人Scott Yara發表的主旨演講,Greenplum的客戶GE Digital、摩根斯坦利和Conversant發表的演講以及會前培訓。也包含了眾多客戶案例研究、通過深度教程培養新技能、分享基於Postgres的數據分析領域最新湧現的最佳實踐、展望數據技術的未來。
如果您沒能參加本次會議,請隨我們的工程師一起來來深入了解下本次大會吧(Greenplum與PostgreSQL原生結合)。PostgresConf 2019,您將有機會在中國參加這一盛會,讓我們拭目以待!


※GemFire與Greenplum的最佳集成實踐之實施經驗談
TAG:Pivotal |