該文章參考自link. link.僅供學習使用
資料倉儲(datawarehouse),一般縮寫成dw、dwh。資料倉儲是乙個面向主題的(subject oriented)、整合的(integrate)、相對穩定的(non-volatile)、反映歷史變化(time variant)的資料集合,用於支援管理決策,資料分層是資料倉儲設計中十分重要的乙個環節,優秀的分層設計能夠讓整個資料體系更易理解和使用。
資料倉儲是在企業管理和決策中面向主題的、整合的、與時間相關的、不可修改的資料集合。——資料倉儲之父–bill inmon
為什麼要設計資料分層?
資料分層可以使資料能夠有秩序的流轉,資料的整個生命週期能夠清晰明了的被設計者和使用者感知到,直觀講就是如下的左圖這般層次清晰,依賴關係直觀
但是,大多數情況下,我們完成的資料體系卻是依賴複雜、層級混亂的。如下的右圖,在不知不覺的情況下,我們可能會做出一套表依賴結構混亂,甚至出現迴圈依賴的資料體系。
所以我們需要一套有效的資料組織和管理方法使我們的資料體系更有序,這就是資料分層
資料分層並不能解決所有的資料問題,但是,資料分層卻可以給我們帶來如下的好處:
清晰資料結構:每乙個資料分層都有它的作用域和職責,在使用表的時候能更方便地定位和理解
減少重複開發:規範資料分層,開發一些通用的中間層資料,能夠減少極大的重複計算
統一資料口徑:通過資料分層,提供統一的資料出口,統一對外輸出的資料口徑
複雜問題簡單化:將乙個複雜的任務分解成多個步驟來完成,每一層解決特定的問題
一、資料運營層:ods(operational data store)
「面向主題的」資料運營層,也叫ods層,是最接近資料來源中資料的一層,資料來源中的資料,經過抽取、洗淨、傳輸,也就說傳說中的 etl 之後,裝入本層。本層的資料,總體上大多是按照源頭業務系統的分類方式而分類的。
一般來講,為了考慮後續可能需要追溯資料問題,因此對於這一層就不建議做過多的資料清洗工作,原封不動地接入原始資料即可,至於資料的去噪、去重、異常值處理等過程可以放在後面的dwd層來做。
二、資料倉儲層:dw(data warehouse)
資料倉儲層是我們在做資料倉儲時要核心設計的一層,在這裡,從 ods 層中獲得的資料按照主題建立各種資料模型。dw層又細分為 dwd(data warehouse detail)層、dwm(data warehouse middle)層和dws(data warehouse servce)層。
資料明細層:dwd(data warehouse detail)
該層一般保持和ods層一樣的資料粒度,並且提供一定的資料質量保證。同時,為了提高資料明細層的易用性,該層會採用一些維度退化手法,將維度退化至事實表中,減少事實表和維表的關聯。
另外,在該層也會做一部分的資料聚合,將相同主題的資料匯集到一張表中,提高資料的可用性,後文會舉例說明。
資料中間層:dwm(data warehouse middle)
該層會在dwd層的資料基礎上,對資料做輕度的聚合操作,生成一系列的中間表,提公升公共指標的復用性,減少重複加工。
直觀來講,就是對通用的核心維度進行聚合操作,算出相應的統計指標。
資料服務層:dws(data warehouse servce)
又稱資料集市或寬表。按照業務劃分,如流量、訂單、使用者等,生成字段比較多的寬表,用於提供後續的業務查詢,olap分析,資料分發等。
一般來講,該層的資料表會相對比較少,一張表會涵蓋比較多的業務內容,由於其字段較多,因此一般也會稱該層的表為寬表。
在實際計算中,如果直接從dwd或者ods計算出寬表的統計指標,會存在計算量太大並且維度太少的問題,因此一般的做法是,在dwm層先計算出多個小的中間表,然後再拼接成一張dws的寬表。由於寬和窄的界限不易界定,也可以去掉dwm這一層,只留dws層,將所有的資料在放在dws亦可。
四、維表層(dimension)
最後補充乙個維表層,維表層主要包含兩部分資料:
高基數維度資料:一般是使用者資料表、商品資料表類似的資料表。資料量可能是千萬級或者上億級別。
低基數維度資料:一般是配置表,比如列舉值對應的中文含義,或者日期維表。資料量可能是個位數或者幾千幾萬。
聯機事務處理(oltp),也稱為面向交易的處理過程,其基本特徵是前台接收的使用者資料可以立即傳送到計算中心進行處理,並在很短的時間內給出處理結果,是對使用者操作快速響應的方式之一。
olap
聯機分析處理(olap)是一種軟體技術,它使分析人員能夠迅速、一致、互動地從各個方面觀察資訊,以達到深入理解資料的目的。它具有fasmi(fast analysis of shared multidimensional information),即共享多維資訊的快速分析的特徵。其中f是快速性(fast),指系統能在數秒內對使用者的多數分析要求做出反應;a是可分析性(analysis),指使用者無需程式設計就可以定義新的專門計算,將其作為分析的一部 分,並以使用者所希望的方式給出報告;m是多維性(multi—dimensional),指提供對資料分析的多維檢視和分析;i是資訊性(information),指能及時獲得資訊,並且管理大容量資訊
etl資料抽取(extract)、轉換(transform)、清洗(cleansing)、裝載(load)的過程。是構建資料倉儲的重要一環,使用者從資料來源抽取出所需的資料,經過資料清洗,最終按照預先定義好的資料倉儲模型,將資料載入到資料倉儲中去。
元資料(meta data)
關於資料倉儲的資料,指在資料倉儲建設過程中所產生的有關資料來源定義,目標定義,轉換規則等相關的關鍵資料。同時元資料還包含關於資料含義的商業資訊,所有這些資訊都應當妥善儲存,並很好地管理。為資料倉儲的發展和使用提供方便。
關於資料的資料,用於構造、維持、管理、和使用資料倉儲,在資料倉儲中尤為重要。
不同 olap 元件中的資料和應用程式的結構模型。元資料描述 oltp 資料庫中的表、資料倉儲和資料集市中的多維資料集這類物件,還記錄哪些應用程式引用不同的記錄塊。
級別級別是維度層次結構的乙個元素。級別描述了資料的層次結構,從資料的最高(彙總程度最大)級別直到最低(最詳細)級別。
多維 olap (molap):molap 儲存模式使得分割槽的聚合和其源資料的複本以多維結構儲存在分析伺服器計算機上。根據分割槽聚合的百分比和設計,molap 儲存模式為達到最快查詢響應時間提供了潛在可能性。總而言之,molap 更加適合於頻繁使用的多維資料集中的分割槽和對快速查詢響應的需要。
關係 olap (rolap):rolap 儲存模式使得分割槽的聚合儲存在關聯式資料庫的表(在分割槽資料來源中指定)中。但是,可為分割槽資料使用 rolap 儲存模式,而不在關聯式資料庫中建立聚合。
混合 olap (holap):holap 儲存模式結合了 molap 和 rolap 二者的特性。
資料倉儲分層
下面的內容是基於參考中的文件進行的二次讀書筆記。傳統行業的資料倉儲工程師,開始嘗試架構工程領域比較流行的er模型 維度模型方式,構建出乙個四層的模型架構 阿里在構建er時碰到了較大的挑戰,主要是業務快速發展,人員快速變化 業務知識功底的不夠全面,導致er模型產出困難。阿里得出了乙個結論 在不太成熟 ...
資料倉儲分層
資料倉儲更多代表的是一種對資料的管理和使用的方式,它是一整套包括了etl 排程 建模在內的完整的理論體系。現在所謂的大資料更多的是一種資料量級的增大和工具的上的更新。兩者並無衝突,相反,而是一種更好的結合。資料倉儲在構建過程中通常都需要進行分層處理。業務不同,分層的技術處理手段也不同。分層的主要原因...
資料倉儲分層
資料倉儲分層的主要原因是在管理資料的時候,能對資料有乙個更加清晰的掌控,詳細來講,主要有下面幾個原因 為什麼最低要分三層呢?在實際的生產環境中,資料倉儲的資料一般會有多個 資料可能比較亂,有很多的髒資料,資料的單位可能會不一樣等原因,我們要對資料進行分析或者對資料進行聚合等操作顯然不那麼方便,這時候...