關於數倉基礎知識的超全概括

2020-12-04 人人都是產品經理

編輯導語:數據倉庫,是為企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合,它可以為需要業務智能的企業,提供指導業務流程改進、監視時間、成本、質量以及控制。在本篇文章中,作者就關於數倉的基礎知識進行了超全概括。

面對大數據的多樣性,在存儲和處理這些大數據時,我們就必須要知道兩個重要的技術,其分別是:數據倉庫技術、Hadoop。當數據為結構化數據,來自傳統的數據源,則採用數據倉庫技術來存儲和處理這些數據,如下圖:

1. 什麼是數據倉庫

數據倉庫之父 Bill Inmon 將數據倉庫描述為一個面向主題的、集成的、隨時間變化的、非易失的數據集合,用於支持管理者的決策過程。

數據倉庫的目的是構建面向分析的集成化數據環境,為企業提供決策支持。

數據倉庫本身並不 「生產」 任何數據;同時自身也不需要 「消費」 任何的數據,數據來源於外部,並且開放給外部應用,這也是為什麼叫 「倉庫」 ,而不叫 「工廠」 的原因。

2. 數據倉庫的基本概念

2.1 數據源

構建一個數據倉庫,必然要有充足的數據源,從外部為數據倉庫系統提供進行分析的 「原材料」 ——數據,這些數據來源稱為數據倉庫的數據源。

數據源並不局限於傳統資料庫,可以是非結構化的信息,如爬取日誌,也可以是埋點日誌。

2.2 ETL

在 BI 項目中 ETL 會花掉整個項目至少 1/3 的時間,ETL 設計的好壞直接關係到 BI 項目的成敗。其中,花費時間最長的是 「T」(Transform,清洗、轉換)的部分,一般情況下這部分工作量是整個 ETL 的 2/3 。

ETL 是將業務系統中的數據經過抽取(Extract)、清洗轉換(Transform)和加載(Load)到數據倉庫的過程,目的是將企業中的分散、凌亂、標準不統一的數據整合到一起,為企業的決策提供分析依據。

ETL 處理分為五大模塊,分別是:數據抽取、數據清洗、數據轉換、規則檢查、數據裝載。各模塊之間靈活組合,形成 ETL 處理流程。下面簡單介紹一下各模塊之間的功能。

2.2.1 數據抽取

在構建數據倉庫過程中,數據源所提供的數據並不都是有用的,有些數據對決策並不能提供支持。

同時,外部數據源中數據冗餘的現象也很普遍。數據倉庫既然是面向主題的,那麼在數據源中,只有那些與主題相關的內容才是必需的、有使用價值的。

因此,必須以主題的需求為依據,對數據源的內容進行有目的地選擇,這一過程被稱為「數據抽取」(Data Extraction)。對於數據的抽取,是從各個不同的數據源抽取到 ODS(Operational Data Store,操作型數據存儲)中。

具體步驟為,首先要搞清楚數據是從哪幾個業務系統中來,各個業務系統的資料庫伺服器運行什麼 DBMS ,是否存在非結構化的數據等,當收集完這些信息後才可以進行數據抽取的設計。

1)對於與存放 DW 的資料庫系統相同的數據源處理方法

這類數據源在設計上比較容易處理。一般情況下,DBMS(Mysql、SQLServer)都會提供資料庫連接功能,在 DW 資料庫伺服器和原業務系統之間建立直接的連接關係,接下來就可以寫查詢語句直接訪問。

2)對於與存放 DW 的資料庫系統不同的數據源處理方法

對於這類數據源,一般情況下也可以通過 ODBC 的方式建立資料庫連接。如果不能建立資料庫連接,可以用兩種方法完成,一種是通過工具將數據源導出成 .txt 或者 .xls 文件,然後再將這些源系統文件導入到 ODS 中。另一種方法是通過程序接口來完成。

3)對於文件類型數據源(.txt/.xls)

