日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据仓库建设Best Pratice学习

發布時間:2024/1/1 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据仓库建设Best Pratice学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學前準備

數據倉庫是什么?

從字面上理解,說白了就是把數據存在一個地方,類似于現實生活中的倉庫,之所以叫數據倉庫,也是由于它的一些特性

數據倉庫的作用,可以分為以下幾點:

  • 存儲:數據倉庫將接收和存儲來自多個數據源的數據。

  • 處理:ETL。

  • 訪問:為企業的分析和決策提供支持。

數據倉庫的特點:

  • 面向主題,基本的主題比如銷量、用戶。而普通數據庫一般面向事務,比如用戶下訂單、用戶注冊登錄
  • 數據倉庫是集成的,數據來源于分散的操作型數據,將數據進行ETL之后才能進入數據倉庫

學習數倉,要學些什么?

  • 數據倉庫的基礎理論
  • 別人是怎么建數倉的
  • 為什么這樣建設數倉,為什么這樣定義數倉的層級
  • 數倉的理論知識由淺入深有哪些

學成數槍之后,我要會做些什么,掌握了什么能力?

從零開始建設一個數倉,并為企業帶來收益

應該從哪些資料中學習 ?

書:《阿里巴巴大數據建設指南》

網站:正在收集

具體要學些什么,學習的順序?

  • 為什么要建設數倉?
  • 數倉的基礎理論,
  • 模型的層次結構,為什么要建這一層?每一層的作用
  • 維度建模
  • 事實表設計
  • 元數據
  • 數據質量
  • 數據應用
  • 每一步的學習具體要用到哪個資料?

    可以用網上找到的數倉建設指南,最好尋找類似工作中使用的數倉,結合自己在工作中的理解,縮小學習資料的范圍

    數據倉庫學習

    一. 為什么要建設數倉

    其實不建設數倉,也可以在業務型數據庫中完成數據分析,支撐業務決策,但是業務型數據庫有以下缺點:

    • 業務型數據庫為開發和操作而建立主要面向的用戶是C端用戶和開發人員,不適合數據分析
    • 數據流轉不清晰,使用三范式建模而不是維度建模
    • 數據質量不可預估,可能存在許多臟數據
    • 查詢速度慢,OLTP型數據庫不適合查詢超大數據量

    而數據倉庫的特點就是適合分析業務,下面是業務數據庫和數據倉庫的對比

    ?二. 數據倉庫基礎理論

    維度建模:維度建模從分析決策的需求出發構建模型,為分析需求服務(和數倉的特點相同,所以適合數據倉庫建模),主要由事實表和維度表兩種類型構成,典型代表是星型模型

    三范式:??數據庫三大范式通俗解釋

    三. 模型的層次結構

    1. 數據源層:ODS(Operational Data Store)

    ODS 層,是最接近數據源中數據的一層,為了考慮后續可能需要追溯數據問題,因此對于這一層就不建議做過多的數據清洗工作,原封不動地接入原始數據即可,至于數據的去噪、去重、異常值處理等過程可以放在后面的 DWD 層來做。

    2. 數據倉庫層:DW(Data Warehouse)

    數據倉庫層是我們在做數據倉庫時要核心設計的一層,在這里,從 ODS 層中獲得的數據按照主題建立各種數據模型。

    DW 層又細分為?DWD(Data Warehouse Detail)層、DWM(Data WareHouse Middle)層和?DWS(Data WareHouse Servce) 層。

    1) 數據明細層:DWD(Data Warehouse Detail)

    該層一般保持和 ODS 層一樣的數據粒度,并且提供一定的數據質量保證。DWD 層要做的就是將數據清理、整合、規范化,臟數據都會被處理

    同時,為了提高數據明細層的易用性,該層會采用一些維度退化手法,將維度退化至事實表中,減少事實表和維表的關聯

    另外,在該層也會做一部分的數據聚合,將相同主題的數據匯集到一張表中,提高數據的可用性 。

    2) 數據中間層:DWM(Data WareHouse Middle)

    該層會在 DWD 層的數據基礎上,數據做輕度的聚合操作,生成一系列的中間表,提升公共指標的復用性,減少重復加工。

    直觀來講,就是對通用的核心維度進行聚合操作,算出相應的統計指標

    在實際計算中,如果直接從 DWD 或者 ODS 計算出寬表的統計指標,會存在計算量太大并且維度太少的問題,因此一般的做法是,在 DWM 層先計算出多個小的中間表,然后再拼接成一張 DWS 的寬表。由于寬和窄的界限不易界定,也可以去掉 DWM 這一層,只留 DWS 層,將所有的數據再放在 DWS 亦可。

    3) 數據服務層:DWS(Data WareHouse Servce)

    DWS 層為公共匯總層,會進行輕度匯總,粒度比明細數據稍粗,基于 DWD 層上的基礎數據,整合匯總成分析某一個主題域的服務數據,一般是寬表。DWS 層應覆蓋 80% 的應用場景。又稱數據集市或寬表。

    按照業務劃分,如主題域流量、訂單、用戶等,生成字段比較多的寬表,用于提供后續的業務查詢,OLAP 分析,數據分發等。

    一般來講,該層的數據表會相對比較少,一張表會涵蓋比較多的業務內容,由于其字段較多,因此一般也會稱該層的表為寬表。

    3. 數據應用層:APP(Application)

    在這里,主要是提供給數據產品和數據分析使用的數據,一般會存放在 ES、 PostgreSql、Redis 等系統中供線上系統使用,也可能會存在 Hive 或者 Druid 中供數據分析和數據挖掘使用。比如我們經常說的報表數據,一般就放在這里。

    4. 維表層(Dimension)

    如果維表過多,也可針對維表設計單獨一層,維表層主要包含兩部分數據:

    高基數維度數據:一般是用戶資料表、商品資料表類似的資料表。數據量可能是千萬級或者上億級別。

    低基數維度數據:一般是配置表,比如枚舉值對應的中文含義,或者日期維表。數據量可能是個位數或者幾千幾萬。

    總結

    以上是生活随笔為你收集整理的数据仓库建设Best Pratice学习的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。