淺談ODS與DW的區別-數據項目實戰總結

淺談ODS與DW的區別-數據項目實戰總結

 

ODS 全稱operation data store 或者 operational data store,中文意思是操作型數據存儲(數據被操作產生的,例如電商交易數據 (客戶買東西訂單)  行業訂單 工單數據(客戶投訴數據) ),或者有的地方也叫運營數據倉儲

1、在業務系統和數據倉庫之間形成一個隔離層
 
一般的數據倉庫應用系統都具有非常複雜的數據來源,這些數據存放在不同的地理位置、不同的數據庫、不同的應用之中,從這些業務系統對數據進行抽取並不是一件容易的事。因此,ODS用於存放從業務系統直接抽取出來的數據,這些數據從數據結構、數據之間的邏輯關係上都與業務系統基本保持一致,因此在抽取過程中極大降低了數據轉化的複雜性,而主要關注數據抽取的接口、數據量大小、抽取方式等方面的問題。
 
2、轉移一部分業務系統細節查詢的功能
 
在數據倉庫建立之前,大量的報表、分析是由業務系統直接支持的(比如 市場部門要看昨天的經營分析情況 如果沒有數據倉庫系統 就只能直接對業務生產系統庫進行臨時各種需求的分析查詢),在一些比較複雜的報表生成過程中,對業務系統的運行產生相當大的壓力。ODS的數據從粒度、組織方式等各個方面都保持了與業務系統的一致,那麼原來由業務系統產生的報表、細節數據的查詢自然能夠從ODS中進行,從而降低業務系統的查詢壓力。

粒度 注:

對於一條操作型數據來說 有很多個屬性 以電信行業投訴工單爲例 ,有投訴時間 號碼歸屬地省 號碼歸屬地市 投訴號碼  用戶唯一標示 投訴類型 投訴內容等等。

最細粒度 意思就是 到用戶唯一id 的統計數據,即詳單數據

粗一點的粒度 即是不到用戶這麼細的統計數據 比如 到地市的統計數據 如 xx市 投訴用戶總數


3、完成數據倉庫中不能完成的一些功能
 
一般來說,帶有ODS的數據倉庫體系結構中,DW層所存儲的數據都是進行彙總過的數據,並不存儲每筆交易產生的細節數據,但是在某些特殊的應用中,可能需要對交易細節數據進行查詢,這時就需要把細節數據查詢的功能轉移到ODS來完成,而且ODS的數據模型按照面向主題的方式進行存儲,可以方便地支持多維分析(指可以根據多個維度彙總生成統計數據)等查詢功能。

多維分析舉例:還是以電信行業投訴工單爲例,時間 號碼歸屬地省市 投訴類型 這些都是常見的維度 ,可以統計一個月 某個省有多少工單數 或者 一天某個市 投訴寬帶慢(投訴類型)的工單有多少個,類似這些 就叫多維分析


在一個沒有ODS層的數據倉庫應用系統體系結構中,數據倉庫中存儲的數據粒度是根據需要而確定的,但一般來說,最爲細節的業務數據也是需要保留的,實際上也就相當於ODS,但與ODS所不同的是,這時的細節數據不是“當前、不斷變化的”數據,而是“歷史的,不再變化的”數據。

 

數據倉庫,是爲企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。它是單個數據存儲,出於分析性報告和決策支持目的而創建。 爲需要業務智能的企業,提供指導業務流程改進、監視時間、成本、質量以及控制

 

 

1、數據倉庫是面向主題的;操作型數據庫的數據組織面向事務處理任務,而數據倉庫中的數據是按照一定的主題域進行組織。主題是指用戶使用數據倉庫進行決策時所關心的重點方面,一個主題通常與多個操作型信息系統相關。
主題舉例:

移動某省經分系統 領導和市場部決策分析時關注的 幾大重點方面 :4G 終端 政企 渠道 寬帶等,各主題之間可能相互還有聯繫 ,且比如渠道這個主題 可能核和渠道管理系統 crm系統 計費系統 都想關,因爲需要從這些系統取數據


2、數據倉庫是集成的,數據倉庫的數據有來自於分散的操作型數據,將所需數據從原來的數據中抽取出
 數據倉庫的核心工具
來,進行加工與集成,統一與綜合之後才能進入數據倉庫;
數據倉庫中的數據是在對原有分散的數據庫數據抽取、清理的基礎上經過系統加工、彙總和整理得到的,必須消除源數據中的不一致性,以保證數據倉庫內的信息是關於整個企業的一致的全局信息。
 