業務人員可以利用資料庫工具將這些數據導入到指定的資料庫,然後從指定的資料庫中抽取。或者業務人員藉助工具實現。

4)增量更新問題

對於數據量大的系統,必須考慮增量抽取。

一般情況,業務系統會記錄業務發生的時間,可以用作增量的標誌,每次抽取之前首先判斷 ODS 中記錄最大的時間,然後根據這個時間去業務系統取大於這個時間的所有記錄。

2.2.2 數據清洗轉換

一般情況下,數據倉庫分為 ODS、DW 兩部分。通過的做法是從業務系統到 ODS 做清洗,將髒數據和不完整數據過濾掉,再從 ODS 到 DW 的過程中轉換,進行一些業務規則的計算和聚合。

1)數據清洗

數據倉庫的數據源所提供的數據內容並不完美,存在著 「髒數據」 ——即數據有預設值、異常值等缺陷,而且在數據倉庫的各數據源之間,其內容也存在著不一致的現象。

為了控制這些 「髒數據」 對數據倉庫分析結果的影響程度,必須採取各種有效的措施,對其進行處理,這一處理過程稱為 「數據清洗」(Data Transform)。

對於任何數據倉庫而言,數據清洗過程都是不可缺少的。不同類型的 「髒數據」 ,清洗處理的方法是不同的。

對於預設值:產生的原因可能是,信息暫時無法獲取、信息被遺漏、屬性值不存在,比如一個兒童的固定收入等。

解決方法是,通過簡單的統計分析,得到含有缺失值的屬性個數,以及每個屬性的未缺失數、缺失數和缺失率。刪除含有缺失值的記錄、對可能值進行插補和不處理三種情況。

對於異常值:產生的原因可能是:業務系統檢查不充分。解決方法是,先對變量做一個描述性統計,進而查看哪些數據是不合理的。最常用的統計量是最大值和最小值,然後判斷變量是否超過了合理的範圍。

如果數據是符合正態分布,在原則下,異常值被定義為一組測定值中與平均值的偏差超過 3 倍標準的值,如果不符合正態分布,也可以用原理平均值的多少倍標準差來描述。

對於不一致值:產生的原因可能是:被挖掘的數據是來自不同的數據源、對於重複性存放的數據未能進行一致性更新造成。

例如:兩張表中都存儲了用戶電話號碼,但在用戶的號碼發生改變時只更新了一張表中的數據,那麼兩張表中就有了不一致的數據。

解決辦法是,注意數據抽取的規則,對於業務數據變動的控制應該保證數據倉庫中數據抽取是最新數據。

數據清洗是一個反覆的過程,不可能在幾天內完成,只有不斷的發現問題,解決問題。

對於是否過濾、是否修正一般要求客戶確認;對於過濾掉的數據,寫入 Excel 文件或者將過濾數據寫入數據表,在 ETL 開發的初期可以每天向業務單位發送過來數據的郵件,促使他們儘快的修正錯誤,同時也可以作為將來驗證數據的依據。

數據清洗需要注意的是不要將有用的數據過濾掉了,對於每個過濾規則認真進行驗證,並要用戶確認才行。

2) 數據轉換

數據轉換的任務主要是進行不一致的數據轉換、數據粒度的轉換和一些商務規則的計算等。

不一致的數據轉換:這個過程是一個整合的過程,將不同業務系統的相同類型的數據統一,比如同一個用戶在用戶管理系統的編碼是 XX0001 ,而在訂單系統的編碼是 YY0001 ,這樣在抽取過來之後統一轉換成一個編碼;數據粒度的轉換:業務系統一般存儲粒度較小的數據,而數據倉庫中的數據是用來分析的,不需要粒度很小的數據,一般情況下,會將業務系統數據按照數據倉庫粒度進行聚合;商務規則的計算:不同的企業有不同的業務規則,不同的數據指標,這些指標有時候不能簡單的加加減減就能完成,這個時候需要在 ETL 中將這些數據指標計算好了之後存儲在數據倉庫中,供分析使用。

