由於ETL是數據倉庫得核心,時常承擔着管理和儲存數據倉庫大量元數據得職責。在數據倉庫中ETL處理程式是元數據最重要得建立者——數據沿襲。數據沿襲追蹤數據從源系統和檔案中得請確位置直到最終被裝載之前。數據血統包括數據庫系統的數據定義和在數據參考古中最終靜止狀態。元數據分爲後臺元數據和前端元數據,後臺元數據是與處理相關的,指導抽取清洗裝載工作;前端元數據更偏向描述性和使我們的查詢工具和報表工具更加穩定。後臺將數據載入到數據倉庫,同時指明數據來源,而前端元數據主要是爲終端使用者服務的,可以作爲描述所有數據的業務數據字典。對於元數據應該進行以下工作:
以上各項任務都需要完善的文件。數據源規範:
1.各來源的所有描述資訊
2.各來源的業務描述
3.最初來源的更新頻率
4.各來源使用的司法侷限性
5.儲存方法,讀取許可權,和各來源存取口令
6.主機或源系統工作計劃
7.使用COBLO/JCL或C或Basic或其它語言來實現抽取
8.如果使用工具,則包含自動化抽取工具的設定
9.特殊抽取的結果,包括抽取時間和工作完成率
關於元數據的描述,數據需要的資訊:
維度表管理:
轉換和聚合:
審計,工作日誌和文件:
DBMS元數據中作用在以下部分:
在前端擴充套件的元數據包括:
元數據包括了所有,從某種程度上來說,元數據是數據倉庫的DNA,它定義了所有元素及元素之間協同工作的方式。元數據可以分爲以下三類:
除了這三種元數據之外,還應該考慮元數據的標準,數據倉庫後端的元數據流程如下圖:
上圖描述了使用和收集的元數據的所有地方,包括:
業務定義對於數據倉庫至關重要,不僅是終端使用者需要業務定義,ETL也需要業務定義來給出正在操作數據的上下文關係。一個典型的業務定義矩陣包括3個主要組成部分:
所有ETL工具都支援捕獲和儲存元數據,ETL工具應該和數據模型工具、數據庫一起獲得業務定義,並通過BI工具把業務名稱和業務定義展現給終端使用者。
數據在匯入數據倉庫前需要進行分析,指定數據改造計劃,使數據能夠較爲理想的被匯入到數據倉庫中,在分析源系統時,需要以下元數據屬性:
數據庫或檔案系統,當涉及到源系統或檔案的時候經常用到這個屬性
表規範,包括表的用途,表的大小,主鍵和預備鍵以及所有列的清單
排異處理規則
業務定義
業務規則,針對於每張表都要有相應的業務規則
在數據倉庫專案中,數據分析階段需要大量時間研究源系統,缺少源系統元數據和導致數據倉庫更多的故障,所有源系統的元數據必須在ETL開發之前提供給ETL團隊。
數據倉庫的數據字典時關於所有數據元素和他們業務定義的清單,與源系統業務定義相似,數據倉庫數據字典包括物理表和列名稱,業務名稱和業務定義。
邏輯數據檢視時ETL的生命線,從元數據的角度上看,邏輯數據檢視是由從源到目的的對映,從邏輯上解釋了數據從源系統中抽取出來到裝載到數據倉庫中的整個流程。邏輯數據對映是元數據的重要部分。
技術元數據服務於多種用途,它包括了到列名稱,數據型別,儲存和RAID矩陣的設定,需要瞭解數據倉庫中數據元素的物理模型及屬性。數據的技術定義是數據的容器和框架結構,必須瞭解數據定義的三種環境:
每個環境都應該被提供一個E-R圖,每個系統至少要包含以下元素:
每一個潛在的數據儲存中的數據定義應該是一致的。數據每一次進入數據庫或者進入檔案後,數據品質很容易發生變化。如果在各個環境中的數據定義各不相同,則需要在ETL系統中進行轉換來避免數據不一致,必須要有下列數據定義的元數據內容:
業務規則可以分爲業務或技術源數據,多有的業務規則都要以彪馬的形式被包含在ETL過程中,業務規則可以包括起始域中的任何允許值、預設值和計算。在源系統中,業務規則在儲存過程、強制約束或數據庫觸發中被執行,但是業務規則還是最常出現在應用程式中。業務規則的元數據會在功能性或者技術性文件和本地程式語言的原始碼或虛擬碼之間進行改變。業務規則必須和邏輯數據檢視緊密結合在一起,有時業務規則會在邏輯數據檢視中被忽略,直到執行完第一次ETL處理之後才被人注意,或被使用者在UAT中發現。當有新的業務規則是,邏輯數據檢視的元數據必須更新來反映新的規則。
當ETL物理程式被建立之後,一定要生成明確的元數據來捕獲每個處理的內部工作,ETL元數據可以被分爲四類:
下圖展現了ETL任務元數據被建立,儲存和發佈的元素:
任務是一系列轉換的集合,這些轉換執行物理上的抽取、轉換和裝載程式。一個任務的元數據是物理的源到目的對映,任務應該根據裝載的目標表或檔案來命名,ETL任務大致上可以分爲三類:
轉換元數據是關於ETL處理構造的資訊,轉換是由客戶化函數,儲存程序,常規程式組成的,這些程式包含了指針、回圈、記憶體變數。在ETL處理過程中的任何對數據的操作都被認爲是轉換。專門的ETL工具爲數據倉庫環境預先定義了通用轉換,並把他們打包提供給使用者。預先建立的轉換加速了ETL的開發,而且還可以在暗中捕獲轉換元數據。在大部分ETL任務中的通用數據轉換包括:
每個轉換獲得數據,操作數據的程度,然後傳送數據到任務佇列中進行下一個轉換,描述轉換的元數據屬性包括:
轉換是ETL任務的一個構成部分,每種轉換在名命格式上都會稍有不同,由於可維護性的原因,在建立ETL轉換時最好遵從以下名命規則:
裝載進度取決於以下因素:
數據倉庫中所有的處理元數據都是由ETL過程生成的,每次一個任務或批次處理執行,統計或成功指示器都需要被捕獲。匯入統計是元數據的一個重要部分。元數據元素可以幫助理解ETL任務中的活動和批次處理或評估成功的處理:
處理執行元數據在數據儲存中保留,以便進行趨勢分析,分析元數據可以發現ETL處理的瓶頸,可以保證數據倉庫效能的可控性,同時也可以衡量數據品質。
批次處理是一系列要執行的ETL任務排程的集合,批次處理的名稱應該可以反應出其所屬主題,任務執行的頻率和任務中批次處理執行方式是並行還是序列。
爲了維護企業級數據倉庫所有ETL過程中可管理的任務,數據倉庫必須要建立標準,制定時考慮下列標準:
維護ETL元數據的一個有利條件是元數據可以進行效果分析,通過效果分析,可以列出數據倉庫環境中的所有可以改變的特徵,還可以分析這些變化所帶來的影響。ETL工具要記錄源系統所有表,列到他們裝載到數據倉庫中的所有資訊。
本篇介紹了元數據的分類,至此所有數據倉庫中關於ETL工具的技術內容全部介紹完畢,下一篇將介紹ETL小組的職責作爲本書內容的收官之比。