浅谈数据治理
文章目錄
- 01 引言
- 02 為何需要數據治理?
- 2.1 數據治理定義
- 2.2 何為數據治理?
- 03 數據治理設計
- 3.1 數據規則
- 3.1.1 標準
- 3.1.2 模型
- 3.2 數據處理中間層
- 3.2.1 元數據
- 3.2.2 主數據
- 3.3 數據共享
- 04 文末
01 引言
在之前的一篇博客《細談數據倉庫》我大致講解了為何需要數據倉庫?數據倉庫的概念以及分層等。與數據倉庫緊密相關聯的概念就是 “數據治理” 了,也就是本文要講的內容。
在講解數據治理前,需要了解一下相關的概念,這里先貼出來 (可以先跳過):
- 元數據(Metadata ):描述數據的數據或關于數據的結構化數據,比如“年齡:18歲”,年齡是一種屬性,用來描述具體的“值”的,而這種屬性的信息就叫元數據;
- 主數據(Master Data):企業內需要在多個部門、多個信息系統之間共享的數據,如客戶、供應商、組織、人員、項目、物料等;
- 資源目錄:資源目錄指在數據庫表基礎上建立的,用于對內部系統或對外部應用共享的數據資源清單;
- 數據模型:數據模型是通過對元數據表描述信息、字段描述信息等元數據的定義,來抽象建立元數據實體表邏輯和物理模型;
- 血緣分析:是保證數據融合(聚合)的一個手段,通過血緣分析實現數據融合處理的可追溯;
02 為何需要數據治理?
2.1 數據治理定義
網上對數據治理的定義褒貶不一,而我理解的數據治理就是:“處理高質量的數據,以便于高層做正確的決策”!
2.2 何為數據治理?
首先我們需要明白為何數據需要治理?下面來舉個例子:
假設一家公司下有很多家子公司,每家子公司都有一個財務部門,每個財務部門都有一個財務系統,財務數據都存入他們的數據庫。何時有一個問題來了,年底了,總公司的高層需要知道每年的年度報表,需要知道公司的盈利情況,那么如何解決呢?
針對上述問題,我們會很自然的想到一個方案,那就設計一個類似于 “ 數據中臺 ” 的系統,也就是把每個子公司的財務系統數據庫里的數據,匯聚(即ETL)到我們數據中臺通過數據建模定義“數據倉庫表”里面去,這樣我們就能看到每個子公司財務系統里面的數據了,減少了多個子公司數據庫的連庫表查詢,可以看到,這是十分方便和高效的。但是,這會有一個問題,因為高層不熟悉我們的系統,他們往往希望看到他們期望的東西,例如盈利的趨勢,走向等,那該如何解決呢?其實這也就是我們講數據治理的核心,即“質量”。
考過 PMP的都知道有個鐵三角,即“成本、效率、質量”,這三者同時保障是很困難的,但是有了 “數據治理” 我們可以提高“效率”(如前面講的“數據中臺設計數據倉庫表”),再提高“質量”,進行了數據治理之后方便高層做出決策,進而減少“成本”。
如何保證質量?這個時候就需要我們設計一個高質量的模型了,這個模型需要我們結合財務高手一起來設計,設計的前提是我們財務的基礎數據(即每個子公司的財務系統數據),協同財務高手的主要目的是他們的經驗(因為技術不懂財務知識)。假如他們有一套財務公式可以預測盈利的走勢,那么,我們可以使用到我們的 “數據中臺” 系統通過模型設計把這套財務公式應用進來,進而保證了“質量”。
再回顧之前開頭說的一句話:“數據治理就是處理高質量的數據,以便于高層做正確的決策!”,通過上面的例子,是不是對“數據治理”這個概念有所理解了呢?如果還不是很清晰,可以繼續往下閱讀。
03 數據治理設計
先貼出一張設計圖:
這是我自己畫的一張關于“數據治理的設計圖”,可以看到我把它分為了三層,分別為:“數據規則層”、“數據處理中間層”、“數據共享層”。
3.1 數據規則
3.1.1 標準
在數據治理之前,我們必須定義“標準”,這些標準都是大家公認的,比如:“國家標準”、“行業標準”、“地區標準”等。這些標準我們可以在網站里看到:http://std.samr.gov.cn/gb/
所以我們定義標準前,必須是按照全國的標準才是最規范的,例如:1表示男,2表示女等。
3.1.2 模型
這里的模型主要指的是 “元模型” 的設計,比如我們期望的數據在我們的數據倉庫里面存儲的規則是怎樣的?例如:有哪些字段?每個字段能存什么類型?每個字段能存的值有哪些等等?
3.2 數據處理中間層
在前面,我們已經有了一個“標準”以及“模型”,那么我們可以設計數據屬性了,也就是數據處理中間層要做的事情。
3.2.1 元數據
元數據(Metadata ):描述數據的數據或關于數據的結構化數據,比如“年齡:18歲”,年齡是一種屬性,用來描述具體的“值”的,而這種屬性的信息就叫元數據;
可以說 “元數據” 是前面說的 “模型” 來定義的,這里定義的元數據,就是我們期望的 “未來存入數據定義” ,例如:這里定義了MySQL的某張表的數據(列字段,列信息、列長度等)。
還可以理解 “元數據”對應的 “實際數據” 就是ods層的數據。
數據從源表拉過來,進行etl,比如mysql映射到hive,那么到了hive里面就是ods層,但是,這一層面的數據卻不等同于原始數據,為我們定義表的數據。
3.2.2 主數據
主數據(Master Data):企業內需要在多個部門、多個信息系統之間共享的數據,如客戶、供應商、組織、人員、項目、物料等;
我理解的 “主數據”,就是“元數據”的一種抽取。我們都知道“元數據”都是為了方便高效的去整理和處理數據,只能說從程序中優化了來自各系統的數據,并把它們規范存儲起來,但是這些數據不能保證 “質量” 的,如果保證到了“質量”,這個數據就是“主數據”了。
主數據就是有價值的的數據,例如:這些數據可以跨部門共享的,如OA打卡數據,每個部門都需要用到。
3.3 數據共享
我把設計圖的最后一層定義為 “數據共享層”,根據意思,就是把上一層的數據共享出去,可以通過“開發API”等技術共享出去,當然這些數據共享是需要通過逐層審批的,不能隨意的共享出去,因為這些數據已經是 “有價值” 的了,具體怎么申請,是否需要充值,這個企業的業務需求了。
04 文末
其實最后還有一層是 “安全”,做任何的系統都是需要保障安全,具體的安全規則如何定義?這里就不再多說了。
本文通過個人的理解,使用淺顯的話來描述了“數據治理”,難免里面有不正確的看法,有疑問的童鞋歡迎留下評論。
總結
- 上一篇: Topcoder EllysBottle
- 下一篇: 百度迟到移动互联网:寻入口级产品 文化成