數據倉庫的數據主要供企業決策分析之用,所涉及的數據操作主要是數據查詢,一旦某個數據進入數據倉庫以後,一般情況下將被長期保留,也就是數據倉庫中一般有大量的查詢操作,但修改和刪除操作很少,通常只需要定期的加載、刷新。
 
數據倉庫中的數據通常包含歷史信息,系統記錄了企業從過去某一時點(如開始應用數據倉庫的時點)到當前的各個階段的信息,通過這些信息,可以對企業的發展歷程和未來趨勢做出定量分析和預測。
 
3、數據倉庫是不可更新的,數據倉庫主要是爲決策分析提供數據,所涉及的操作主要是數據的查詢;
 
4、數據倉庫是隨時間而變化的,傳統的關係數據庫系統比較適合處理格式化的數據,能夠較好的滿足商業商務處理的需求。穩定的數據以只讀格式保存,且不隨時間改變。
 
5、彙總的。操作性數據映射成決策可用的格式。
 
6、大容量。時間序列數據集合通常都非常大。
 
7、非規範化的。Dw數據可以是而且經常是冗餘的。

      跟業務生產系統嚴格要求的數據不能冗餘的一致準確性不同  ,dw的數據經常是冗餘的 不同的表可能都有某個屬性信息,因爲dw表的數據通常都是很大量的 或者高度聚合過的,如果想取某個屬性 要通過表關聯 這樣的時間消耗是很大的 ,或者都是聚合過得表 無法通過關聯取得想要的指標
 
8、元數據。將描述數據的數據保存起來。

包括數據源的描述信息 和 自己庫、表的描述信息 。像源庫的ip信息 自己庫的ip信息 都屬於元數據信息,通常這些還挺重要 當ods涉及到數據共享的時候,還有比較重要的就是像一些字段的編碼 解釋 比如 是否智能機 0 1兩個值 性別等。或者客戶每月消費等級 1 代表1-100元 2 代表 100-150元。此類信息看着很簡單 但是實際做好元數據統一管理很重要。項目組曾經出現過 有人月初誤把一個是否智能機的元數據維表 的字段 0 1值改成了 Y N 。導致所有的涉及到的定時執行的存儲過程 用的 case when 來統計智能機和非智能機的數量 全部出問題 。最後結果是全體加班重新跑數據。

 
9、數據源。數據來自內部的和外部的非集成操作系統。

數據倉庫和ods的數據源通常都是多樣化 有db  文本 ws接口 消息隊列等

 
數據倉庫,是在數據庫已經大量存在的情況下,爲了進一步挖掘數據資源、爲了決策需要而產生的,它並不是所謂的“大型數據庫”。數據倉庫的方案建設的目的,是爲前端查詢和分析作爲基礎,由於有較大的冗餘,所以需要的存儲也較大。爲了更好地爲前端應用服務,數據倉庫往往有如下幾點特點:
 
1.效率足夠高。數據倉庫的分析數據一般分爲日、周、月、季、年等,可以看出,日爲週期的數據要求的效率最高,要求24小時甚至12小時內,客戶能看到昨天的數據分析。由於有的企業每日的數據量很大,設計不好的數據倉庫經常會出問題,延遲1-3日才能給出數據,顯然不行的。

2.數據質量。數據倉庫所提供的各種信息,肯定要準確的數據,但由於數據倉庫流程通常分爲多個步驟,包括數據清洗,裝載,查詢,展現等等,複雜的架構會更多層次,那麼由於數據源有髒數據或者代碼不嚴謹,都可以導致數據失真,客戶看到錯誤的信息就可能導致分析出錯誤的決策,造成損失,而不是效益。
 
3.擴展性。之所以有的大型數據倉庫系統架構設計複雜,是因爲考慮到了未來3-5年的擴展性,這樣的話,未來不用太快花錢去重建數據倉庫系統,就能很穩定運行。主要體現在數據建模的合理性,數據倉庫方案中多出一些中間層,使海量數據流有足夠的緩衝,不至於數據量大很多,就運行不起來了。
 
數據倉庫和ods的區別 還有一點是 ods基本只做數據層面的基礎分析,而數據倉庫會有涉及到業務模型的 需要依靠數據挖掘,比如某省移動之前在經分系統做的4g潛在用戶模型、快遞員模型 等。通過數據挖掘技術和業務分析 從全省用戶找出 特定的用戶羣 以便做精準和針對性的營銷。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章