Data-Warehouse

有一個單獨的數據庫用於數據倉庫嗎?

  • August 23, 2016

我已經使用 PHP 和 MySQL 建構了一個典型的 Web 應用程序,供企業使用。

MySQL數據庫盡量採用3NF。

然而,隨著時間的推移,對數據的請求似乎更多地是針對數據倉庫,以便他們可以以任何他們想要的方式對數據進行切片和切塊。

因此,我拿起了一本書 Kimball Group 的第 3 版數據倉庫工具包。

作者在內部描述了 Kimball DW/BI 架構,並為 DW/BI 目的使用星型模式用於維度表和事實表。見下文。

在此處輸入圖像描述

我的問題是,由於我最熟悉 PHP 和 MySQL,我是否應該在與原始 3NF 數據庫不同的數據庫中擁有數據倉庫星型模式?

不會使用商業 BI 工具。任何看起來像 OLAP 或 BI 的東西都可能是我可以擴充自己的開源軟體。

請指教。

編輯

我的整個 3NF MySQL 數據庫目前大約是 20mb,到目前為止每月增長大約 1mb。

在回复您對我的評論的回复時,我提到了 PostgreSQL 在 DW 工作中的一些亮點 - 特別是CTEs(公用表表達式 - AKAWITH子句)和視窗函式(AKAOVER子句)。

如果在 MySQL 中沒有這些,您最終將編寫自己的 hack 來模擬這些(並且,沒有不尊重,但您的程式碼需要一段時間才能消除錯誤),而使用 PostgreSQL,您可以將它們開箱即用。PostgreSQL 也有更好的GIS支持(如果你需要的話)和更好JSON的——只在 MySQL 中是實驗性的。

看看這裡

PostgreSQL 傳統上專注於可靠性、數據完整性和以開發人員為中心的集成特性。它有一個極其複雜的查詢計劃器,能夠有效地連接相對大量的表。

另一方面,MySQL 傳統上專注於以讀取為主的 Web 應用程序,通常用 PHP 編寫,其中主要關注的是優化簡單查詢。

DW 類型的應用程序需要的前者遠多於後者。

另外,檢查一下- 兩個系統的最新比較。我對此的看法是 PostgreSQL 是兩者中更好的,尤其是。用於 DW 工作。

您可以仔細閱讀這些頁面以了解PostgreSQLMySQL功能。這裡有一定的“宗教戰爭”元素,我注意到你已經有 MySQL 經驗這對你來說可能是一個關鍵。祝你的 DW 項目一切順利。

$$ EDIT in response to OP’s comment $$ 我當然會敦促您為您OLTP和您的OLAP工作擁有單獨的數據庫 - 如果這在您的預算範圍內。OLTP並且OLAP根本不同,如果將它們混合使用,您將遇到很多衝突-我知道“經理”堅持在白天針對實時系統執行報告所帶來的痛苦-因此,如果我是您,我會將 MySQL 作為我的OLTP系統和 PostgreSQL 作為我的OLAP.

但無論您選擇何種配置,我都強烈建議您使用單獨的伺服器。

如果我被迫選擇一個數據庫並且只選擇一個,我會毫不猶豫地選擇 PostgreSQL。在第一次網際網路繁榮期間,MySQL 本質上是幸運的,並且在正確的時間和正確的地點使用了正確的軟體。恕我直言,PostgreSQL 在技術上無疑是優越的。

我對 MySQL 沒有惡意——我用過很多次(客戶!),發現如果你能忍受或解決它的怪癖,它的性能會非常好,並且有一些有趣的特性——尤其是可以做出的儲存引擎選擇(PostgreSQL 不能做到這一點)。

在 MySQL 的 DW 領域中,有兩個有趣的發展可能預示著未來在這個領域的好兆頭——它們是列儲存引擎——InfinidbInfobright。目前的問題是 Infinidb 似乎已經死了 - 即使程式碼仍然可用,安裝指南已經消失,ICE(Infobright 社區版)本質上是 crippleware。您可能希望評估企業版。

我敦促您設置一些測試案例 - 想像一下您將執行什麼樣的報告並在兩個系統上嘗試它們。特別考慮OLAP系統所需的複雜報告——我相信你會發現更豐富的 PostgreSQL SQL 語言是一個有說服力的論據。

引用自:https://dba.stackexchange.com/questions/90707