數據倉庫
數據倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的Integrate)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)
的數據集合,用于支持管理決策。
數據倉庫是在企業管理和決策中面向主題的、集成的、與時間相關的、不可修改的數據集合。——數據倉庫之父--Bill Inmon
數據倉庫基本特性
面向主題性
面向主題性表示了數據倉庫中數據組織的基本原則,數據倉庫中的所有數據都是圍繞著某一主題組織的。
確定主題以后,需要確定主題應該包含的數據。
不同的主題之間可能會出現相互重疊的信息。
主題在數據倉庫中可以用多維數據庫方式進行存儲。
主題的劃分中,必須保證每一個主題的獨立性。
一個主題領域的表來源于多個操作型應用(如:客戶主題,來源于:定單處理;應收帳目;應付帳目;…);
典型的主題領域:客戶;產品;交易;帳目;
主題領域以一組相關的表來具體實現;
相關的表通過公共的鍵碼聯系起來(如:顧客標識號Customer ID);
每個鍵碼都有時間元素(從日期到日期;每月累積;單獨日期…);
主題內數據可以存儲在不同介質上(綜合級,細節級,多粒度);
數據集成性
根據決策分析的要求,將分散于各處的源數據進行抽取、篩選、清理、綜合等工作,最終集成到數據倉庫中。
數據的時變性
數據應該隨著時間的推移而發生變化,不斷地生成主題的新快照。
數據的非易失性
數據的相對穩定性。
數據倉庫中的數據只進行刷新,從不進行更新處理。
反映歷史變化。
商務智能
簡單定義:綜合企業所有沉淀下來的信息,用科學的分析方法,為企業領導提供科學決策信息的過程。
完整定義:基于數據倉庫技術的決策支持系統(DSS)。它 以數據倉庫(DW)技術為基礎,通過抽取、轉換和清洗將分散在企業各處的數據整合在一起,轉化為信息;進而以聯機分析處理(OLAP)工具、數據挖掘(DM)工具、報表工具為手段將信息提升為知識;最后運用可視化技術以快捷直觀的方式將探察分析結果呈現給最終用戶,為管理決策層提供量化依據的過程。
數據挖掘
數據挖掘使您得以定義包含分組和預測規則的模型,以便應用于關系數據庫或多維 OLAP 數據集中的數據。之后,這些預測模型便可用于自動執行復雜的數據分析,以找出幫助識別新機會并選擇有獲勝把握的機會的趨勢。
聯機事務處理(OLTP)
OLTP系統是設計用來允許高并發性的,這樣很多用戶就能夠訪問同一個數據源并進行所需的處理。
OLTP系統是面向在數據庫上進行事務處理的理念的。而事務則進一步蘊含著發生在表中數據上的受控的變更,這些變更包括在商務運作過程中發生的插入、更新和刪除操作。通常,一個OLTP系統將會有大量的客戶端應用程序通過各種各樣的方式(插入、更新、刪除--實際上可以是任何操作)訪問數據庫以查詢一小塊信息。
OLTP系統的實例包括數據輸入程序,如銀行處理、訂票、聯機銷售和庫存管理系統。
聯機分析處理(OLAP)
聯機分析處理(或OLAP)是一種廣義上的決策支持系統(DSS),或者最近越來越流行的商業智能(BI)。BI系統的目標是分析海量數據,然后以很多不同的方式(包括每天、每周、每季和年度報告)生成小結和總結以把精力高度集中在記分卡和儀表盤上,它們通常用于幫助那些準備好根據這些數據采取一定的措施的特定用戶來獲取競爭優勢。
一旦數據進入數據倉庫之后就很少會發生變化。數據被保存在那里用于查詢和生成報表,以便幫助決策者規劃企業的未來。它不需要關心插入、更新和刪除操作。因此與高度規范的事務數據庫不同,在這種情況下通常會使用所謂的維度數據庫 (dimensional database),它將遵循特定的結構或模式。
維度數據庫可以用來構建數據立方體,數據立方體是數據的多維表示,用來方便聯機業務分析和提高查詢性能。立方體中的每一維都表示業務數據中的一個不同的分析類別。
維度數據庫
在OLTP系統中進行復雜查詢存在一些固有的問題,對這些問題的解決方案是構建一個單獨的數據庫來更簡潔地表示業務事實(fact)。這個數據庫的結構不是關系型的,相反,它是維度化的。
ETL
數據抽取(Extract)、轉換(Transform)、清洗(Cleansing)、裝載(Load)的過程。是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。
元數據(Meta Data)
關于數據倉庫的數據,指在數據倉庫建設過程中所產生的有關數據源定義,目標定義,轉換規則等相關的關鍵數據。同時元數據還包含關于數據含義的商業信息,所有這些信息都應當妥善保存,并很好地管理。為數據倉庫的發展和使用提供方便。
關于數據的數據,用于構造、維持、管理、和使用數據倉庫,在數據倉庫中尤為重要。
不同 OLAP 組件中的數據和應用程序的結構模型。元數據描述 OLTP 數據庫中的表、數據倉庫和數據集市中的多維數據集這類對象,還記錄哪些應用程序引用不同的記錄塊。
數據集市(Data mart)
** **數據集市 -- 小型的,面向部門或工作組級數據倉庫。
即”小數據倉庫”。如果說數據倉庫是建立在企業級的數據模型之上的話。那么數據集市就是企業級數據倉庫的一個子集,他主要面向部門級業務,并且只是面向某個特定的主題。數據集市可以在一定程度上緩解訪問數據倉庫的瓶頸。
ODS
Operation Data Store,操作數據存儲 — ODS是能支持企業日常的全局應用的數據集合,是不同于DB的一種新的數據環境, 是DW 擴展后得到的一個混合形式。四個基本特點:面向主題的(Subject -Oriented)、集成的、可變的、 當前或接近當前的。
主題(SUBJECT)
是一個在較高層次將數據歸類的標準,每一個主題對應一個宏觀的分析領域,針對具體決策需求可細化為多個主題表,具體來說就是確定決策涉及的范圍和所要解決的問題。
多維數據集
多維數據集是聯機分析處理 (OLAP) 中的主要對象,是一項可對數據倉庫中的數據進行快速訪問的技術。多維數據集是一個數據集合,通常從數據倉庫的子集構造,并組織和匯總成一個由一組維度和度量值定義的多維結構。
維度(DIMENSION)
是人們觀察數據的特定角度,是考慮問題時的一類屬性,屬性集合構成一個維(時間維、地理維等)。
是多維數據集的結構性特性。它們是事實數據表中用來描述數據的分類的有組織層次結構(級別)
。這些分類和級別描述了一些相似的成員集合,用戶將基于這些成員集合進行分析。
這詞,英國著名物理學家史蒂芬·霍金教授有這樣的解釋:這就像一根頭發,遠看是一維的線,在放大鏡下,它確實是三維的;如果面對時空,如果有足夠高倍的放大鏡的話,也應該能揭示出其它可能存在的4維、5維空間,直至11維空間。因此,維度是指一種視角,而不是一個固定的數字;是一個判斷、說明、評價和確定一個事物的多方位、多角度、多層次的條件和概念
事實表
每個數據倉庫都包含一個或者多個事實數據表。事實數據表可能包含業務銷售數據,如現金登記事務
所產生的數據,事實數據表通常包含大量的行。事實數據表的主要特點是包含數字數據(事實),并且這些數字信息可以匯總,以提供有關單位作為歷史的數據,每個事實數據表包含一個由多個部分組成的索引,該索引包含作為外鍵的相關性緯度表的主鍵,而維度表包含事實記錄的特性。事實數據表不應該包含描述性的信息,也不應該包含除數字度量字段及使事實與緯度表中對應項的相關索引字段之外的任何數據。
包含在事實數據表中的“度量值”有兩中:一種是可以累計的度量值,另一種是非累計的度量值。最有用的度量值是可累計的度量值,其累計起來的數字是非常有意義的。用戶可以通過累計度量值獲得匯總信息,例如。可以匯總具體時間段內一組商店的特定商品的銷售情況。非累計的度量值也可以用于事實數據表,單匯總結果一般是沒有意義的,例如,在一座大廈的不同位置測量溫度時,如果將大廈中所有不同位置的溫度累加是沒有意義的,但是求平均值是有意義的。
一般來說,一個事實數據表都要和一個或多個緯度表相關聯,用戶在利用事實數據表創建多維數據集時,可以使用一個或多個維度表。
從用途的不同來說,事實表可以分為三類,分別是原子事實表,聚集事實表和合并事實表。
原子事實表(Atom Fact Table)是保存最細粒度數據的事實表,也是數據倉庫中保存原子信息的場所。
聚集事實表(Aggregated Fact Table)是原子事實表上的匯總數據,也稱為匯總事實表。即新建立一個事實表,它的維度表是比原維度表要少,或者某些維度表是原維度表的子集,如用月份維度表代替日期維度表;事實數據是相應事實的匯總,即求和或求平均值等。在做數據遷移時,當相關的維度數據和事實數據發生變化時,聚集事實表需要做相應的刷新。物化視圖是實現聚集事實表的一種有效方式,可以設定刷新方式,具體功能由DBMS來實現。
合并事實表(Consolidated Fact Table)是指將位于不同事實表中處于相同粒度的事實進行組合建模而成的一種事實表。即新建立一個事實表,它的維度是兩個或多個事實表的相同維度的集合;事實是幾個事實表中感興趣的事實。在Kimball的總線架構中,由合并事實表為主組成的合并數據集市稱為二級數據集市。合并事實表的粒度可以是原子粒度也可以是聚集粒度。在做數據遷移時,當相關的原子事實表的數據有改變時,合并事實表的數據需要重新刷新。合并事實表和交叉探察是兩個互補的操作。
聚集事實表和合并事實表的主要差別是合并事實表一般是從多個事實表合并而來。但是它們的差別不是絕對的,一個事實表既是聚集事實表又是合并事實表是很有可能的。因為一般合并事實表需要按相同的維度合并,所以很可能在做合并的同時需要進行聚集,即粒度變粗。
維度表
維度表可以看作是用戶來分析數據的窗口
,緯度表中包含事實數據表中事實記錄的特性,有些特性提供描述性信息,有些特性指定如何匯總事實數據表數據,以便為分析者提供有用的信息,維度表包含幫助匯總數據的特性的層次結構。例如,包含產品信息的維度表通常包含將產品分為食品、飲料、非消費品等若干類的層次結構,這些產品中的每一類進一步多次細分,直到各產品達到最低級別。
在維度表中,每個表都包含獨立于其他維度表的事實 特性,例如,客戶維度表包含有關客戶的數據。維度表中的列字段可以將信息分為不同層次的結構級。
結論:
1、事實表就是你要關注的內容;
2、維度表就是你觀察該事務的角度,是從哪個角度去觀察這個內容的。
例如,某地區商品的銷量,是從地區這個角度觀察商品銷量的。事實表就是銷量表,維度表就是地區表。
度量值
在多維數據集中,度量值是一組值,這些值基于多維數據集的事實數據表中的一列,而且通常為數字
。此外,度量值是所分析的多維數據集的中心值。即,度量值是最終用戶瀏覽多維數據集時重點查看的數字數據。您所選擇的度量值取決于最終用戶所請求的信息類型。一些常見的度量值有 sales、cost、expenditures 和 production count 等。
“度量值”是來自事實數據表的值
,也稱為“事實數據”。度量值維度的值有時也通稱為“成員”。度量值通常是數值,但也可以是字符串值。
Measures 維度 (Measures dimension)
“度量值維度”是包含多維數據集中所有度量值的維度。度量值維度是一種特殊的維度,其中的成員通常是根據各個維度屬性(存在指定的度量值)的當前成員(通常采用求和或計數方式)進行聚合。
度量值組 (Measure Group)
“度量值組”是 SQL Server 2005 Analysis Services 多維數據集中的相關度量值集合(通常是來自同一事實數據表的度量值)。在 SQL Server 2005 Analysis Services 中,一個多維數據集可包含多個度量值組。
級別
級別是維度層次結構的一個元素。級別描述了數據的層次結構,從數據的最高(匯總程度最大)級別直到最低(最詳細)級別。
多維 OLAP (MOLAP):MOLAP 存儲模式使得分區的聚合和其源數據的復本以多維結構存儲在分析服務器計算機上。根據分區聚合的百分比和設計,MOLAP 存儲模式為達到最快查詢響應時間提供了潛在可能性。總而言之,MOLAP 更加適合于頻繁使用的多維數據集中的分區和對快速查詢響應的需要。
關系 OLAP (ROLAP):ROLAP 存儲模式使得分區的聚合存儲在關系數據庫的表(在分區數據源中指定)中。但是,可為分區數據使用 ROLAP 存儲模式,而不在關系數據庫中創建聚合。
混合 OLAP (HOLAP):HOLAP 存儲模式結合了 MOLAP 和 ROLAP 二者的特性。
粒度
數據匯總的層次或深度。數據倉庫的數據單位中保存數據的細化或綜合程度的級別。細化程度越高,粒度越小。
聚合|聚集:聚合是預先計算好的數據匯總,由于在問題提出之前已經準備了答案,聚合可以改進查詢響應時間。
分割
數據分散到各自的物理單元中去,它們能獨立地處理。
切塊:由多個維的多個成員限定的分區數據,稱為一個切塊。
切片:由一個維的一個成員限定的分區數據,稱為一個切片。
數據鉆取:最終用戶從常規多維數據集、虛擬多維數據集或鏈接多維數據集中選擇單個單元,并從該單元的源數據中檢索結果集以獲得更詳細的信息,這個操作過程就是數據鉆取。
數據挖掘模型:數據挖掘使您得以定義包含分組和預測規則的模型,以便應用于關系數據庫或多維 OLAP 數據集中的數據。之后,這些預測模型便可用于自動執行復雜的數據分析,以找出幫助識別新機會并選擇有獲勝把握的機會的趨勢。
數據庫維度 (Database dimension)
“數據庫維度”是與某個鍵屬性相關的維度屬性的集合,而該鍵屬性又與度量值維度中的事實數據相關。
維度屬性 (Dimension attribute)
“維度屬性”被綁定到維度表中的一個或多個列并包含成員。維度屬性可以包含客戶名稱、月份名稱和產品名稱。
成員 (Member)
“成員”是維度屬性(包括度量值維度)的值。層次結構中的成員可以是葉成員、父成員、數據成員或“(全部)”成員。
“(全部)”成員 ((All) member)
“(全部)”成員是屬性層次結構或用戶定義的層次結構中的所有成員的計算值。
計算成員 (Calculated member)
“計算成員”是在查詢時定義和計算的維度成員。可以在用戶查詢或 MDX 計算腳本中定義計算成員,并將其存儲在服務器上。 一個計算成員對應于定義它們的維度中的多個維度表行。
數據成員 (Data member)
“數據成員”是在父子層次結構中與父成員相關聯的子成員。數據成員包含其父成員的數據值,而不是該父成員的子級的聚合值。
父成員 (Parent member)
“父成員”是父子層次結構中的成員,包含其子級的聚合值。
葉成員 (leaf member)
“葉成員”是層次結構中不包含子級的成員。
子成員 (Child member)
“子成員”是層次結構中位于頂層下面的成員。
鍵屬性 (Key attribute)
數據庫維度的“鍵屬性”是維度中的所有非鍵屬性(以直接或間接方式)所鏈接到的屬性。鍵屬性通常也是粒度屬性。
粒度屬性 (Granularity attribute)
多維數據集維度的屬性,它將維度鏈接到度量值維度內度量值組中的事實數據。如果粒度屬性和鍵屬性為不同的屬性,則非鍵屬性必須直接或間接地鏈接到粒度屬性。在多維數據集中,粒度屬性定義維度的粒度。
多維數據集維度 (Cube dimension)
“多維數據集維度”是多維數據集中的數據庫維度實例。
屬性層次結構 (Attribute hierarchy)
“屬性層次結構”是包含以下級別的屬性成員層次結構:
數據倉庫建模 — 星型模式
Example of Star Schema
在多維分析的商業智能解決方案中,根據事實表和維度表的關系,又可將常見的模型分為星型模型和雪花型模型。在設計邏輯型數據的模型的時候,就應考慮數據是按照星型模型還是雪花型模型進行組織。
當所有維表都直接連接到“ 事實表”上時,整個圖解就像星星一樣,故將該模型稱為星型模型,星型架構是一種非正規化的結構,多維數據集的每一個維度都直接與事實表相連接,不存在漸變維度,所以數據有一定的冗余,如在地域維度表中,存在國家 A 省 B 的城市 C 以及國家 A 省 B 的城市 D 兩條記錄,那么國家 A 和省 B 的信息分別存儲了兩次,即存在冗余。
數據倉庫建模 — 雪片模式
Example of Snowflake Schema
當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時,其圖解就像多個雪花連接在一起,故稱雪花模型。雪花模型是對星型模型的擴展。它對星型模型的維表進一步層次化,原有的各維表可能被擴展為小的事實表,形成一些局部的 " 層次 " 區域,這些被分解的表都連接到主維度表而不是事實表。將地域維表又分解為國家,省份,城市等維表。它的優點是 : 通過最大限度地減少數據存儲量以及聯合較小的維表來改善查詢性能。雪花型結構去除了數據冗余。