數據倉庫中的拉鏈表


1)數倉項目需求分析:
1.實時采集埋點的用戶行為數據(埋點數據一般采集的是用戶行為數據)
2.實現數據倉庫的分層搭建
3.每天定時導入業務數據(業務數據:訂單,注冊,登錄等數據)
4.根據數據倉庫中的數據進行報表分析

數據產生的來源:

 

 

 數據來源:

(1)埋點用戶行為數據:用戶在使用產品過程中,與客戶端產品交互過程中產生的數據,比如頁面瀏覽,點擊,停留,評論,點贊,收藏等

(2)業務交互數據:業務流程中產生的登錄,訂單,用戶,商品,支付等相關的數據,通常存儲在DB中,包括Mysql,Oracle等。

 ods(原始數據層):存放原始數據,直接加載原始日志,數據。數據保持原貌不做處理。【例如:將原數據的json加載成一個字段,導入ods層表中】

dwd(明細數據層):結構和粒度與ODS層保持一致,對ODS層數據進行清洗(去除空值,臟數據,超過極限范圍的數據),也有公司叫DWI【例如:將json串中的每個字段解析出來導入dwd層表中,或者形成商品的各種類型的表】

dws(服務數據層):這層一般會形成一個寬表。【例如:將用戶行為數據的各種訂單,支付,評論等數據整合到一張寬表中】

ads(數據應用層):數據應用層,各種統計報表。

把相關的各種表整理成兩種:事實表和維度表兩種,所有維度表圍繞着事實表進行解釋。

事實表和維度表:事實表就是你要關注的內容。維度表就是你觀察該事務的角度,是從哪個角度觀察該內容的。例如:某地區商品的銷量,是從地區這個角度觀察商品銷量的,

事實表就是銷量表,維度表就是地區表。(還有包子的銷量,維度表是包子的種類,包子的門店,包子的銷售時間)

事實表的分類:

(1)事務事實表:

(2)周期快照事實表:

(3)累積快照事實表:

在維度建模的基礎上又分為三種模型:星型模型,雪花模型,星座模型。 

星型模型(性能優先,級數少,減少join操作):雪花模型和星型模型的區別在於維度的層級,標准的星型模型維度只有一層,而雪花模型可能會涉及多級。

雪花模型(靈活優先,級數多,抽取更詳細):

 

 星座模型:星座模型與前兩種的區別是事實表的數量,星座模型是基於多個事實表

 

 Tez是一個Hive的執行引擎,性能優於MR. 

 新增表,全量表,新增+變化(拉鏈表)

https://blog.csdn.net/weixin_43679675/article/details/89453819  

拉鏈表:記錄歷史數據的每個狀態,記錄一個事物從開始,一直到當前狀態的所有變化的信息;拉鏈表通常是對賬戶信息的歷史變動進行處理保留的結果。

拉鏈表形成過長:

訂單當日全部數據和mysql中每天變化的數據拼接在一起,形成一個新的臨時拉鏈表數據,
用臨時的拉鏈表覆蓋舊的拉鏈表數據(這就解決了hive表中數據不能更新的問題)
拉鏈表就增加了兩個字段信息:有效開始日期和有效結束日期

olap和oltp的區別:

1、基本含義不同:OLTP是傳統的關系型數據庫的主要應用,主要是基本的、日常的事務處理,記錄即時的增、刪、改、查,比如在銀行存取一筆款,就是一個事務交易。OLAP即聯機分析處理,是數據倉庫的核心部心,支持復雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。典型的應用就是復雜的動態報表系統。

2、實時性要求不同:OLTP實時性要求高,OLTP 數據庫旨在使事務應用程序僅寫入所需的數據,以便盡快處理單個事務。OLAP的實時性要求不是很高,很多應用頂多是每天更新一下數據。

3、數據量不同:OLTP數據量不是很大,一般只讀/寫數十條記錄,處理簡單的事務。OLAP數據量大,因為OLAP支持的是動態查詢,所以用戶也許要通過將很多數據的統計后才能得到想要知道的信息,例如時間序列分析等等,所以處理的數據量很大。

4、用戶和系統的面向性不同:OLTP是面向顧客的,用於事務和查詢處理。OLAP是面向市場的,用於數據分析。

5、數據庫設計不同:OLTP采用實體-聯系ER模型和面向應用的數據庫設計。OLAP采用星型或雪花模型和面向主題的數據庫設計。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM