我正在學習 Hadoop 并遇到了 HIVE。我了解到 HIVE 充當分析查詢的資料倉庫。
如果資料倉庫是多個資料源的聚合,那么企業為什么要使用多個資料源并聚合它們呢?為什么他們不能直接寫入資料倉庫,因為它會減少聚合和處理的開銷?
是因為如果所有用戶都從同一個資料倉庫讀取會產生開銷嗎?
我想了解如果我們擁有高度可擴展的資料倉庫,為什么還需要資料庫?
(僅在產生大量資料的大公司的情況下。因為我可以理解大多數公司甚至可以使用 2 個資料庫進行管理。)
uj5u.com熱心網友回復:
資料倉庫(DWH)是不同資料庫之上的一個更大的層,而資料庫是一個命名空間 存盤,用于存盤與某些 DWH 階段相對應的一些表/物件/程序。
分析 DWH 的最終目的是提供可用于不同分析/報告工具的分析資料集市:Tableu、QulickView 等
DWH 包含不同階段(資料庫)不同聚合的資料,例如 LZ - 存盤從不同來源加載的資料的著陸區,ODS - 運營資料存盤,將來自不同來源的資料組合成事實表和維度,清除,轉換,通常使用 3NF 和從不同來源豐富的一致維度。最后是 DM - 一個資料集市,其中聚合資料存盤在維度模型中:事實表(可以聚合)和在星形/雪花模式中使用的維度。也可以使用其他一些資料庫,例如用于中間資料處理的 STG。
DWH 不僅是由多個資料庫組成的存盤,它還是每個階段的資料加載、提取、轉換、通用架構和策略的 ETL 程序。
您決定 DWH 將包含哪些層以及應如何設計:使用自上而下的方法(從源系統開始)或自下而上的方法(從資料集市維度建模開始)或兩者兼而有之。
DWH 本身不聚合(處理)任何資料。對于每個步驟和物體,您創建一個 ETL 流程,該流程在不同階段(資料庫)之間加載、提取、轉換資料。
一致的維度(不同資料集市/事實表中使用的相同維度)用作 DWH 中的單一事實點。
例如,如果您User從不同的源系統(如 Salesforce、GoogleAnalytics 等)增量加載表,然后不同的 ETL 行程將資料加載到 LZ,然后另一個 ETL 行程將其合并并重復到 ODS 表中,然后另一個行程將其加載到DM 與 Transactions 資料一起進入月/日聚合 Transaction 資料集市,這是一個每日或每月聚合星型模式,以User表為維度。
還有另一個現代概念 - a data lake,它還包含半結構化或非結構化資料以及 3NF 和資料集市中的結構化資料,這允許資料工程師/資料挖掘者挖掘非結構化資料并進行分析,找到一些相關性并最終構建新的資料集市。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424063.html