2.3 元數據

所謂 「元數據」(Meta Data),就是關於數據倉庫中數據的數據。

它是關於數據倉庫中數據、操作數據以及應用程式的結構和意義的描述信息。它的作用類似於資料庫管理系統的數據字典,保存了邏輯數據結構、文件、地址和索引等信息。

廣義上講,在數據倉庫中,元數據描述了數據倉庫內數據的結構和建立方法的數據。

元數據是整個數據倉庫的核心部件,元數據管理器是企業級數據倉庫中的關鍵部件,貫穿數據倉庫構建的整個過程,直接影響著數據倉庫的構建、使用和維護。

將數據倉庫功能區域包括數據獲取、數據存儲和信息傳遞三個部分,按照這三個功能區域可以相應地將元數據分為數據獲取區域元數據、數據存儲區域元數據和信息傳遞區域元數據。

2.3.1 數據獲取區域元數據

在這個區域中,數據倉庫的處理過程主要包括數據抽取、數據轉換、數據清洗、數據集成、數據準備五項功能。

這些處理過程是通過相應的工具完成的,在這些處理過程進行時,相應的工具就記錄下了與這些處理相關的元數據。在以後的數據倉庫維護和管理過程中,技術人員也將使用這些已記錄下來的元數據管理和監控正在運行的功能。

2.3.2 數據存儲區域元數據

在這個區域中,數據倉庫的處理過程主要包括數據裝載、數據存儲、數據管理三項功能。

這些處理過程同樣是通過相應的工具完成的,在這些處理過程進行時,相應的工具就記錄下了與這些處理相關的元數據。

數據倉庫的管理員在進行完全數據刷新和數據增量裝載中會用到這些元數據;在數據備份、恢復的處理中,以及對數據倉庫的清理和數據定期歸檔中也需要用到這些元數據。對用戶來說,也有可能用到這些元數據。

2.3.3 信息傳遞區域元數據

在這個區域中,數據倉庫的處理過程主要包括報表生成、查詢處理、複雜分析三項功能。

信息傳遞區域的處理過程主要是為最終用戶服務的,所記錄的元數據為用戶提供預定義查詢和預定義報表解疑,定義了用戶查詢和報表生成需要輸入的相關參數,也包括與 OLAP 相關的元數據,系統的開發者和管理員都會參加這個區域的處理過程。

在該區域中,當用戶在查詢處理工具的輔助下構建一條查詢時,也會引用數據獲取區域和數據存儲區域中記錄的元數據。

元數據定義了數據倉庫中的數據的模式、來源、抽取和轉換規則等,而且是整個數據倉庫系統運行的基礎,元數據把數據倉庫系統中各個鬆散的組件聯繫起來,組成了一個有機的整體。

2.4 數據集市

數據集市(Data Market,DM)是為企業特定部門的決策支持而組織起來的一批數據和業務規劃。

它是一種小型的、部門級數據倉庫,習慣上稱之為 「主題域」 ,企業的不同部門有不同的 「主題域」 ,因而就有不同的數據集市。

數據集市有兩種類型:獨立型數據集市(Independent Data Mart)和從屬型數據集市(Dependent Data Mart)。

獨立型數據集市的實質,是為了滿足企業內各部門的分析需求而建立的微型數據倉庫。

有些企業在實施數據倉庫項目時,為了節省投資,儘快見效,針對不同部門的需要,分布建立起這類數據集市,已解決一些較為迫切的問題。

但是,當多個獨立的數據集市增長到一定規模後,由於沒有統一的數據倉庫協調,企業只會又增長出一些新的信息孤島,仍然不能以整個企業的視角來分析數據。

從屬型數據集市的內容並不直接來自外部數據源,而是從數據倉庫中得到。在數據倉庫內部,數據根據分析主題,劃分成若干個子集,進行組織、存放。

