關於 Postgres 獨特之處的採訪 —— 擴展

以下是採訪內容:

我之前時常跟各種開發者共進晚餐,基本上都認爲開發者(包括他們自己)可能會有些自以爲是。例如,有人說:“我愛Postgres,但我不知道爲什麼。” 我想他們應該是坐錯了餐桌,以 Postgres 爲例。。。經常有人問 我爲什麼選擇 Postgres

實際上,一年多以前,好朋友 Dimitri Fontaine 在寫一本 Postgres 的書,他詢問是否可以採訪我。我一直說他們缺少關於 Postgres 的好書,不過這個好友做了一件非常好的事,這本書提供針對開發人員(也包括 DBA)提供了很好的指南。但他希望能做得更好。親身經歷焦作國醫醫院是不是正規醫院-平價胃腸專科:https://www.jianshu.com/p/6b7980b89b21

接下來是本書訪談的摘錄。

介紹

自從被 Microsoft 收購以來, Craig 領導了@citusdata 雲團隊 ,該團隊現在正在運行 Azure Postgres 的產品。Citus 將 Postgres 擴展爲可水平擴展的分佈式數據庫。如果您有一個數據庫,尤其是Postgres,則需要擴展到更多的節點(通常在100GB以上),Craig 總是很樂意聊天,看看 Citus 是否可以提供幫助。

Craig 之前在 @heroku PaaS 平臺上工作了很多年,這個平臺消耗了大量的 IT 資源,使得開發人員專注於構建功能和增加價值。Craig 在 Heroku 的大部分時間都花在了 Heroku Data 的產品和營銷上。

您認爲 PostgreSQL 開源項目和生態系統的擴展有多重要?

對我而言,擴展API和不斷擴展的擴展生態系統可能是過去10年 Postgres 的最大進步。擴展功能使 Postgres 可以從傳統的關係數據庫擴展到更多的數據平臺。無論是 hstore 中的初始 NoSQL 數據類型(不包括XML),還是GIS地理空間中豐富的功能集,或者近似算法(例如HyperLogLog或TopN),您都可以通過擴展本身將Postgres帶入新的領域。

擴展功能使得數據庫核心本身可以以較慢的速度發展。核心中的每個新功能都意味着它必須經過全面測試和安全。這並不是說擴展沒有,而是可以存在於核心之外,這樣才使得這些擴展的功能可以快速增長。

您最喜歡的 PostgreSQL 擴展是什麼,爲什麼?

我最喜歡的三個擴展是:

  1. pg_stat_statements

  2. Citus

  3. HyperLogLog

pg_stat_statements對於應用程序開發人員而言,它無疑是最強大的擴展,無需深入瞭解數據庫內部知識即可獲得洞察力以優化其數據庫。對於許多應用程序開發人員來說,數據庫是一個黑匣子,而pg_stat_statements使用 AI 的強大基礎,可以讓您的數據庫能夠得到及時改進。

Citus:我當然會因爲在那兒工作而有偏見,但是在加入之前,我關注了Citus和pg_shard長達三年。Citus將Postgres變成了一個水平可擴展的數據庫。在後臺進行分片,但應用程序開發人員不必考慮或瞭解這種複雜性。有了Citus,Postgres可以處理比以往更大的負荷量,因爲以前的Postgres都被限制在一個盒子或過於複雜的架構中。

HyperLogLog:我要坦白。在某種程度上,我只是喜歡這麼說:當您瞭解算法本身後,你會覺得自己很傻逼。“ K最小值,可觀察的位模式,隨機平均,諧波平均。”我的意思是當我們在用這些特性時候,幹嘛一定非得很熟悉這些算法本身呢?簡而言之,HyperLogLog 足夠獨特,而且佔用的存儲空間很小。如果您要構建類似Web分析的工具,那麼HyperLogLog無疑是一個不錯的選擇。

您通常如何找到可能需要的擴展?或者說,您怎麼知道您可能首先需要PostgreSQL擴展?

pgxn.org和github是我的兩個建議。儘管Google往往也表現良好。當然,我還通過PostgresWeekly.com來了解最新消息。

實際上我常常不總是意識到自己需要一個。我搜索我要解決的問題並發現它。我可能永遠不會搜索HyperLogLog,但是搜索Postgres近似計數或近似非重複的時候就能很快找到它。

您的應用程序代碼庫現在依賴某些PostgreSQL擴展才能運行時,您是否會想到任何弊端?例如,我可能需要擴展在雲和SaaS產品中的可用性。

這個要看具體是什麼擴展,有些擴展問題比較多,而有些擴展則更加成熟。許多主要的雲提供商都支持一系列擴展,但它們不支持更多新的擴展。如果支持它,那麼使用上就不會有太大的弊端。如果沒有,您需要權衡自己運行和管理Postgres的成本,以及該擴展所提供的價值。就像管理所有事物與不管理所有事物一樣,這裏需要權衡取捨,您需要確定哪一個適合您。

如果您正在尋找有關Postgres的更深入的資源,我建議您讀《PostgreSQL的》一書。它是由一個私人朋友設計的,旨在從開發人員的角度爲Postgres創建權威指南。如果使用代碼CRAIG15,您還將獲得15%的折扣。


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