2011-03-15 119 views
9

在webapp(django)環境中,對於使用Greenplum而不是PostgreSQL有什麼爭議?Greenplum vs PostgreSQL

我的直覺反應是喜歡PostgreSQL的開源方法和龐大的知識庫。

我的配置(雖然我很想聽聽任何其他配置)是一箇中等規模的企業,擁有2個Web服務器和(目前)2個數據庫服務器。

需要對比的區域爲二進制data crunchingreplication中的節點數以及我個人的最愛:communitiy support和熟練的工程師支持。

使用Greenplum而不是PostgreSQL有什麼優點和缺點?

+0

這應該是'社區wiki'嗎? – 2011-03-15 11:57:37

+1

Greenplum現在開放源代碼:http://greenplum.org/ – 2016-02-24 02:12:07

回答

9

我不太瞭解Greenplum,除了快速瀏覽您發送的鏈接。數據倉庫與事務操作數據存儲不同。前者用於臨時查詢,統計分析,維度分析,大部分爲閱讀歷史數據。後者用於實時讀取/寫入運行數據。他們是免費的。

我猜你想要PostgreSQL。

誰在爲你推Greenplum?爲什麼?如果將它作爲替代方案呈現,我會深入挖掘並反駁論證。

+6

你說得對,數據倉庫與交易/運營數據存儲不同,但Greenplum碰巧是兩者兼而有之。 Greenplum的主要特點是它可以在單獨的物理服務器上並行存儲和計算PostgreSQL的多個實例(專有版本)。這爲事務性和分析性工作負載提供了好處。 GP還具有數據倉儲(即柱狀存儲和壓縮)的附加功能,但其設計目的是同時處理事務處理。但是,它可能仍然比PostgreSQL差。 – goodside 2011-07-06 18:11:47

2

我認爲Greenplum更好地利用了並行處理。不過,它基於PostgreSQL。

Greenplum有一個free community edition。你可以隨時在你自己的環境中下載和測試。

3

由於Greenplum利用並行處理,因爲主節點需要與基礎數據節點進行通信以檢索所有這些查詢的答案,所以會有運行大量微小讀取查詢的開銷。對於以毫秒爲單位的查詢,預計Greenplum的性能會降低一個數量級的性能。

3

如果您正在尋找一個基於PostgreSQL的數據倉庫解決方案,我也會看看GridSQL。它是一個跨多個PostgreSQL實例的並行化層,並且是免費且開源的。

就像在其他評論中提到的那樣,它在許多小型毫秒查詢中表現不佳,但對於長時間運行的查詢會大大幫助您。 GridSQL也不會包含像Greenplum那樣的柱狀存儲的DW優化,但您可以利用約束排除分區(例如:按日期範圍的子表)與並行性相結合來加快查詢結果。

您甚至可以在單個多核服務器上使用它,因爲PostgreSQL在處理查詢時將只使用單個核心。

1

如果任何數據處理需要超過一個小時的時間,那麼對於您添加的每個核心,都會獲得線性性能提升。對於需要較少時間來完成的任何事情來說,這並不值得。

7

Greenplum是PostgreSQL的MPP適配器。它針對大型數據集的倉儲和/或分析進行了優化,並且在交易環境中表現不佳。如果你需要一個大的DW環境,看看Greenplum。如果您需要OLTP或更小的DB大小(10TB以下),請查看PostgreSQL。

3

Greenplum是MPP分析(OLAP)DBMS。 PostgreSQL是一個OLTP DBMS。總的來說,市場上沒有一種解決方案可以同時適用於OLAP和OLTP,您可以在此找到我的想法here

WebApp後端將始終創建OLTP工作負載。由於Greenplum是一個分佈式系統,因此它在事務處理方面有很大的開銷,所以不要指望這會爲您提供超過500-600 TPS的數據。相比之下,Postgres可以通過正確的調整達到成千上萬的TPS。

相比之下,當您需要OLAP工作負載時,Postgres可以爲您提供只有一個主機處理,沒有動態分區清除的分區,不壓縮,沒有柱狀存儲。而Greenplum將能夠在羣集上並行處理您的數據。

所以,你正在尋找的解決方案是一個典型的數據倉庫情況下 - 使用高事務工作負載OLTP解決方案,將數據與ETL/ELT提取到數據倉庫,然後在它

運行復雜的數據運算查詢目前PostgreSQL和Greenplum都是開源產品,所以你可以自由選擇其中的任何一個,但是因爲PostgreSQL社區更大ATM