這種面向某個具體的主題而在邏輯上或物理上進行劃分所形成的數據子集,就是從屬型數據集市。數據劃分成集市之後,在進行某個確定主題的分析時,可以有效縮小數據的檢索範圍,明顯提高工作效率。

3. 數據倉庫的四個基本特徵

3.1 面向主題

傳統的操作型系統是圍繞組織的功能性應用進行組織的,而數據倉庫是面向主題的。

主題是一個抽象概念,簡單地說就是與業務相關的數據的類別,每一個主題基本對應一個宏觀的分析領域。數據倉庫被設計成輔助人們分析數據。

比如,一個公司要分析銷售數據,就可以建立一個專注於銷售的數據倉庫,使用這個數據倉庫,就可以回答類似於 「上一季度誰是我們這款產品的最佳用戶」 這樣的問題。

這個場景下的銷售,就是一個數據主題,而這種通過劃分主題定義數據倉庫的能力,就使得數據倉庫是面向主題的。

主題域是對某個主題進行分析後確定的主題的邊界,如客戶、銷售、產品都是主題域的例子。

3.2 集成

數據倉庫的一個重要的功能,是把不同的數據源的數據匯總到一起(如上圖)。

而集成是指把不同類型的數據源的數據進行整合,按照統一的形式進行集成。比如性別在一個數據源用男/女,另一個數據源用1/2,那麼在數據倉庫中,就需要對其進行統一。

3.3 非易失

傳統的操作型環境中的數據一般是要周期性地更新的,且一般按一次一條記錄的方式進行。但數據倉庫中的數據通常以批量方式載入與訪問(如上圖),但在數據倉庫環境中並不進行數據更新。

數據倉庫中的數據在進行裝載時是以靜態快照的格式進行的。當產生後繼變化時,一個新的快照記錄就會寫入數據倉庫。這樣,在數據倉庫中就保存了數據的歷史狀況。

3.4 時變性

時變性指的是數據倉庫中的每個數據單元只在某一時間是準確的,在一些情況下,記錄中加有時間戳,而在另外一些情況下記錄則包含一個事務的時間。

總之,任何情況下,記錄都包含某種形式的時間標誌用以說明數據在哪一時間是準確的。

除了以上四個特性外,數據倉庫還有一個非常重要的概念就是粒度,粒度問題遍布於數據倉庫體系結構的各個部分。粒度是指數據的細節或匯總程度,細節程度越高,粒度級別越低。

比如:單個事務是低粒度級別,而全部一個月事務的匯總就是高粒度級別(如下圖)。

粒度之所以是數據倉庫環境的關鍵設計問題,是因為它極大地影響數據倉庫的數據量和可以進行的查詢類型。粒度級別越低,數據量越大,查詢的細節程度越高,查詢範圍越廣泛,反之依然。

4. 資料庫和數據倉庫的區別

數據倉庫是在傳統資料庫的基礎之上發展起來的,但它並不是對傳統資料庫的徹底拋棄,而是旨在彌補傳統資料庫在數據分析能力方面的不足,以提供良好的大規模數據分析能力為己任,力圖為決策提供有效的技術支持。

和傳統資料庫相比,數據倉庫在總體特徵、面向用戶、存儲內容等方面,都有著重大的差異(如下表)。

數據倉庫是在資料庫已經大量存在的情況下,為了進一步挖掘數據資源、為了決策需要而產生的,它絕不是所謂的「大型資料庫」。

數據倉庫的出現,並不是要取代資料庫。目前,大部分數據倉庫還是用關係資料庫管理系統來管理的。可以說,資料庫、數據倉庫相輔相成、各有千秋。

本文由 @汪仔4623 原創發布於人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基於 CC0 協議

