Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
          元數(shù)據(jù)
          ??? 元數(shù)據(jù)(Metadata):就是數(shù)據(jù)的數(shù)據(jù),用于建立、管理、維護和使用數(shù)據(jù)倉庫。元數(shù)據(jù)管理是企業(yè)級數(shù)據(jù)倉庫中的關(guān)鍵組件,貫穿于建立數(shù)據(jù)倉庫的整個過程。
          ?
            元數(shù)據(jù)使得用戶可以掌握數(shù)據(jù)的歷史情況,如數(shù)據(jù)從哪里來?流通時間有多長?更新頻率是多大?數(shù)據(jù)元素的含義是什么?對它已經(jīng)進行了哪些計算、轉(zhuǎn)換和篩選等等。在需求不確定情況下,在瞬間萬變的商業(yè)環(huán)境下,元數(shù)據(jù)可以更好的支持需求的變化,降低項目風險。
            元數(shù)據(jù)貫徹于建立數(shù)據(jù)倉庫的整個過程,不只是ETL過程需要元數(shù)據(jù)的支持。
          ?
          ???? MD-1.jpg

          ?
          ?
          元數(shù)據(jù)分類
            通常把元數(shù)據(jù)分為技術(shù)元數(shù)據(jù)(Technical Metadata)業(yè)務元數(shù)據(jù)(Business Metadata)
          ?
          ??? 技術(shù)元數(shù)據(jù) 是描述關(guān)于數(shù)據(jù)倉庫技術(shù)細節(jié)的數(shù)據(jù),這些元數(shù)據(jù)應用于開發(fā)、管理和維護數(shù)據(jù)倉庫,它主要包含以下信息。
          ?
          ??? 1、數(shù)據(jù)倉庫結(jié)構(gòu)的描述,包括倉庫模式、視圖、維、層次結(jié)構(gòu)和導出數(shù)據(jù)的定義,以及數(shù)據(jù)集市的位置和內(nèi)容;
          ??? 2、業(yè)務系統(tǒng)、數(shù)據(jù)倉庫和數(shù)據(jù)集市的體系結(jié)構(gòu)和模式;
          ??? 3、匯總用的算法,包括度量和維定義算法,數(shù)據(jù)粒度、主題領(lǐng)域、聚合、匯總和預定義的查詢與報告;
          ??? 4、由操作環(huán)境到數(shù)據(jù)倉庫環(huán)境的映射,包括源數(shù)據(jù)和它們的內(nèi)容、數(shù)據(jù)分割、數(shù)據(jù)提取、清理、轉(zhuǎn)換規(guī)則和數(shù)據(jù)刷新規(guī)則及安全(用戶授權(quán)和存取控制)。
          ?
          ??? 業(yè)務元數(shù)據(jù) 從業(yè)務角度描述了數(shù)據(jù)倉庫中的數(shù)據(jù),它提供了介于使用者和實際系統(tǒng)之間的語義層,使得不懂計算機技術(shù)的業(yè)務人員也能夠“讀懂”數(shù)據(jù)倉庫中的數(shù)據(jù)。業(yè)務元數(shù)據(jù)主要包括以下信息:使用者的業(yè)務術(shù)語所表達的數(shù)據(jù)模型、對象名和屬性名;訪問數(shù)據(jù)的原則和數(shù)據(jù)的來源;系統(tǒng)所提供的分析方法及公式和報表的信息。
          ?
          ??? 在信息打包過程中,需要用包圖表示維度和類別還有它們之間的傳遞和映射關(guān)系,實際上這個操作就是在原業(yè)務系統(tǒng)的基礎(chǔ)上創(chuàng)建了元數(shù)據(jù)。其中的維度、類別還有層次關(guān)系是屬于典型的技術(shù)型元數(shù)據(jù),而業(yè)務系統(tǒng)中與之對應的術(shù)語則屬于業(yè)務元數(shù)據(jù)。比如日期、區(qū)域、產(chǎn)品、客戶年齡和客戶狀況等維度,實際銷售、計劃銷售、預測銷售、計劃偏差和預測偏差等指標皆屬于元數(shù)據(jù)。這些數(shù)據(jù)在分析中起到了極為重要的作用。
          ?
          ?
          元數(shù)據(jù)的作用
          ?
          ??? 從元數(shù)據(jù)的類型和作用來看,元數(shù)據(jù)實際上是要解決何人在何時、何地為了什么原因及怎樣使用數(shù)據(jù)倉庫的問題。再具體化一點,元數(shù)據(jù)在數(shù)據(jù)倉庫管理員的眼中是數(shù)據(jù)倉庫中的包含了所有內(nèi)容和過程的完整知識庫和文檔,而在最終用戶(即數(shù)據(jù)分析人員)眼中,元數(shù)據(jù)則是數(shù)據(jù)倉庫的信息地圖。
          ?
          ??? 數(shù)據(jù)分析員為了能有效地使用數(shù)據(jù)倉庫環(huán)境,往往需要元數(shù)據(jù)的幫助。尤其是在數(shù)據(jù)分析員進行信息分析處理時,他們首先需要去查看元數(shù)據(jù)。元數(shù)據(jù)還涉及到數(shù)據(jù)從操作型環(huán)境到數(shù)據(jù)倉庫環(huán)境中的映射。當數(shù)據(jù)從操作型環(huán)境進入數(shù)據(jù)倉庫環(huán)境時,數(shù)據(jù)要經(jīng)歷一系列重大的轉(zhuǎn)變,包含了數(shù)據(jù)的轉(zhuǎn)化、過濾、匯總和結(jié)構(gòu)改變等過程。數(shù)據(jù)倉庫的元數(shù)據(jù)要能夠及時跟蹤這些轉(zhuǎn)變,當數(shù)據(jù)分析員需要就數(shù)據(jù)的變化從數(shù)據(jù)倉庫環(huán)境追溯到操作型環(huán)境中時,就要利用元數(shù)據(jù)來追蹤這種轉(zhuǎn)變。另外,由于數(shù)據(jù)倉庫中的數(shù)據(jù)會存在很長一段時間,其間數(shù)據(jù)倉庫往往可能會改變數(shù)據(jù)的結(jié)構(gòu)。隨著時間的流逝來跟蹤數(shù)據(jù)結(jié)構(gòu)的變化,是元數(shù)據(jù)另一個常見的使用功能。
          ?
          ??? 元數(shù)據(jù)描述了數(shù)據(jù)的結(jié)構(gòu)、內(nèi)容、鏈和索引等項內(nèi)容。在傳統(tǒng)的數(shù)據(jù)庫中,元數(shù)據(jù)是對數(shù)據(jù)庫中各個對象的描述,數(shù)據(jù)庫中的數(shù)據(jù)字典就是一種元數(shù)據(jù)。在關(guān)系數(shù)據(jù)庫中,這種描述就是對數(shù)據(jù)庫、表、列、觀點和其他對象的定義;但在數(shù)據(jù)倉庫中,元數(shù)據(jù)定義了數(shù)據(jù)倉庫中的許多對象——表、列、查詢、商業(yè)規(guī)則及數(shù)據(jù)倉庫內(nèi)部的數(shù)據(jù)轉(zhuǎn)移。元數(shù)據(jù)是數(shù)據(jù)倉庫的重要構(gòu)件,是數(shù)據(jù)倉庫的指示圖。元數(shù)據(jù)在數(shù)據(jù)源抽取、數(shù)據(jù)倉庫開發(fā)、商務分析、數(shù)據(jù)倉庫服務和數(shù)據(jù)求精與重構(gòu)工程等過程都有重要的作用,元數(shù)據(jù)在整個數(shù)據(jù)倉庫開發(fā)和應用過程中的巨大影響。因此,設(shè)計一個描述能力強并且內(nèi)容完善的元數(shù)據(jù),對數(shù)據(jù)倉庫進行有效地開發(fā)和管理具有決定性意義。
          ?
          ?
          ?
          ?
          ?
          ?
          ?
          ?
          ?
          --------------------------------------
          ?
          ??? 在數(shù)據(jù)倉庫中,元數(shù)據(jù)的概念被強化了,在每個數(shù)據(jù)倉庫項目的總體架構(gòu)圖中,幾乎都有”元數(shù)據(jù)治理”模塊來橫貫其他模塊。顯然,這表示它是一種基礎(chǔ)模塊,可以服務于諸如OLAP、ETL等其他模塊。但實際上,卻很少見一個完成了的數(shù)據(jù)倉庫項目中有獨立的元數(shù)據(jù)部分。大多項目,元數(shù)據(jù)都是分散在各種BI工具中。
          ??? 這些分散的元數(shù)據(jù)是不一致的,例如對一張表的結(jié)構(gòu)定義,可能出現(xiàn)在ER設(shè)計工具中,當然也會在數(shù)據(jù)庫的數(shù)據(jù)字典中,還有可能在ETL工具的源、目標定義中。如此多的重復定義,當然會發(fā)生數(shù)據(jù)不一致現(xiàn)象,卻也正好為元數(shù)據(jù)治理工具留下廣闊空間,它們的作用就是集中治理這些分散的元數(shù)據(jù),就像數(shù)據(jù)倉庫一樣,從不同的源采集數(shù)據(jù),有ETL,也有清洗,甚至重新建模。

          ??? 元數(shù)據(jù)(metadata)這個詞現(xiàn)在到處泛濫。其實我對元數(shù)據(jù)充其量只能說有自己的理解而已,并不能確信這個理解是正確的。
          ?
          ??? 我認為,數(shù)據(jù)結(jié)構(gòu)分為三個層次(UML可是四層哦):
          ??? 實例層:直接描述特異化的數(shù)據(jù)場景;
          ??? 元數(shù)據(jù)層:描述實例的結(jié)構(gòu)的一組數(shù)據(jù);
          ??? 元數(shù)據(jù)的元數(shù)據(jù)層:描述元數(shù)據(jù)的結(jié)構(gòu)的一組數(shù)據(jù)。
          ??? 元數(shù)據(jù)就是用來描述實例或者描述元數(shù)據(jù)的一種結(jié)構(gòu)。
          ??? 元數(shù)據(jù)的特征有這樣幾個:第一是元數(shù)據(jù)一定不依賴業(yè)務反而被業(yè)務所依賴,相當業(yè)務的多變性,元數(shù)據(jù)是相對穩(wěn)定的;第二是元數(shù)據(jù)具有廣泛的可復用性,而業(yè)務的可復用性極差;第三是元數(shù)據(jù)注重結(jié)構(gòu),而業(yè)務注重行為。
          ?
          ??? 在Xml中,元數(shù)據(jù)就是模式(Schema),在數(shù)據(jù)庫中,元數(shù)據(jù)就是數(shù)據(jù)庫對象定義,包括表、視圖、關(guān)系約束、存貯過程、觸發(fā)器、函數(shù)、數(shù)據(jù)庫用戶、數(shù)據(jù)庫角色等等定義。在對象空間,元數(shù)據(jù)就是類型、接口、方法、方法參數(shù)、屬性的定義。在結(jié)構(gòu)化程序空間,元數(shù)據(jù)就是函數(shù)及函數(shù)的參數(shù)。
          ?
          ??? 我之所以反復強調(diào)參數(shù),是因為我們在定義一個接口或者方法的參數(shù)時總是非常隨便,但定義一個Xml文檔模式或者數(shù)據(jù)庫對象時總是小心翼翼的,很受束縛。這顯然有一定的不合理之處。仔細推敲,我的結(jié)論就是:第一,我們設(shè)計每個方法的參數(shù)時,特別是設(shè)計每個虛擬方法的參數(shù)時一定要小心一點,盡量不要濫用參數(shù)重構(gòu)。第二,我們在設(shè)計一個Xml文檔結(jié)構(gòu)或者數(shù)據(jù)庫結(jié)構(gòu)的時候可別那么畏首畏尾的,就象平時寫程序時設(shè)計一個方法的參數(shù)那樣。這樣就平衡了。
          ?
          ??? 總結(jié)以往多年的數(shù)據(jù)庫設(shè)計,我歸納為兩個原則和兩個方法:
          ??? 降冗優(yōu)先原則(降冗是數(shù)據(jù)庫設(shè)計時的首要要素);
          ??? 平行引用原則(所有的關(guān)系都必須是單向的并且不能交叉);
          ??? 依職責拆分方法(同一基數(shù)不同職責或者不同的維護方法或者不同的維護期必須拆分);
          ??? 依基數(shù)合并方法(同一基數(shù)且職責相同必須合并)。
          ?
          ??? 忽然發(fā)現(xiàn),其實這些原則和方法在整個元數(shù)據(jù)層都適用,不僅僅只針對數(shù)據(jù)庫設(shè)計。
          ?

          ?




          -The End-

          posted on 2008-10-06 16:05 decode360-3 閱讀(1067) 評論(0)  編輯  收藏 所屬分類: DW
          主站蜘蛛池模板: 平果县| 沈丘县| 松原市| 安陆市| 阳东县| 鹤峰县| 茌平县| 利川市| 拜泉县| 大兴区| 日喀则市| 紫阳县| 湘乡市| 昂仁县| 江西省| 乌拉特中旗| 远安县| 旅游| 东至县| 宁强县| 抚松县| SHOW| 民乐县| 宝山区| 延津县| 桑日县| 科尔| 诸城市| 修武县| 万全县| 昌乐县| 巴林左旗| 徐汇区| 永康市| 龙江县| 比如县| 湖南省| 忻州市| 普兰县| 邹城市| 汪清县|