数据仓库ETL工具箱——元数据
由于ETL是數據倉庫得核心,時常承擔著管理和存儲數據倉庫大量元數據得職責。在數據倉庫中ETL處理程序是元數據最重要得創建者——數據沿襲。數據沿襲追蹤數據從源系統和文件中得請確位置直到最終被裝載之前。數據血統包括數據庫系統的數據定義和在數據參考古中最終靜止狀態。元數據分為后臺元數據和前端元數據,后臺元數據是與處理相關的,指導抽取清洗裝載工作;前端元數據更偏向描述性和使我們的查詢工具和報表工具更加穩定。后臺將數據加載到數據倉庫,同時指明數據來源,而前端元數據主要是為終端用戶服務的,可以作為描述所有數據的業務數據字典。對于元數據應該進行以下工作:
- 制定完善的良好的注釋目錄
- 判定每一部分究竟有多重要
- 指定專人負責
- 判定一個和諧一致的工作規則
- 判定是否自己構建還是購買
- 專門存儲用以備份和恢復
- 對需要他們的人們開放
- 保證質量,保證完整和及時更新
- 實時控制
以上各項任務都需要完善的文檔。數據源規范:
- 知識庫
- 來源計劃
- 拷貝記錄
- 所有權或第三方來源計劃
- 存檔主機數據的原有格式
- 相關源系統數據表和DDL
- 電子數據表
- Lotus Notes 數據庫
- 表達圖形
- URL來源規格說明
- 來源描述信息:
1.各來源的所有描述信息
2.各來源的業務描述
3.最初來源的更新頻率
4.各來源使用的司法局限性
5.存儲方法,讀取權限,和各來源存取口令
- 處理信息
6.主機或源系統工作計劃
7.使用COBLO/JCL或C或Basic或其它語言來實現抽取
8.如果使用工具,則包含自動化抽取工具的設置
9.特殊抽取的結果,包括抽取時間和工作完成率
關于元數據的描述,數據需要的信息:
- 數據傳輸計劃和特殊傳輸結果
- 數據傳送區的文件用法,包括持續時間消耗和所有者信息
維度表管理:
- 規范化維度的定義和規范化事實的定義
- 關聯源的Job規范,剝除域,查找屬性
- 降低每一個引入描述屬性維度規則的變化速度
- 每一個生產鍵所分配的當前代理鍵,也包括內存中執行映射的查找表
- 前一天生產維度的副本,最為比較差的基礎
轉換和聚合:
- 數據清洗規范
- 數據增加和映射轉換
- 為數據挖掘所準備的數據轉換
- 目標計劃涉及,源和目標數據流,和目標數據所有權
- 數據庫管理系統的導入腳本
- 聚合定義
- 聚合用法統計,基礎數據表使用統計,以及潛在的聚合
- 聚合更改日志
審計,工作日志和文檔:
- 數據沿襲和審計記錄
- 數據轉換時間日志
- 數據轉換運行時間日志,成功記錄摘要,時間戳
- 數據軟件版本號
- 抽取過程的業務描述
- 抽取文件,抽取軟件和抽取元數據的安全設置
- 數據轉換的安全設置(授權口令)
- 數據分段傳送區存檔文件日志和恢復進程
- 數據分段傳送區存檔文件日志安全設置
DBMS元數據中作用在以下部分:
- 數據庫管理系統系統表目錄
- 分區設置
- 索引
- 磁盤帶區規范
- 程序處理提示
- 數據庫管理系統級別和安全的權限和授權
- 視圖的定義
- 存儲過程和SQL管理腳本
- 數據庫備份,狀態備份程序和備份安全性
在前端擴展的元數據包括:
- 縱列表分組的業務名稱和描述等等
- 模糊查詢和報表定義
- 連接規范工具設置
- 靈活打印規范說明
- 最終用戶文檔和培訓幫助,包括供應商提供和IT提供
- 網絡安全用戶授權
- 網絡安全鑒定證數
- 網絡安全使用統計,包括試圖讀取的日志和用戶ID
- 個人使用者描述包括人力資源鏈接
- 提高影響讀取權限的傳輸流暢性
- 連接到合約人和合作者可以追蹤讀取權限的影響范圍
- 數據原理,數據庫表,和視圖報告的使用和讀取映射
- 資源回收統計
- 收藏的網頁
?元數據包括了所有,從某種程度上來說,元數據是數據倉庫的DNA,它定義了所有元素及元素之間協同工作的方式。元數據可以分為以下三類:
除了這三種元數據之外,還應該考慮元數據的標準,數據倉庫后端的元數據流程如下圖:
?
上圖描述了使用和收集的元數據的所有地方,包括:
- 每一個數據階段的起源和處理步驟
- 元數據資料庫作為第三方ETL工具的一個有利條件
- 元數據需求構架:源表,清洗和處理
- 為終端用戶介紹有用的元數據
- 抽取轉換應用
- 規范化元數據
- 元數據的XML描述
- 平面文件中元數據的缺失
- 分析元數據的效果
- 計劃創建描述沿襲的元數據,業務定義,技術定義以及處理過程
- 邏輯數據視圖
- 抽取過程中源數據的捕獲計算
- 源數據庫描述
- ETL工具讀取ERP系統元數據
- 數據評估的結果
- 錯誤事件跟蹤事實表
- 審計維度
- 代理鍵最高值
- 聚合數據
- 處理數據搭建OLAP架構
- 裝載到控制文件
- 支持恢復處理的元數據
- ETL參數
- 任務依賴
- 任務操作性統計,如性能和資源的使用
- 元數據資料庫報告
- 數據表凈化規則
?業務定義對于數據倉庫至關重要,不僅是終端用戶需要業務定義,ETL也需要業務定義來給出正在操作數據的上下文關系。一個典型的業務定義矩陣包括3個主要組成部分:
- 物理表和列名稱,數據參控股中數據元素的業務解釋是基于數據庫中真實的表和列名稱。
- 業務列名稱,數據庫所存儲的數據元素在技術上是由前綴后綴和下劃線組成的。業務名稱需要技術性名稱和有實際意義名稱之間的翻譯
- 業務定義,業務定義是指對業務屬性含義的描述。數據倉庫中每個屬性一定會有一個業務定義。
所有ETL工具都支持捕獲和存儲元數據,ETL工具應該和數據模型工具、數據庫一起獲得業務定義,并通過BI工具把業務名稱和業務定義展現給最終用戶。
數據在導入數據倉庫前需要進行分析,指定數據改造計劃,使數據能夠較為理想的被導入到數據倉庫中,在分析源系統時,需要以下元數據屬性:
數據庫或文件系統,當涉及到源系統或文件的時候經常用到這個屬性
表規范,包括表的用途,表的大小,主鍵和預備鍵以及所有列的清單
排異處理規則
業務定義
業務規則,針對于每張表都要有相應的業務規則
在數據倉庫項目中,數據分析階段需要大量時間研究源系統,缺少源系統元數據和導致數據倉庫更多的故障,所有源系統的元數據必須在ETL開發之前提供給ETL團隊。
數據倉庫的數據字典時關于所有數據元素和他們業務定義的清單,與源系統業務定義相似,數據倉庫數據字典包括物理表和列名稱,業務名稱和業務定義。
邏輯數據視圖時ETL的生命線,從元數據的角度上看,邏輯數據視圖是由從源到目的的映射,從邏輯上解釋了數據從源系統中抽取出來到裝載到數據倉庫中的整個流程。邏輯數據映射是元數據的重要部分。
技術元數據服務于多種用途,它包括了到列名稱,數據類型,存儲和RAID矩陣的配置,需要了解數據倉庫中數據元素的物理模型及屬性。數據的技術定義是數據的容器和框架結構,必須了解數據定義的三種環境:
- 源數據庫
- 分段處理區域表
- 數據倉庫展現區
每個環境都應該被提供一個E-R圖,每個系統至少要包含以下元素:
- 表:表或文件的一份詳盡清單,這份清單有可能在抽取和裝載過程中使用,通常這份清單只提供邏輯數據映射的源系統數據表
- 列:對于每張表,都需要一張數據映射所要求列的清單,由源系統的DBA提供
- 數據類型:數據表的每一列都有一個數據類型,在不同數據庫系統中有些數據類型不盡相同,大部分ETL工具可以轉換相應的數據類型
- 關系型數據庫:關系型數據庫支持參照完整性,參照完整性和表之間的關聯關系能夠保證數據導入的唯一一致性,數據之間的關聯關系是通過表與表之間的主外鍵連接展示的
每一個潛在的數據存儲中的數據定義應該是一致的。數據每一次進入數據庫或者進入文件后,數據質量很容易發生變化。如果在各個環境中的數據定義各不相同,則需要在ETL系統中進行轉換來避免數據不一致,必須要有下列數據定義的元數據內容:
- 表名稱:表和文件的物理名稱
- 列名稱:表和文件中列的物理名稱
- 數據類型:數字型、字符型、日期型、二進制以及自定義數據類型
- 域:數值要進入的列被稱為域,域通過外鍵和檢查約束或數據庫頂端應用來執行
- 參照完整性:數據倉庫中的參照完整性被認為不是必要的,因為所有的數據都是經過ETL處理以受約束的形式進入數據庫的,在數據庫級不需要強制的完整性約束
- 約束:約束時業務規則的另一種物理執行,數據庫約束可以消除空值,爭搶外鍵查找等
- 缺省值:萬一實際值是不可獲取的,ETL元數據的缺省值可以分配為字符串類型,數字型,日期型或bit型。在源系統中,缺省值經常被分配為數據庫級別的。在數據倉庫中,缺省值的指派發生在ETL處理中,數據倉庫中的缺省值最好堅持始終如一的一致性
- 存儲過程:存儲過程存儲了已經在數據庫中寫好的SQL語句,可以通過存儲過程看到源數據是如何使用的,每個數據倉庫項目都要涉及到源系統的分析型存儲過程
- 觸發:當數據庫系統中的記錄要增加,刪除或更新時通過觸發自動執行SQL程序。像存儲過程一樣,通過觸發器,也可以指導數據時如何使用的。觸發經常通過向加入到表中的數據增加額外的檢查來增強外鍵約束。當表中的數據發生變化或被刪除時,觸發還承擔審核表的責任,審核表時數據倉庫中刪除數據的重要審核來源。
業務規則可以分為業務或技術源數據,多有的業務規則都要以彪馬的形式被包含在ETL過程中,業務規則可以包括起始域中的任何允許值、缺省值和計算。在源系統中,業務規則在存儲過程、強制約束或數據庫觸發中被執行,但是業務規則還是最常出現在應用程序中。業務規則的元數據會在功能性或者技術性文檔和本地程序語言的源代碼或偽代碼之間進行改變。業務規則必須和邏輯數據視圖緊密結合在一起,有時業務規則會在邏輯數據視圖中被忽略,直到執行完第一次ETL處理之后才被人注意,或被用戶在UAT中發現。當有新的業務規則是,邏輯數據視圖的元數據必須更新來反映新的規則。
當ETL物理程序被建立之后,一定要生成明確的元數據來捕獲每個處理的內部工作,ETL元數據可以被分為四類:
- ETL任務元數據:任務元數據包含了數據倉庫中各元素數據沿襲
- 轉換元數據:每個任務都由多個轉換組成,任務中數據處理的任何形式都是由專門轉換工作來執行的
- 批處理元數據:批處理時一種執行任務集合的技術,應該具有配置執行連續性和并行處理的能力,包含分支批處理
- 處理元數據:每當執行批處理,就會生成處理元數據,對于描述數據是否被陳工裝載到的數據倉庫中,處理元數據非常重要
下圖展現了ETL任務元數據被創建,存儲和發布的元素:
?
- 任務名稱:物理ETL任務名稱
- 任務用途:最初中心任務的簡要描述
- 源表/文件:所有源數據的名稱和路徑位置
- 目的表/文件:在轉換完成之后所有結果數據的名稱和目錄路徑
- 丟棄文件名稱:丟棄文件的名稱和路徑位置(在裝載過程中沒有載入目的地址的數據表或文件稱為丟棄文件)
- 預處理前置任務:在任務被執行之前需要處理任務或腳本
- 后置任務:在任務處理之后需要執行的任務或腳本
任務是一系列轉換的集合,這些轉換執行物理上的抽取、轉換和裝載程序。一個任務的元數據是物理的源到目的映射,任務應該根據裝載的目標表或文件來命名,ETL任務大致上可以分為三類:
- 抽取,EXT_<table_name>,從名稱中看出這個任務的主要目的是從源系統中抽取數據
- 中間階段,STG_<table_name>,是一個數據存在于集結區的中間過程
- 目標,TRG_<table_name>意味著任務是裝載數據到目標數據倉庫的
轉換元數據是關于ETL處理構造的信息,轉換是由客戶化函數,存儲程序,常規程序組成的,這些程序包含了指針、循環、內存變量。在ETL處理過程中的任何對數據的操作都被認為是轉換。專門的ETL工具為數據倉庫環境預先定義了通用轉換,并把他們打包提供給使用者。預先建立的轉換加速了ETL的開發,而且還可以在暗中捕獲轉換元數據。在大部分ETL任務中的通用數據轉換包括:
- 源數據抽取
- 代理鍵生成器
- 查找
- 篩選
- 路由器
- 聯合
- 聚合
- 異構連接
- 更新策略
- 目標裝載器
每個轉換獲得數據,操作數據的程度,然后傳送數據到任務隊列中進行下一個轉換,描述轉換的元數據屬性包括:
- 轉換名稱
- 轉換的意圖
- 輸入列
- 物理計算
- 邏輯計算
- 輸出列
轉換是ETL任務的一個構成部分,每種轉換在名命格式上都會稍有不同,由于可維護性的原因,在建立ETL轉換時最好遵從以下名命規則:
- 源數據抽取:SRC_<table_name>
- 代理鍵生成器:SEQ_<table_name>
- 查找:LKP_<正在加載或引用的table_name>
- 篩選:FIL_<用途>
- 聚合:AGG_<用途>
- 異構連接:HJN_<第一張table_name>_<第二張table_name>
- 更新策略:UPD_<操作類型(INS,UPD,DEL,UPS)>_<標記table_name>
- 目標裝載器:TRG_<標記表名>
裝載進度取決于以下因素:
- 依賴的批處理
- 頻度
- 執行進度
- 恢復步驟
數據倉庫中所有的處理元數據都是由ETL過程生成的,每次一個任務或批處理執行,統計或成功指示器都需要被捕獲。導入統計是元數據的一個重要部分。元數據元素可以幫助理解ETL任務中的活動和批處理或評估成功的處理:
- 主題名稱:可以是數據集市或者描述為某個特定區域而執行批處理
- 任務名稱:執行程序的名稱
- 處理行:從源數據系統中讀取或處理的行數統計和百分比統計
- 成功行數:裝載到數據倉庫中數據的總數和百分比
- 失敗行數:被數據倉庫拒絕的數據總數和百分比
- 最近錯誤代碼:在數據裝載過程中,最近的數據庫或者ETL異常的錯誤代碼
- 最近錯誤:最近錯誤的文本描述
- 讀取能力:用來衡量ETL處理性能的,用行/秒來描述,當源系統讀取發生瓶頸時,記錄讀取能力
- 寫能力:用來衡量ETL處理性能的,用行/秒來描述
- 開始時間:任務開始時的日期,時間和分秒
- 結束時間:任務結束時的日期,時間和分秒,不考慮任務是否成功
- 耗時:性能分析的重要指標
- 源文件名稱:ETL抽取涉及的數據的表或文件的名稱
- 目標文件名稱:ETL涉及目標的數據的表或文件名稱
處理執行元數據在數據存儲中保留,以便進行趨勢分析,分析元數據可以發現ETL處理的瓶頸,可以保證數據倉庫性能的可控性,同時也可以衡量數據質量。
- 在執行過程中,可能引起數據記錄異常條件,可以采取以下措施:
- 主題名稱:可以是數據集市或關于批處理的描述
- 任務名稱:執行程序的名稱
- 異常條件:異常條件的標準設置
- 嚴重性
- 采取措施
- 操作員
- 結果
批處理是一系列要執行的ETL任務調度的集合,批處理的名稱應該可以反應出其所屬主題,任務執行的頻率和任務中批處理執行方式是并行還是串行。
為了維護企業級數據倉庫所有ETL過程中可管理的任務,數據倉庫必須要建立標準,制定時考慮下列標準:
- 命名習慣
- 體系結構
- 基礎構造
維護ETL元數據的一個有利條件是元數據可以進行效果分析,通過效果分析,可以列出數據倉庫環境中的所有可以改變的特征,還可以分析這些變化所帶來的影響。ETL工具要記錄源系統所有表,列到他們裝載到數據倉庫中的所有信息。
本篇介紹了元數據的分類,至此所有數據倉庫中關于ETL工具的技術內容全部介紹完畢,下一篇將介紹ETL小組的職責作為本書內容的收官之比。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的数据仓库ETL工具箱——元数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows更新 “Install e
- 下一篇: 四核64位处理器,MIMX8MQ5DVA