文章最後更新於 2022 年 10 月 8 日
一、整體結構
在具體分析數據倉庫之前先看下一下數據中心的整體架構以及數據流向:
- DB 是現有的數據來源(也稱各個系統的元數據),可以為MySql、SQLserver、文件日誌等,為數據倉庫提供數據來源的一般存在於現有的業務系統之中。
- ETL的是 Extract-Transform-Load 的縮寫,用來描述將數據從來源遷移到目標的幾個過程:
- Extract,數據抽取,也就是把數據從數據源讀出來。
- Transform,數據轉換,把原始數據轉換成期望的格式和維度。如果用在數據倉庫的場景下,Transform也包含數據清洗,清洗掉噪音數據。
- Load 數據加載,把處理後的數據加載到目標處,比如數據倉庫。
- ODS(Operational Data Store) 操作性數據,是作為資料庫到數據倉庫的一種過渡,ODS的數據結構一般與數據來源保持一致,便於減少ETL的工作複雜性,而且ODS的數據周期一般比較短。ODS的數據最終流入DW
- DW (Data Warehouse)數據倉庫,是數據的歸宿,這裡保持這所有的從ODS到來的數據,並長期保存,而且這些數據不會被修改。
- DM(Data Mart) 數據集市,為了特定的應用目的或應用範圍,而從數據倉庫中獨立出來的一部分數據,也可稱為部門數據或主題數據。面向應用。
二、數據倉庫
數據倉庫(Data Warehouse) 簡稱DW,顧名思義,數據倉庫是一個很大的數據存儲集合,出於企業的分析性報告和決策支持目的而創建,對多樣的業務數據進行篩選與整合。它為企業提供一定的BI(商業智能)能力,指導業務流程改進、監視時間、成本、質量以及控制。
數據倉庫存儲是一個面向主題(移動的用戶分析也可做為一個主題)的,反映歷史變化數據,用於支撐管理決策。
特徵:
- 效率足夠高,要對進入的數據快速處理。
- 數據質量高,數據倉庫是提供很多決策需要的數據支撐,DW的數據應該是唯一的具有權威性的數據,企業的所有系統只能從DW取數據,所以需要定期對DW裡面的數據進行質量審,保證DW裡邊數據的唯一、權威、準確性。
- 擴展性,企業業務擴展和降低企業建設數據倉庫的成本考慮
- 面向主題,數據倉庫中的數據是按照一定的主題域進行組織的,每一個主題對應一個宏觀的分析領域,數據倉庫排除對決策無用的數據,提供特定主題的簡明視圖。
- 數據倉庫主要提供查詢服務,並且需要查詢能夠及時響應
- DW的數據也是只允許增加不允許刪除和修改,數據倉庫主要是提供查詢服務,刪除和修改在分布式系統.
三、操作性數據
操作性數據(Operational Data Store) 簡稱ODS,作為資料庫到數據倉庫的一種過渡形式,與數據倉庫在物理結構上不同。ODS存儲的是當前的數據情況,給使用者提供當前的狀態,提供即時性的、操作性的、集成的全體信息的需求。ODS作為資料庫到數據倉庫的一種過渡形式,能提供高性能的響應時間,ODS設計採用混合設計方式。ODS中的數據是"實時值",而數據倉庫的數據卻是"歷史值",一般ODS中儲存的數據不超過一個月,而數據倉庫為10年或更多。
特徵:
- ODS直接存放從業務抽取過來的數據,這些數據從結構和數據上與業務系統保持一致,降低了數據抽取的複雜性。
- 轉移一部分業務系統的細節查詢功能,因為ODS存放的數據與業務系統相同,原來有業務系統產生的報表,現在可以從ODS中產生。
- 完成數據倉庫中不能完成的功能,ODS存放的是明細數據,數據倉庫DW或數據集市DM都存放的是匯聚數據,ODS提供查詢明細的功能。
- ODS數據只能增加不能修改,而且數據都是業務系統原樣拷貝,所以可能存在數據衝突的可能,解決辦法是為每一條數據增加一個時間版本來區分相同的數據。
四、數據集市
數據集市(Data Mart)簡稱DM,是為了特定的應用目的或應用範圍,而從數據倉庫中獨立出來的一部分數據,也可稱為部門數據或主題數據(subject area)。在數據倉庫的實施過程中往往可以從一個部門的數據集市著手,以後再用幾個數據集市組成一個完整的數據倉庫。需要注意的就是在實施不同的數據集市時,同一含義的欄位定義一定要相容,這樣再以後實施數據倉庫時才不會造成大麻煩。
數據集市,以某個業務應用為出發點而建設的局部DW,DW只關心自己需要的數據,不會全盤考慮企業整體的數據架構和應用,每個應用有自己的DM。
特徵:
- DM結構清晰,針對性強,擴展性好,因為DM僅僅是單對一個領域而建立,容易維護修改
- DM建設任務繁重,公司有眾多業務,每個業務單獨建立表。
- DM的建立更多的消耗存儲空間,單獨一個DM可能數據量不大,但是企業所有領域都建立DM這個數據量就會增加多倍。
參考:https://www.jianshu.com/p/3e1386d6052e
關於作者
- 我是Oscar (卡哥),前Yahoo Lead Engineer、高智商同好組織Mensa會員,超過十年的工作經驗,服務過Yahoo關鍵字廣告業務部門、電子商務及搜尋部門,喜歡彈吉他玩音樂,也喜歡投資美股、虛擬貨幣,樂於與人分享交流!
最新文章
- 2024 年 8 月 26 日Java如何在 Java Spring Boot 中輕鬆使用 @Cacheable 提高應用效能
- 2024 年 8 月 25 日技術文章新手必看:MongoDB 實用入門指南 – 從零開始學習 NoSQL 數據庫
- 2024 年 7 月 18 日未分類ChatGPT, Claude AI 進階提示詞技巧:掌握AI對話的藝術 (Prompt Engineering)
- 2024 年 6 月 11 日程式設計Java 中的 volatile
如果對文章內容有任何問題,歡迎在底下留言讓我知道。
如果你喜歡我的文章,可以按分享按鈕,讓更多的人看見我的文章。