ETL模型設計

2021-06-03 22:48:58 字數 2209 閱讀 7675

傳統的關聯式資料庫一般採用二維數表的形式來表示資料,乙個維是行,另乙個維是列,行和列的交叉處就是資料元素。關係資料的基礎是關聯式資料庫模型,通過標準的sql語言來加以實現。

資料倉儲是多維資料庫,它擴充套件了關聯式資料庫模型,以星形架構為主要結構方式的,並在它的基礎上,擴充套件出理論雪花形架構和資料星座等方式,但不管是哪一種架構,維度表、事實表和事實表中的量度都是必不可少的組成要素。

維度:是多維資料集的結構性特性。它們是事實資料表中用來描述資料的分類的有組織層次結構(級別)。這些分類和級別分別描述了一些相似的成員集合,使用者將基於這些成員集合進行分析。

度量值:在多維資料集中,度量值是一組值,這些值基於多維資料集的事實資料表中的一列,而且通常為數字。此外,度量值是所分析的多維資料集的中心值。即,度量值是終端使用者瀏覽多維資料集時重點檢視的數字資料(如銷售、毛利、成本)。所選擇的度量值取決於終端使用者所請求的資訊型別。一些常見的度量值有sales、cost、expenditures和production count等

事實表是資料聚合後依據某個維度生成的結果表。

1) 星型模型

星形模型是最常用的資料倉儲設計結構的實現模式,它使資料倉儲形成了乙個整合系統,為終端使用者提供報表服務,為使用者提供分析服務物件。星形模式通過使用乙個包含主題的事實表和多個包含事實的非正規化描述的維度表來支援各種決策查詢。星形模型可以採用關係型資料庫結構,模型的核心是事實表,圍繞事實表的是維度表。通過事實表將各種不同的維度表連線起來,各個維度表都連線到**事實表。維度表中的物件通過事實表與另一維度表中的物件相關聯這樣就能建立各個維度表物件之間的聯絡。每乙個維度表通過乙個主鍵與事實表進行連線。

事實表主要包含了描述特定商業事件的資料,即某些特定商業事件的度量值。一般情況下,事實表中的資料不允許修改,新的資料只是簡單地新增進事實表中,維度表主要包含了儲存在事實表中資料的特徵資料。每乙個維度表利用維度關鍵字通過事實表中的外來鍵約束於事實表中的某一行,實現與事實表的關聯,這就要求事實表中的外來鍵不能為空,這與一般資料庫中外鍵允許為空是不同的。這種結構使使用者能夠很容易地從維度表中的資料分析開始,獲得維度關鍵字,以便連線到中心的事實表,進行查詢,這樣就可以減少在事實表中掃瞄的資料量,以提高查詢效能。

使用星形模式主要有兩方面的原因:提高查詢的效率。採用星形模式設計的資料倉儲的優點是由於資料的組織已經過預處理,主要資料都在龐大的事實表中,所以只要掃瞄事實表就可以進行查詢,而不必把多個龐大的表聯接起來,查詢訪問效率較高,同時由於維表一般都很小,甚至可以放在快取記憶體中,與事實表進行連線時其速度較快,便於使用者理解;對於非計算機專業的使用者而言,星形模式比較直觀,通過分析星形模式,很容易組合出各種查詢。

2) 雪花模型

雪花模型是對星形模型的擴充套件,每乙個維度都可以向外連線多個詳細類別表。在這種模式中,維度表除了具有星形模型中維度表的功能外,還連線對事實表進行詳細描述的詳細類別表,詳細類別表通過對事實表在有關維上的詳細描述達到了縮小事實表和提高查詢效率的目的。

雪花模型對星形模型的維度表進一步標準化,對星形模型中的維度表進行了規範化處理。雪花模型的維度表中儲存了正規化的資料,這種結構通過把多個較小的標準化表(而不是星形模型中的大的非標準化表)聯合在一起來改善查詢效能。由於採取了標準化及維的低粒度,雪花模型提高了資料倉儲應用的靈活性。

這些連線需要花費相當多的時間。一般來說,乙個雪花形圖表要比乙個星形圖表效率低。

雪花形與星形層次結構的差異

星    形

雪  花  形行數多

少可讀性容易難

**數量少多

搜尋維的時間快慢

3) 星座模式

乙個複雜的商業智慧型應用往往會在資料倉儲中存放多個事實表,這時就會出現多個事實表共享某乙個或多個維表的情況,這就是事實星座,也稱為星系模式(galaxy schema)。

4) 資料集市

資料集市是在構建資料倉儲的時候經常用到的乙個詞彙。如果說資料倉儲是企業範圍的,收集的是關於整個組織的主題,如顧客、商品、銷售、資產和人員等方面的資訊,那麼資料集市則是包含企業範圍資料的乙個子集,例如只包含銷售主題的資訊,這樣資料集市只對特定的使用者是有用的,其範圍限於選定的主題。

資料集市面向企業中的某個部門(或某個主題)是從資料倉儲中劃分出來的,這種劃分可以是邏輯上的,也可以是物理上的。

資料倉儲中存放了企業的整體資訊,而資料集市只存放了某個主題需要的資訊,其目的是減少資料處理量,使資訊的利用更加快捷和靈活。

資料倉儲由於是企業範圍的,能對多個相關的主題建模,所以在設計其資料構成時一般採用星系模式。

5)物件導向在etl設計中的應用

模組化、低耦合高內聚、設計模式、繼承、介面等思想可以很好的應用到etl設計當中去。

ETL模型設計

傳統的關聯式資料庫一般採用二維數表的形式來表示資料,乙個維是行,另乙個維是列,行和列的交叉處就是資料元素。關係資料的基礎是關聯式資料庫模型,通過標準的sql語言來加以實現。資料倉儲是多維資料庫,它擴充套件了關聯式資料庫模型,以星形架構為主要結構方式的,並在它的基礎上,擴充套件出理論雪花形架構和資料星...

ETL設計詳解

etl是bi專案最重要的乙個環節,通常情況下etl會花掉整個專案的1 3的時間,etl設計的好壞直接關接到bi專案的成敗。etl也是乙個長期的過程,只有不斷的發現問題並解決問題,才能使etl執行效率更高,為專案後期開發提供準確的資料。etl的設計分三部分 資料抽取 資料的清洗轉換 資料的載入。在設計...

設計和開發ETL系統(一) ETL過程綜述

在這部分將按照設計和實現etl系統的流程展開,將上乙個部分的那些子系統按照提取資料 清洗和一致化 向呈現伺服器提交以及管理etl環境等四個方面進行了分類。是不是說對etl主要就是掌握這四個方面的內容 etl處理步驟 提取資料 清洗和一致化 向呈現層提交 管理etl環境 計畫 建立乙個高層的 單頁的源...