數據倉庫

摘要:對於準備求職數據產品的童鞋來講,可能身邊沒有作數倉開發的朋友能夠請教。自學吧,而那幾本經典書籍裏面又過於理論,看起真是生不如死,並且數據產品並非數據開發,可能瞭解一些入門的常識,有個大概的概念就能夠了。我也一直零零散散的積累這方面的知識,這兩天梳理了下,造成下文。
關鍵詞: 數據產品

  數據倉庫能夠算是數據產品必需要了解的技術知識了, 在一年前的數據產品求職分析中,其中技能要求這一項中,數據倉庫但是佔了一席之地的。

  可是,對於準備求職數據產品的童鞋來講,可能身邊沒有作數倉開發的朋友能夠請教。自學吧,而那幾本經典書籍裏面又過於理論,看起真是生不如死,並且數據產品並非數據開發,可能瞭解一些入門的常識,有個大概的概念就能夠了。

  我也一直零零散散的積累這方面的知識,這兩天梳理了下,造成下文,但願對你們有所幫助,非專業數倉開發人員,若有不許確的地方,還望你們指正。

  文章結構

  1、數據倉庫是什麼

  2、數據倉庫有什麼特色

  3、爲何搭建數據倉庫

  4、數據倉庫結構

  5、ETL

  6、數據集市

  7、ODS

  8、元數據

  1、數據倉庫是什麼

  能夠理解爲:面向分析的存儲系統。

  也就是說數倉是存數據的,企業的各類數據往裏面塞,主要目的是爲了有效分析數據,後續會基於它產出供分析挖掘的數據,或者數據應用須要的數據,如企業的分析性報告和各種報表,爲企業的決策提供支持。

  上面的意思先理解着,接下來從頭講起,先看關係型數據庫,它能夠被劃分爲兩大基本類型:操做型數據庫和分析型數據庫。

  1. 操做型數據庫

  主要面向應用,用於業務支撐,支持對實際業務的處理,也能夠叫業務型數據庫。

  能夠理解爲一般意義上的數據庫(後端開發同窗口中的常常提到的就是這種)。

  2. 分析型數據庫

  主要面向數據分析,側重決策支持,做爲公司的單獨數據存儲,負責利用歷史數據對公司各主題域進行統計分析。

  因爲分析型數據庫中的操做都是查詢,所以也就不須要嚴格知足關係型數據庫一些設計規範,這樣的狀況下再將它歸爲數據庫不太合適,也容易不引發混淆,因此稱之爲數據倉庫。

  這裏能夠說一下,數據處理大體能夠分紅兩大類:OLTP(聯機事務處理)和OLAP(聯機分析處理)。

  OLTP(聯機事務處理)就是操做型數據庫的主要應用,更側重於基本的、平常的事務處理,包括數據的增刪改查。

  OLAP(聯機分析處理)就是分析型數據庫的主要應用,以多維度的方式分析數據, 這個後續會整理。

  2、數據倉庫有什麼特色

  相對於數據庫,數據倉庫有如下特色

  (1)面向主題

  數據倉庫經過一個個主題域將多個業務系統的數據加載到一塊兒,爲了各個主題(如:用戶、訂單、商品等)進行分析而建,操做型數據庫是爲了支撐各類業務而創建。

  (2)集成性

  數據倉庫會將不一樣源數據庫中的數據彙總到一塊兒。

  (3)歷史性

  較之操做型數據庫,數據倉庫的數據是爲企業數據分析而創建,因此數據被加載後通常狀況下將被長期保留,前者一般保存幾個月,後者可能幾年甚至幾十年。

  (4)時變性

  是指數據倉庫包含來自其時間範圍不一樣時間段的數據快照,有了這些數據快照之後,用戶即可將其彙總,生成各歷史階段的數據分析報告。

  (5)穩定性

  數據倉庫中的數據通常僅執行查詢操做,不多會有刪除和更新。可是需按期加載和刷新數據。

  3、爲何搭建數據倉庫

  簡單來講,就是爲了有效分析數據 。

  你說直接從業務數據庫中取數據來作分析?

  也不是不能夠,就是業務系統多,業務複雜時,會發現結構複雜,數據髒亂,難以理解,缺乏歷史,大規模查詢緩慢這些問題。

  業務到必定規模,你們須要面臨的問題愈來愈複雜和深刻,數據需求再也不只是昨日的營收,上月的uv這些,而是「28到45歲女性在社區的活躍度與公司策劃的專題內容活動的關係」這類精細化的分析,而從數據庫是很難取出這類數據的。

  畢竟業務型數據庫是爲了支撐業務設計的,不是爲了查詢和分析數據。

  4、數據倉庫結構

  用AXURE畫了個結構圖,以下:簡單來講,就是把各數據源的數據ETL到數倉中,數倉再對數據進行集成和統計,而後再輸出給各數據應用,圖中涉及的模塊,接下來會分別介紹。

