Database-Design

如何建構分析型 BI 平台?

  • September 1, 2014

我正在為一家中型公司開發一個新的 BI 項目。目前沒有分析基礎設施,報告是在 Excel 中手動完成的。需要集成幾個不同的數據源(來自不同的系統,如 Billing)以執行報告和分析。其中一些是需要一些自定義轉換才能進入數據庫就緒形式的數據轉儲。這些有大量的列。這些需要處理,過濾所需的列並完成聚合等。通常每天產生大約 50 GB 的數據,並且每天將插入到現有表中。

我們發現像 Vertica 這樣的分析數據庫值得研究。我們之前沒有任何非 OLTP 數據庫的經驗。我的理解是 Vertica(和其他類似產品)經過讀取優化並且適合分析任務。我的問題是在載入和處理原始數據的初始階段如何公平?我們是否應該為此使用像 Oracle 這樣的傳統 OLTP 數據庫,然後將 Vertica 用於 Star Schema、維度建模類型的數據儲存?Vertica 是否適合 ETL 場景?

這種場景的典型架構如何?

關於您在 ETL 期間使用 Vertica 的問題,很少需要(儘管不是未知)為 ETL 使用不同類型的數據庫。除非您認為有特殊需要,否則我不會這樣做。由於與遺留數據源的互動,我唯一聽說過這樣做。儘管@Kermit 與 Vertica 合作並且會更熟悉該平台,但我認為沒有任何理由認為您需要另一個 DBMS 平台來實現 ETL。

Vertica 和其他系統不適合事務性應用程序的原因是它們使用的資料結構可以快速讀取和批量載入,但每次載入操作的成本很大。需要重建索引或其他此類操作的批處理 ETL 過程在這些系統上將不是問題。對於大容量 OLTP 平台,這些操作成本太高,但對於批處理 ETL 作業來說不會太慢。

電信公司和其他 VLDB 商店使用的常見架構是使用平面文件進行中間儲存,然後載入到數據庫中。Ab Initio 和 Ascential Datastage 是旨在以這種方式工作的工具,這種架構在電信公司中很常見。但是,ETL 工具往往不能很好地支持複雜的轉換,因此您很可能最終會在數據庫中進行一層數據操作。

所有 VLDB 平台都很昂貴,有些平台與專有硬體相關聯。準備好在您的伺服器上花大價錢。每天 50GB 的 3 年數據量約為 50TB,這正在進入您需要專門的工具包才能在這些數據量上表現良好的區域。

我將假設您已經有預算來實施一些數據倉庫解決方案。只是簡單地談論一下 Vertica;它是一個載入和讀取優化的平台,當然不是為 OLTP 設計的。

關於暫存和處理數據的部分需要更多的思考。Vertica 的設計初衷並不是將數據分階段、清理並投入生產。雖然它可以做到這一點,但如果您可以使用 ETL 工具或其他程序在數據到達 Vertica 之前執行處理,您將獲得最佳性能。

關於建築;圍繞業務需求有很多因素。顯然,實現任何類型的數據庫平台都將比使用 Excel 提前數年。但是,如果需要快速擷取實際事務並稍後將數據移動到 OLAP,您可能需要考慮使用 OLTP。一些組織將使用者立即需要的某些數據直接載入到 Vertica,而另一些組織則全天批量處理數據。

由於 Vertica 由 TB 授權,因此您需要仔細考慮實際需要多少數據進行分析。使用您的 50 GB 數據,您將需要大約 1.5 TB 來儲存一個月的數據。如果您想使用該平台,社區版最多允許在 3 個節點上儲存多達 1 TB 的原始數據。

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