相關焦點

  • 300多張超全CAD練習圖紙,從基礎到高端,CAD入門必備
    今天整理的這300多張超全CAD練習圖紙就是專門為大家準備的。這套CAD練習圖紙分為17個章節,有300多張,圖紙素材數量多,類型齊全,是製圖新手練習非常好的資源。300多張超全CAD練習圖紙:CAD就是利用計算機可以進行與圖形的編輯、放大、縮小、平移、複製和旋轉等有關的圖形數據加工工作。設計人員通常用草圖開始設計,將草圖變為工作圖的繁重工作可以交給計算機完成。
  • 教師招聘考試教育理論基礎知識:思維過程
    教師招聘考試:北京人事考試網提供教師公共基礎知識考試資料,包括教師招聘公共基礎知識試題,教師招聘公共基礎知識答題技巧,公共基礎知識考試題型,備考指導。本文介紹教師招聘考試教育理論基礎知識:思維過程。更多北京教師招聘考試信息請關注北京教師招聘考試網在認知過程中,一個最抽象的成分,非思維莫屬,尤其是在關於思維過程的知識的時候,更為抽象。
  • 超全高中物理知識框架圖,讓零碎知識「串聯」起來
    超全高中物理知識框架圖,讓零碎知識「串聯」起來 2020-03-07 01:36 來源:新東方網編輯整理 作者:
  • 傳統數倉如何轉型大數據
    大家好,我是一哥,前幾天建了一個數據倉庫方向的小群,收集了大家的一些問題,其中有個問題,一哥很想去談一談——現在做傳統數倉,如何快速轉到大數據數據呢?其實一哥知道的很多同事都是從傳統數據倉庫轉到大數據的,今天就結合身邊的同事經歷來一起分享一下。
  • 關於木刻藝術,多調基礎和概括表現,求構圖完美多樣統一
    多調子刻作本身是一種表現形式,同時也為進行概括性刻作,奠定堅實的刻作基礎。多調子的刻作能力是至關重要的基本力。但這並不是說今後的創作必須是多調子的,或認為多調子是最高的表現形式。現在同學們畫的人物頭像素材,還是一般的素描效果。即使是多調子刻作,也不能照摹素描畫稿,還需根據木刻特點及其刻作特點進行藝術的處理和加工。
  • 初中數學關於有效數字,精確度和近似數的題型概括
    初中數學實數關於精確度,近似數,有效數字的概念應用,是中考經常考察的一個基礎類型題。但是好多同學有時候因為基礎概念的掌握不清,往往容易丟分,現就此做一曲分描述1.近似數:個數與準確數相近(比準確數略多或者略少些),這一個數稱之為近似數。
  • 長沙小升初數學必背基礎知識:互質數
    在長沙小升初的備考過程中,數學科目需要記憶的知識雖然不多,但往往差之毫厘失之千裡。所以在備考數學的過程中,大家一定要把基礎知識和公式準確的記憶下來。長沙奧數網編輯整理了長沙小升初階段數學必背的基礎知識,供小升初學生參考。   什麼叫互質數?
  • 2021多省公務員考試申論技巧:夯實歸納概括基礎——仔細審題
    歸納概括題是申論題目中的常考題,歸納概括能力也是作答所有題型的基礎。針對這種本身較為基礎的題型,怎麼少丟分是應該思考的關鍵,中公教育今天想跟大家分享,通過仔細審題減少歸納概括題丟分。一、概念認知1.什麼叫歸納概括?歸納:歸集收納,從材料中找到作答對象相關表述。概括:提料總結,將找到的材料表述總結成一些小短句或關鍵詞。2.什麼叫審題?
  • 關於製冷基礎知識
    冷凝器:將高溫高壓的製冷劑氣體冷凝成為液體,冷凝器的熱交換形式如下: (1)風冷式冷凝器:其結構為翅片管利用風機冷卻 製冷基礎知識 製冷劑進氣 (2)水冷式冷凝器結構有板式、套管式、殼管式三種形式 ●板式冷凝器 ●套管式冷凝器
  • 2019教師招聘考試專業基礎知識:關於現代文閱讀中說明文閱讀的幾點...
    (1)可能出現的考點:①關於全篇:問對象、問道理。"這篇文章的說明對象是什麼?""這篇文章說明了一個什麼道理?"②關於細節:問特徵。"請概括xxx事物的特徵","這篇文章從哪些方面說明了xxx?"(2)答題建議:主要從三個位置找——文章標題、開頭、結尾。
  • 2021山東軍轉幹公共基礎知識自然科技常識:細數漢朝著名的盛世
    2021山東軍轉幹公共基礎知識自然科技常識:細數漢朝著名的盛世 導語:2021年山東軍轉幹考試備考開始啦,為了幫助大家能夠順利參加考試,山東中公軍人考試網特整理了公基備考素材,下面為大家分享2021山東軍轉幹公共基礎知識自然科技常識:細數漢朝著名的盛世。
  • 2017醫學基礎知識:關於小腸液的分泌
    醫療衛生招聘考試資料:北京衛生人才網提供北京醫療衛生人才招聘考試複習資料,包括2017北京醫療衛生招聘考試資料、醫學基礎知識考點、解題技巧及醫生 護士招聘筆試面試輔導。2017醫學基礎知識:關於小腸液的分泌。更多醫療衛生招聘考試信息請點擊北京醫療衛生人才網。
  • 高中數學:集合、數列、三角函數等,超全知識點歸納!
    對於高中生來說高考數學必考知識點有哪些,高中數學重點知識歸納有哪些重要,需要我們掌握?這些都是一直以來困惑高中生的問題。像是:集合、數列、三角函數、立體幾何、解三角形這些,很多同學只是掌握了表面,並沒有徹底的理解。
  • 18個字母概括初中物理全部精髓!基礎差的同學最快逆襲技巧!
    特別是對於那些基礎比較差的同學,有沒有什麼辦法可以在最短的時間內逆襲呢?我們知道,整個初中物理主要包括內容有:「機械運動」、「聲現象」、「光現象」、「透鏡及其應用」、「質量和密度」、「力」、「壓強」、「密度」、「簡單機械」、「電學」、「熱學」「電與磁」等。
  • 福建臨床醫學基礎知識:關於細胞、組織的適應總結
    福建臨床醫學基礎知識:關於細胞、組織的適應總結 【導讀】福建衛生人才網:提供2019福建醫療衛生閱讀資料,如需了解關於醫療衛生備考的醫學基礎知識、臨床、護理、面試等資料,請點擊上方連結了解更多詳情。
  • 歸納概括題不會做?給你一套公式
    在做歸納概括題時,很多考生寫了不少,但最後得分卻不高。一可能是字數超了;二邏輯混亂;三概括能力弱;四字太醜!那怎樣才能做好歸納概括題呢?對於歸納概括題來講,當材料中出現歸納、概括、概述、簡述、總結等詞語時我們可以斷定這道題是歸納概括題。
  • 2020甘肅醫療衛生招聘考試公共基礎知識:關於地震的那些知識
    2020甘肅醫療衛生招聘考試公共基礎知識:關於地震的那些知識 2020甘肅事業單位醫療衛生崗招聘考試正在緊張備考中,甘肅事業單位E類考試主要考察醫學基礎知識和招聘崗位專業知識應用能力組成,部分事業單位還會考到
  • 化學「必修一」超全知識點整理,滿滿的乾貨!
    由於化學知識體系龐大,知識點繁多,容易出現邊學邊忘記的情況,今天為同學們整理了高中化學「必修一」的超全知識點整理,滿滿的全是乾貨!高一高二這部分知識欠缺的,一定提前彌補。需要電子版的可以私信,備註【資料】免費領取Word電子版。建議家長為孩子列印出來!同學家長放心,資料無償分享。
  • 教育綜合基礎知識實驗
    教育綜合基礎知識實驗 實驗 人物 觀點 學習不是桑代克所說的嘗試錯誤,而是「頓悟」 白鼠走迷宮實驗 託爾曼 學習不是在強化條件下形成刺激反應的聯結,而是在大腦中形成情境的「認知地圖」 水下打靶實驗 賈德 遷移的經驗類化說(概括說