\
  5、ETL

  ETL分別表明:抽取extraction、轉換transformation、加載load。

  (1)抽取(Extract)

  從數據來源提取指定數據,數據是須要指定的,不是全部的數據都要抽取過來, 某些源數據對於分析而言沒有價值,或者其可能產生的價值,遠低於儲存這些數據所須要的數據倉庫的實現和性能上的成本,就不會抽取了。

  (2)轉換(Transform)

  將數據轉換爲指定格式並進行數據清洗保證數據質量。

  數據轉換,如包括編碼轉換(m/f->男/女),字段轉換(balance->bal),度量單位的轉換(cm->m),數據粒度的轉換。業務系統數據存儲很是明細的數據,而數據倉庫中數據是用分析的,不須要很是明細,會將業務系統數據按照數據倉庫粒度進行聚合。

  數據清洗,如會對不完整數據,錯誤數據和重複數據等髒數據進行清洗。

  (3)加載(Load)

  將轉換事後的數據加載到目標數據倉庫,加載可分爲兩種:

  全量加載:一次對所有數據進行加載。

  增量加載:通常首次須要全量加載,可是在第二次週期或者第三次週期的時候仍然全量加載的話,耗費了極大的物理和時間資源。有可能部分數據源並未發生變化,而有的數據源可能只是增長了少許的數據。 對數據源中的數據只考慮新修改的記錄和新插入的記錄就是增量加載。

  ETL極可能是數據倉庫開發中最耗時最耗資源的一個環節,由於該環節要整理各大業務系統中雜亂無章的數據,並協調元數據上的差異,工做量很大,但也是構建數據倉庫的重要環節,對數據倉庫的後續環節影響比較大。

  6、數據集市

  數據集市(DM)能夠理解爲是一種「小型數據倉庫」,通常面向部門、單個主題或特定應用,且之間互不影響。

  能夠分爲如下兩種:

  獨立數據集市:有本身的源數據庫和ETL架構;

  非獨立數據集市:沒有本身的源數據,它的數據來自數據倉庫。當用戶或者應用程序不須要/沒必要要/不容許訪問整個數倉數據時,就能夠直接訪問數據集市,爲用戶提供一個數據倉庫的「子集」。

\
  簡單理解就是一個結構徹底和數倉同樣,有ETL,而後本身存儲和計算;另外一種就是直接用數倉處理過的數據,再次進行組合集成。可能後面結合數據分層更好理解。

  7、ODS

  ODS:全稱是Operational Data Store,操做數據存儲。

  存儲各大業務型數據庫ETL後的數據,是最接近數據源中數據的一層,主要目的是爲了數據集中。

  整體上大可能是按照源業務系統的分類方式而分類的,所以會具備鮮明的業務數據庫的特徵,甚至還具備必定的關係數據庫中的數據範式的組織形式。

  可是不等同於原始數據,數據格式按照數倉要求統一,並通過簡單的清洗。

  8、元數據

  元數據(Meta Date),即數據的數據,元數據可分爲技術元數據和業務元數據。

  技術元數據爲開發和管理數據倉庫的IT 人員使用,描述了與數據倉庫開發、管理和維護相關的數據,包括數據源信息、數據轉換描述、數據倉庫模型、數據清洗與更新規則、數據映射和訪問權限等。

  而業務元數據爲管理層和業務分析人員服務,從業務角度描述數據,包括商務術語、數據倉庫中有什麼數據、數據的位置和數據的可用性等,幫助業務人員更好地理解數據倉庫中哪些數據是可用的以及如何使用。html

相關文章
相關標籤/搜索