數據倉庫元數據如何管理?

underdog13


很多朋友都是第一次聽說元數據管理系統這個名詞,當然,從事非數據倉庫工作的人,很少會接觸到這個系統

元數據管理是整個數據倉庫架構中很重要的一塊(關於數據倉庫的架構,請參考這篇文章——數據倉庫的基本架構),但發其實現很多書裡面都沒有對元數據下一個詳細的定義,或者沒有系統地介紹到底數據倉庫的元數據應該包括哪些。下面是整理一些對元數據管理的看法,主要來自Inmon的《數據倉庫》的兩本書、Oracle的文檔及個人在數據倉庫的應用中認為應該記錄的一些元數據。

元數據的定義

  元數據(Meta Data),從字面來看好像無法看出所以然,我當初看到的時候也是,但其實看看對應的英文,含義還是挺明確的,Meta一般是指“對……的解釋或描述”,類似的還有Meta Tag。所以元數據其實就是對數據的解釋和描述,這種解釋可以以多種形式存在,數據庫的數據字典、外部文檔,工具的資料檔案庫(Repository)等。

元數據包括哪些

  這裡主要將數據倉庫的元數據分為3類:數據庫管理系統的數據字典、ETL處理流程產生的日誌、BI建模和分析中工具或文檔中記錄的信息。

DBMS數據字典

  數據庫管理系統(DBMS)中的元數據一般在所有的數據倉庫都會包含,因為數據倉庫一般都是基於數據庫搭建的,而數據庫本身的管理系統就會自動維護一套數據字典供用戶查詢。這些信息一般包括:

  • 數據庫的關係模型,包含的對象及對象的描述;
  • 數據庫的表結構、字段信息及描述;
  • 表和字段中的主外鍵、索引、約束等信息;
  • 各對象的存儲位置和操作權限等。

ETL處理日誌

  ETL是數據倉庫管理和維護的基礎,就像是數據倉庫的血液維繫著整個數據的新陳代謝。我們需要時刻關注血液的循環是否正常,它是保證數據完整性、一致性、準確性和及時性的重要參考依據,所以我們需要記錄ETL任務的處理日誌,我一般會記錄以下幾類信息:

  • 任務信息、調用的程序或腳本、前置任務;
  • 數據來源、加載目標、轉化規則或計算公式;
  • 數據的刷新類型、刷新頻率,任務調度信息;
  • 每次運行的起始時間、結束時間、操作記錄數、任務狀態及出錯信息。

  記錄ETL信息的方式有很多,一般我會將上面羅列的信息分兩類進行記錄,一類是ETL基本信息與調度信息,另一類是ETL的每次運行日誌。其實ETL的任務信息和任務調度一般比較簡單且更新頻率不高,可以以文檔或建數據庫表的形式記錄,當有新的ETL任務配置進去時進行手動更新;而ETL的運行日誌一般是當任務運行一次就會記錄一條,反映該次運行的狀態,所以一般每個程序或腳本每天甚至每小時就會產生一條,建議如果ETL環境在數據庫裡面的話,建立ETL日誌表記錄相對會比較方便,當每次ETL運行時自動地去維護這張表,INSERT一條任務運行的記錄。

BI分析模型

  這裡的BI分析模型主要有兩類,一類是數據倉庫常見的多維模型,另一類是根據具體業務構建的商業分析模型。無論是哪類模型,其實都已經在分析的層面上,所以都有必要記錄以下幾類信息:

  • 分析模型的設計和結構;
  • 模型的分析應用和商業價值;
  • 模型中指標的定義、計算方法;
  • 模型的展現和效果。

  模型一般由分析師設計和構建,所以這類信息一般會以文檔的形式記錄下面,或者製作成相應的PPT進行展示。這裡必須注意的是分析模型在構建之初就必須明確應用的環境、體現的價值或可能實現的預期,明確這些是為了更好地應用到實踐中,如果只是單純為了實現這樣的模型或者基於相應算法的實現,那麼很有可能最終模型會變成一種擺設;再有一點就是模型的展現,模型需要優化其在可視化層面的效果,也就是要讓其他人能夠更好地理解模型的使用和價值

,一切底層的算法和數據的處理只是為了讓模型在最終的展現上更加有效。

  上面只是對於所有的分析模型而言,對於多維模型,其在數據倉庫的應用已經形成了一定的規範,所以我們可以獲取到更多的信息:

  • 多維模型的結構(星形、雪花等);
  • 多維模型的維(層次、級別、屬性)和立方(度量、計算度量);
  • 多維模型的數據組織和加載;
  • 可以實現的OLAP應用與展現。

  其實如果你用工具來構建多維模型,那麼這些多維模型的元數據信息可能很多直接就會保存在工具相應的資料檔案庫(Repository)裡面,當然你也可以自己整理出相應的文檔,供不時的查詢和分享的需要。

元數據管理標準

沒有規矩不成方圓。元數據管理之所以困難,一個很重要的原因就是缺乏統一的標準。在這種情況下,各公司的元數據管理解決方案各不相同。近幾年,隨著元數據聯盟MDC(Meta Data Coalition)的開放信息模型OIM(Open Information Model)和OMG組織的公共倉庫模型CWM(Common Warehouse Model)標準的逐漸完善,以及MDC和OMG組織的合併,為數據倉庫廠商提供了統一的標準,從而為元數據管理鋪平了道路。

元數據管理主要有兩種方法:

  • 對於相對簡單的環境,按照通用的元數據管理標準建立一個集中式的元數據知識庫。
  • 對於比較複雜的環境,分別建立各部分的元數據管理系統,形成分佈式元數據知識庫,然後,通過建立標準的元數據交換格式,實現元數據的集成管理。

目前OMG家的CWM(Common Warehouse MetaModel)標準已成為元數據管理界的統一標準:OMG是一個擁有500多會員的國際標準化組織,著名的CORBA標準即出自該組織。公共倉庫元模型(Common Warehouse Metamodel)的主要目的是在異構環境下,幫助不同的數據倉庫工具、平臺和元數據知識庫進行元數據交換。2001年3月,OMG頒佈了CWM 1.0標準。CWM模型既包括元數據存儲,也包括元數據交換,它是基於以下三個工業標準制定的:

  • UML:它對CWM模型進行建模。
  • MOF(元對象設施):它是OMG元模型和元數據的存儲標準,提供在異構環境下對元數據知識庫的訪問接口。
  • XMI(XML元數據交換):它可以使元數據以XML文件流的方式進行交換。

CWM為數據倉庫和商業智能(BI)工具之間共享元數據,制定了一整套關於語法和語義的規範。它主要包含以下四個方面的規範:

  • CWM元模型(Metamodel):描述數據倉庫系統的模型;
  • CWM XML:CWM元模型的XML表示;
  • CWM DTD:DW/BI共享元數據的交換格式
  • CWM IDL:DW/BI共享元數據的應用程序訪問接口(API)


分享到:


相關文章: