學習筆記
學習渠道:https://www.bilibili.com/video/BV1qv411y7Wv?p=1
1.1 資料倉庫誕生原因
- 歷史資料積存
歷史資料使用頻率低,堆積在業務庫中,導致性能下降
隨著業務的進行,會源源不斷的產生資料,這些業務資料都會存盤在業務資料庫中,如 MySQL、Oracle 當中,支持業務系統的運行,
但當線上的業務系統運行超過一定時間,其積壓的歷史資料就會越來越多,對業務資料庫就會產生一定的負載,導致業務系統運行速度降低,
而這些歷史資料中,有相當一部分是冷資料,即業務系統一般對最近產生的資料(當天、一周內、一個月內)呼叫比較頻繁,對較早之前的資料呼叫頻率很低,
所以為了避免隨著時間的推移,歷史資料積壓對業務資料庫產生的影響,從而影響業務的正常運行,企業需要定期將積壓的歷史資料從業務資料庫中轉移出去,存盤到一個專門存放歷史資料的倉庫中,這就是資料倉庫,

- 企業資料分析需要
企業將歷史資料存盤到資料倉庫中后,這些資料不僅可以改善業務資料庫的性能;還可以用來進行資料分析,從而輔助管理層進行決策,以歷史資料積存為導向,這種發展是順其自然的,
但有的企業開始并沒有歷史資料積存,然而僅僅是對資料分析特別看重,這些企業可能會存在多個部門需要進行資料分析的任務,這些企業建立資料倉庫的原由,是以資料分析為導向的,
小結
企業無論是以歷史資料積存,還是資料分析為導向建立的資料倉庫,資料積存、資料分析,這兩個都是資料倉庫的基本功能與建設目的,
1.2 基本概述
資料倉庫(Data Warehouse,DW)
資料倉庫是一個面向主題的、集成的、非易失的且隨時間變化的資料集合
主要用于歷史資料的積存,并使用分析方法(OLAP、資料分析)進行分析整理,進而輔助決策,為管理者、企業系統提供資料支持,構建商業智能
資料倉庫特點
- 面向主題:為資料分析提供服務,根據主題將原始資料集合在一起
- 集成:原始資料來源于不同資料源,要整合成最終資料,需要經過抽取、清洗、轉換的程序(對資料進行統一的標準化、規范化)
- 非易失:保存的資料是一系列歷史快照,不允許被修改,只允許通過工具進行查詢、分析
- 時變性:數倉會定期接收、集成新的資料,從而反映出資料的最新變化
資料倉庫VS資料庫
-
資料庫面向事務設計,屬于OLTP(在線事務處理)系統,主要操作是隨機讀寫;在設計時盡量避免冗余,常采用符合范式規范來設計
-
資料倉庫是面向主題設計的,屬于OLAP(在線分析處理)系統,主要操作是批量讀寫;關注資料整合,以及分析、處理性能;會有意引入冗余,采用反范式方式設計

數倉主要是面向分析的
1.3 資料倉庫的技術實作
傳統資料倉庫
由關系型資料庫組成MPP(大規模并行處理)集群
大資料資料倉庫
利用大資料天然的擴展性,完成海量資料的存放
將SQL轉換為大資料計算引擎任務,完成資料分析

1.3.1 MPP架構 & 分布式架構(Hadoop架構)
1.4 常見資料倉庫產品
傳統資料倉庫
- Oracle RAC
- DB2
- Teradata
- Greenplum
大資料資料倉庫
- Hive
- Spark SQL
- HBase
- Impala
- HAWQ
- TIDB
2 第二部分
2.1 資料倉庫的架構

ETL(抽取、轉換、加載)完成資料的接入
ODS保存原始資料,完成資料的積存功能
DWS DWD 為資料分析提供服務
ADS 保存結果資料

2.2 ETL
將資料從來源端經過抽取(extract)、互動轉換(transform)、加載(load)至目的端的程序

ETL是構建資料倉庫的重要一環,用戶從資料源抽取出所需的資料,經過資料清洗,最終按照預先定義好的資料倉庫模型,將資料加載到資料倉庫中去
ETL規則的設計和實施約占整個資料倉庫搭建作業量的60%~80%
ETL負責將分布的、異構資料源中的資料抽取到臨時中間層后進行清洗,轉換、集成,最后加載到資料倉庫或資料集市中,成為聯機分析處理、資料挖掘的基礎,

資料抽取(Extraction)
抽取的資料源可以分為結構化資料、非結構化資料、半結構化資料
結構化資料一般采用JDBC、資料庫日志方式,非半結構化資料會監聽檔案變動
資料轉換(Transformation)
資料轉換要經歷資料清洗和轉換兩個階段
資料清洗主要是對出現的重復、二義性、不完整、違反業務或邏輯規則等問題的資料進行統一的處理
資料轉換主要是對資料進行標準化處理,進行欄位、資料型別、資料定義的轉換
資料加載(Loading)
將最后處理完的資料匯入到對應的目標源里
2.2.1 常見的ETL工具
-
結構化資料ETL工具
Sqoop
Kettle
Datastage
Informatica
Kafka -
非半結構化資料ETL工具
Flume
Logstash
2.3 ODS 資料操作層
資料存積
資料與原業務資料保持一致,可以增加欄位用來進行資料管理
存盤的歷史資料是只讀的,提供業務系統查詢使用
業務系統對歷史資料完成修改后,將update_type欄位更新為UPDATE,追加回ODS中

在離線數倉中,業務資料定期通過ETL流程匯入到ODS中,匯入方式有全量、增量兩種
-
全量匯入:資料第一次匯入時,選擇此種方式
-
增量匯入:資料非第一次匯入,每次只需要匯入新增、更改的資料,建議使用外連接&全覆寫方式
2.4 DWD 資料明細層
資料分析
資料明細層對ODS層的資料進行清洗、標準化、維度退化(時間、分類、地域)
資料仍然滿足3NF模型,為分析運算做準備

2.5 DWS 資料匯總層
資料匯總層的資料對資料明細層的資料,按照分析主題進行計算匯總,存放便于分析的寬表
存盤模型并非3NF,而是注重資料聚合,復雜查詢、處理性能更優的數倉模型,如維度模型

2.6 ADS 資料應用層
資料應用層也被稱為資料集市
存盤資料分析結果,為不同業務場景提供介面,減輕資料倉庫的負擔
資料倉庫擅長資料分析,直接開放業務查詢介面,會加重其負擔

第三部分
3.1 OLTP(在線事務處理)
OLTP(在線事務處理)系統中,主要操作是隨機讀寫
為了保證資料一致性、減少冗余,常使用關系模型
在關系模型中,使用三范式規則來減少冗余
3.2 OLAP(在線聯機分析)
OLAP系統,主要操作是復雜分析查詢:關注資料整合,以及分析、處理性能
OLAP根據資料存盤的方式不同,又分為ROLAP,MOLAP,HOLAP ,其目的都是加快資料分析功能
-
ROLAP(Relation OLAP,關系型OLAP):使用關系模型構建,存盤系統一般為RDBMS
ROLAP系統建模方法,典型的資料倉庫建模方法有ER模型、維度模型、Data Value,Anchor
寬表模型
寬表模型是維度模型的衍生,適合join性能不佳的資料倉庫產品
寬表模型將維度冗余到事實表中,形成寬表,以此減少join操作 -
MOLAP(Multidimensional OLAP,多維型OLAP):預先聚合計算,使用多維陣列的形式保存資料結果,加快查詢分析時間
-
HOLAP(Hybrid OLAP,混合架構的OLAP):ROLAP和MOLAP兩者的集成;如低層是關系型的,高層是多維矩陣型的;查詢效率高于ROLAP,低于MOLAP
3.2.1 OLAP多維分析
OLAP主要操作是復雜查詢,可以多表關聯,使用COUNT,SUM,AVG等聚合函式
OLAP對復雜查詢操作做了直觀的定義,包括鉆取、切片、切塊、旋轉
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/283209.html
標籤:其他
