第一章:了解DW
1.1什么是數(shù)據(jù)倉(cāng)庫(kù)?
數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse),簡(jiǎn)稱DW。數(shù)據(jù)倉(cāng)庫(kù)顧名思義,是?個(gè)很?的數(shù)據(jù)存儲(chǔ)集合,出于企業(yè)的分析性報(bào)告和決策?持?的?創(chuàng)建,對(duì)多樣的業(yè)務(wù)數(shù)據(jù)進(jìn)?篩選與整合。它能為企業(yè)提供?定的BI(商業(yè)智能:例如數(shù)據(jù)挖掘、數(shù)據(jù)分析和數(shù)據(jù)報(bào)表)能?。有了數(shù)據(jù)報(bào)表,還可以指導(dǎo)業(yè)務(wù)流程改進(jìn)。
?由數(shù)據(jù)倉(cāng)庫(kù)之父比爾·恩門(BillInmon)提出
?數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的、集成的、非易失的且隨時(shí)間變化的數(shù)據(jù)集合
?主要用于組織積累的歷史數(shù)據(jù),并使用分析方法(OLAP、數(shù)據(jù)分析)進(jìn)行分析整理,進(jìn)而輔助決策,為管理者、企業(yè)系統(tǒng)提供數(shù)據(jù)支持,構(gòu)建商業(yè)智能。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
1.2數(shù)據(jù)倉(cāng)庫(kù)誕生的原因:? 歷史數(shù)據(jù)積存 ? 企業(yè)數(shù)據(jù)分析需要
歷史數(shù)據(jù)積存
? 歷史數(shù)據(jù)使用頻率低,堆積在業(yè)務(wù)庫(kù)中,導(dǎo)致性能下降
1.3數(shù)據(jù)倉(cāng)庫(kù)誕生的背景:
-企業(yè)數(shù)據(jù)分析需要:?各個(gè)部門自己建立獨(dú)立的數(shù)據(jù)抽取系統(tǒng),導(dǎo)致數(shù)據(jù)不一致。
1.4數(shù)據(jù)倉(cāng)庫(kù)解決什么問題?
數(shù)據(jù)倉(cāng)庫(kù)是應(yīng)景大數(shù)據(jù)而生的,解決的問題無非就是存儲(chǔ)和快速提取, 另外還有跨部?應(yīng)?的功能。
對(duì)于不同數(shù)據(jù)整合到了數(shù)據(jù)倉(cāng)庫(kù)之后,也就是大數(shù)據(jù)有了存儲(chǔ)的位置;我們可以不同的部門進(jìn)行不同的應(yīng)用(例如數(shù)據(jù)挖掘、數(shù)據(jù)分析、報(bào)表展示和查詢等等);而快速提取是我們對(duì)于數(shù)據(jù)倉(cāng)庫(kù)的基本需求,所以數(shù)據(jù)倉(cāng)庫(kù)在設(shè)計(jì)起初就要具備快速提取的功能。而技術(shù)實(shí)現(xiàn)呢,就是分布式。
1.5數(shù)據(jù)倉(cāng)庫(kù)的主要特征
-?向主題的:傳統(tǒng)數(shù)據(jù)庫(kù)最大的特點(diǎn)就是面向應(yīng)用進(jìn)行組織數(shù)據(jù),一個(gè)業(yè)務(wù)系統(tǒng)管理一部分企業(yè)數(shù)據(jù),多個(gè)業(yè)務(wù)系統(tǒng)之間呢是相互分離的,而數(shù)據(jù)倉(cāng)庫(kù)則是面向主題的。我們可以通過從上圖中的源數(shù)據(jù)那部分看到,它把多個(gè)業(yè)務(wù)的數(shù)據(jù)來整合,所以是面向主題的。
實(shí)例
-集成的:集成是指數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)必須是一致的,也就是我們要通過ETL進(jìn)行軟碼編輯。數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是從原有的、分散多個(gè)數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)文件、用戶日志中抽取出來的,那數(shù)據(jù)來源上可能既有內(nèi)部數(shù)據(jù),又有外部數(shù)據(jù)。
數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是為分析而服務(wù)的,而分析呢又需要多種、廣泛的不同數(shù)據(jù)源、數(shù)據(jù),以便進(jìn)行比較、鑒別。因此數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)必須從多個(gè)數(shù)據(jù)源中獲取。那這些數(shù)據(jù)源就包括我們?cè)谏掀┛徒榻B過的內(nèi)部數(shù)據(jù)、外部數(shù)據(jù)、文件系統(tǒng)以及網(wǎng)上的其他數(shù)據(jù)等。這些是通過數(shù)據(jù)集成而形成數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù),所以它是集成的。
-非易失:保存的數(shù)據(jù)是一系列歷史快照,不允許被修改,只允許通過工具進(jìn)行查詢、分析。
-時(shí)變性:數(shù)倉(cāng)會(huì)定期接收、集成新的數(shù)據(jù),從而反映出數(shù)據(jù)的最新變化。
1.6數(shù)據(jù)倉(cāng)庫(kù) VS 數(shù)據(jù)庫(kù)
? 數(shù)據(jù)庫(kù)面向事務(wù)設(shè)計(jì),屬于OLTP(在線事務(wù)處理)系統(tǒng),主要操作是隨機(jī)讀寫;在設(shè)計(jì)時(shí)盡 量避免冗余,常采用符合范式規(guī)范來設(shè)計(jì) 。
? 數(shù)據(jù)倉(cāng)庫(kù)是面向主題設(shè)計(jì)的,屬于OLAP(在線分析處理)系統(tǒng),主要操作是批量讀寫;關(guān) 注數(shù)據(jù)整合,以及分析、處理性能;會(huì)有意引入冗余,采用反范式方式設(shè)計(jì)。
1.7 技術(shù)的實(shí)現(xiàn)
傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù):
? 由關(guān)系型數(shù)據(jù)庫(kù)組成MPP(大規(guī)模并行處理)集群
問題:擴(kuò)展性有限,熱點(diǎn)問題
大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù):
? 利用大數(shù)據(jù)天然的擴(kuò)展性,完成海量數(shù)據(jù)的存放
? 將SQL轉(zhuǎn)換為大數(shù)據(jù)計(jì)算引擎任務(wù),完成數(shù)據(jù)分析
問題:SQL支持率,事務(wù)支持
1.8 MPP & 分布式架構(gòu)
MPP架構(gòu)?
? 傳統(tǒng)數(shù)倉(cāng)中常見的技術(shù)架構(gòu),將單機(jī)數(shù)據(jù)庫(kù)節(jié)點(diǎn)組成集群,提升整體處理性能
? 節(jié)點(diǎn)間為非共享架構(gòu)(Share Nothing),每個(gè)節(jié)點(diǎn)都有獨(dú)立的磁盤存儲(chǔ)系統(tǒng)和內(nèi)存系統(tǒng)
? 每臺(tái)數(shù)據(jù)節(jié)點(diǎn)通過專用網(wǎng)絡(luò)或者商業(yè)通用網(wǎng)絡(luò)互相連接,彼此協(xié)同計(jì)算,作為整體提供服務(wù)
? 設(shè)計(jì)上優(yōu)先考慮C(一致性),其次考慮 A(可用性),盡量做好P(分區(qū)容錯(cuò)性)
架構(gòu)優(yōu)點(diǎn)
? 運(yùn)算方式精細(xì),延遲低、吞吐低
? 適合中等規(guī)模的結(jié)構(gòu)化數(shù)據(jù)處理
架構(gòu)缺點(diǎn)
? 存儲(chǔ)位置不透明,通過Hash確定數(shù)據(jù)所在的物理節(jié)點(diǎn),查詢?nèi)蝿?wù)在所有節(jié)點(diǎn)均會(huì)執(zhí)行
? 并行計(jì)算時(shí),單節(jié)點(diǎn)瓶頸會(huì)成為整個(gè)系統(tǒng)短板,容錯(cuò)性差
? 分布式事務(wù)的實(shí)現(xiàn)會(huì)導(dǎo)致擴(kuò)展性降低
分布式架構(gòu)
? 大數(shù)據(jù)中常見的技術(shù)架構(gòu),也稱為Hadoop架構(gòu)/批處理架構(gòu)
? 各節(jié)點(diǎn)實(shí)現(xiàn)場(chǎng)地自治(可以單獨(dú)運(yùn)行局部應(yīng)用),數(shù)據(jù)在集群中全局透明共享?
? 每臺(tái)節(jié)點(diǎn)通過局域網(wǎng)或廣域網(wǎng)相連,節(jié)點(diǎn)間的通信開銷較大,在運(yùn)算時(shí)致力減少數(shù)據(jù)移動(dòng)
? 優(yōu)先考慮的是P(分區(qū)容錯(cuò)性),然后是A(可用性),最后再考慮C(一致性)
架構(gòu)特點(diǎn)
? 解決了單點(diǎn)故障問題,會(huì)將出錯(cuò)的任務(wù)調(diào)度到其他副本節(jié)點(diǎn)
? 運(yùn)算方式粗獷,吞吐量大
? 擴(kuò)展性極強(qiáng),適合處理非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)?
? 需要將中間結(jié)果進(jìn)行存儲(chǔ),且數(shù)據(jù)移動(dòng)開銷較大
MPP + 分布式架構(gòu)
? 數(shù)據(jù)存儲(chǔ)采用分布式架構(gòu)中的公共存儲(chǔ),提高分區(qū)容錯(cuò)性?
? 上層架構(gòu)采用MPP,減少運(yùn)算延遲
第二章:數(shù)據(jù)倉(cāng)庫(kù)的架構(gòu)
2.1 架構(gòu)圖
數(shù)據(jù)倉(cāng)庫(kù)各層說明:
一、數(shù)據(jù)加載層:ETL(Extract-Transform-Load)
二、數(shù)據(jù)運(yùn)營(yíng)層:ODS(Operational Data Store)
三、數(shù)據(jù)倉(cāng)庫(kù)層:DW(Data Warehouse)
1. 數(shù)據(jù)明細(xì)層:DWD(Data Warehouse Detail)
2. 數(shù)據(jù)中間層:DWM(Data WareHouse Middle)
3. 數(shù)據(jù)服務(wù)層:DWS(Data WareHouse Service)
四、數(shù)據(jù)應(yīng)用層:APP(Application)
五、維表層:DIM(Dimension)
分層好處:
清晰數(shù)據(jù)結(jié)構(gòu):每一個(gè)數(shù)據(jù)分層都有它的作用域和職責(zé),在使用表的時(shí)候能更方便地定位和理解
減少重復(fù)開發(fā):規(guī)范數(shù)據(jù)分層,開發(fā)一些通用的中間層數(shù)據(jù),能夠減少極大的重復(fù)計(jì)算
統(tǒng)一數(shù)據(jù)口徑:通過數(shù)據(jù)分層,提供統(tǒng)一的數(shù)據(jù)出口,統(tǒng)一對(duì)外輸出的數(shù)據(jù)口徑
復(fù)雜問題簡(jiǎn)單化:將復(fù)雜的任務(wù)分解成多個(gè)步驟來完成,每一層只處理單一的步驟,比較簡(jiǎn)單和容易理解。當(dāng)數(shù)據(jù)出現(xiàn)問題之后,不用修復(fù)所有的數(shù)據(jù),只需要從有問題的步驟開始修復(fù)。
屏蔽原始數(shù)據(jù)的異常:不必改一次業(yè)務(wù)就需要重新接入數(shù)據(jù)。
2.2 ETL流程
ETL -- Extract-Transform-Load
? 將數(shù)據(jù)從來源端經(jīng)過抽?。╡xtract)、交互轉(zhuǎn)換(transform)、加載(load)至目的端的過程
? 構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的重要一環(huán),用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗,最終按照預(yù)先定義好的數(shù)據(jù)倉(cāng)庫(kù)模型,將數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)中去
? ETL規(guī)則的設(shè)計(jì)和實(shí)施約占整個(gè)數(shù)據(jù)倉(cāng)庫(kù)搭建工作量60%~80%
數(shù)據(jù)抽?。‥xtraction)?
? 抽取的數(shù)據(jù)源可以分為結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)?
? 結(jié)構(gòu)化數(shù)據(jù)一般采用JDBC、數(shù)據(jù)庫(kù)日志方式,非/半結(jié)構(gòu)化數(shù)據(jù)會(huì)監(jiān)聽文件變動(dòng)
抽取方式
? 數(shù)據(jù)抽取方式有全量同步、增量同步兩種方式
? 全量同步會(huì)將全部數(shù)據(jù)進(jìn)行抽取,一般用于初始化數(shù)據(jù)裝載
? 增量同步方式會(huì)檢測(cè)數(shù)據(jù)的變動(dòng),抽取發(fā)生變動(dòng)的數(shù)據(jù),一般用于數(shù)據(jù)更新
數(shù)據(jù)轉(zhuǎn)換(Transformation)
? 數(shù)據(jù)轉(zhuǎn)換要經(jīng)歷數(shù)據(jù)清洗和轉(zhuǎn)換兩個(gè)階段
-數(shù)據(jù)清洗主要是對(duì)出現(xiàn)的重復(fù)、二義性、不完整、違反業(yè)務(wù)或邏輯規(guī)則等問題的數(shù)據(jù)進(jìn)行統(tǒng)一的處理
-數(shù)據(jù)轉(zhuǎn)換主要是對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,進(jìn)行字段、數(shù)據(jù)類型、數(shù)據(jù)定義的轉(zhuǎn)換
? 結(jié)構(gòu)化數(shù)據(jù)在轉(zhuǎn)換過程中的邏輯較為簡(jiǎn)單,非/半結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換會(huì)較為復(fù)雜
數(shù)據(jù)加載(Loading)
? 將最后處理完的數(shù)據(jù)導(dǎo)入到對(duì)應(yīng)的目標(biāo)源里
2.3 數(shù)據(jù)積存
操作數(shù)據(jù)層(ODS)?
? 數(shù)據(jù)與原業(yè)務(wù)數(shù)據(jù)保持一致,可以增加字段用來進(jìn)行數(shù)據(jù)管理?
? 存儲(chǔ)的歷史數(shù)據(jù)是只讀的,提供業(yè)務(wù)系統(tǒng)查詢使用
? 業(yè)務(wù)系統(tǒng)對(duì)歷史數(shù)據(jù)完成修改后,將update_type字段更新為UPDATE,追加回ODS中
在離線數(shù)倉(cāng)中,業(yè)務(wù)數(shù)據(jù)定期通過ETL流程導(dǎo)入到ODS中,導(dǎo)入方式有全量、增量?jī)煞N
-全量導(dǎo)入:數(shù)據(jù)第一次導(dǎo)入時(shí),選擇此種方式?
-增量導(dǎo)入:數(shù)據(jù)非第一次導(dǎo)入,每次只需要導(dǎo)入新增、更改的數(shù)據(jù),建議使用外連接&全覆蓋方式
2.4 數(shù)據(jù)分析
數(shù)據(jù)明細(xì)層(DWD)
? 數(shù)據(jù)明細(xì)層對(duì)ODS層的數(shù)據(jù)進(jìn)行清洗、標(biāo)準(zhǔn)化、維度退化(時(shí)間、分類、地域)
? 數(shù)據(jù)仍然滿足3NF模型,為分析運(yùn)算做準(zhǔn)備
數(shù)據(jù)匯總層(DWS)
? 數(shù)據(jù)匯總層的數(shù)據(jù)對(duì)數(shù)據(jù)明細(xì)層的數(shù)據(jù),按照分析主題進(jìn)行計(jì)算匯總,存放便于分析的寬表?
? 存儲(chǔ)模型并非3NF,而是注重?cái)?shù)據(jù)聚合,復(fù)雜查詢、處理性能更優(yōu)的數(shù)倉(cāng)模型,如維度模型
數(shù)據(jù)應(yīng)用層(ADS)?
? 數(shù)據(jù)應(yīng)用層也被稱為數(shù)據(jù)集市
? 存儲(chǔ)數(shù)據(jù)分析結(jié)果,為不同業(yè)務(wù)場(chǎng)景提供接口,減輕數(shù)據(jù)倉(cāng)庫(kù)的負(fù)擔(dān) -數(shù)據(jù)倉(cāng)庫(kù)擅長(zhǎng)數(shù)據(jù)分析,直接開放業(yè)務(wù)查詢接口,會(huì)加重其負(fù)擔(dān)
3.1 基本概念
OLTP系統(tǒng)建模方法
? OLTP(在線事務(wù)處理)系統(tǒng)中,主要操作是隨機(jī)讀寫?
? 為了保證數(shù)據(jù)一致性、減少冗余,常使用關(guān)系模型?
? 在關(guān)系模型中,使用三范式規(guī)則來減少冗余
OLAP(在線聯(lián)機(jī)分析)
? OLAP系統(tǒng),主要操作是復(fù)雜分析查詢;關(guān)注數(shù)據(jù)整合,以及分析、處理性能?
? OLAP根據(jù)數(shù)據(jù)存儲(chǔ)的方式不同,又分為ROLAP、MOLAP、HOLAP
OLAP系統(tǒng)分類
OLAP系統(tǒng)分類
? ROLAP(Relation OLAP,關(guān)系型 OLAP):使用關(guān)系模型構(gòu)建,存儲(chǔ)系統(tǒng)一般為RDBMS
? MOLAP(Multidimensional OLAP,多維型 OLAP):預(yù)先聚合計(jì)算,使用多維數(shù)組的形式保存數(shù)據(jù)結(jié)果,加快查詢分析時(shí)間
? HOLAP(Hybrid OLAP,混合架構(gòu)的 OLAP):ROLAP 和 MOLAP 兩者的集成;如低層是關(guān)系型的,高層是多維矩陣型的;查詢效率高于ROLAP,低于MOLAP
3.2 ROLAP
ROLAP系統(tǒng)建模方法
? 典型的數(shù)據(jù)倉(cāng)庫(kù)建模方法有ER模型、維度模型、Data Value、Anchor
維度模型
? 維度模型中,表被分為維度表、事實(shí)表,維度是對(duì)事實(shí)的一種組織。
? 維度一般包含分類、時(shí)間、地域等
維度模型
? 維度模型分為星型模型、雪花模型、星座模型?
? 維度模型建立后,方便對(duì)數(shù)據(jù)進(jìn)行多維分析
星型模型
? 標(biāo)準(zhǔn)的星型模型,維度只有一層,分析性能最優(yōu)
雪花模型
? 雪花模型具有多層維度,比較接近三范式設(shè)計(jì),較為靈活
星座模型
? 星座模型基于多個(gè)事實(shí)表,事實(shí)表之間會(huì)共享一些維度表?
? 是大型數(shù)據(jù)倉(cāng)庫(kù)中的常態(tài),是業(yè)務(wù)增長(zhǎng)的結(jié)果,與模型設(shè)計(jì)無關(guān)
什么是寬表模型?
? 寬表模型是維度模型的衍生,適合join性能不佳的數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品?
? 寬表模型將維度冗余到事實(shí)表中,形成寬表,以此減少join操作
???????????????
3.3 MOLAP
MOLAP系統(tǒng)建模方法
? MOLAP將數(shù)據(jù)進(jìn)行預(yù)結(jié)算,并將聚合結(jié)果存儲(chǔ)到CUBE模型中
? CUBE模型以多維數(shù)組的形式,物化到存儲(chǔ)系統(tǒng)中,加快后續(xù)的查詢
? 生成CUBE需要大量的時(shí)間、空間,維度預(yù)處理可能會(huì)導(dǎo)致數(shù)據(jù)膨脹
3.4 多維分析
OLAP多維分析
? OLAP主要操作是復(fù)雜查詢,可以多表關(guān)聯(lián),使用COUNT、SUM、AVG等聚合函數(shù)
? OLAP對(duì)復(fù)雜查詢操作做了直觀的定義,包括鉆取、切片、切塊、旋轉(zhuǎn)
? 鉆取
? 對(duì)維度不同層次的分析,通過改變維度的層次來變換分析的粒度?
? 鉆取包括上卷(Roll-up)、下鉆(Drill-down)
? 上卷(Roll-up),也稱為向上鉆取,指從低層次到高層次的切換
? 下鉆(Drill-down),指從高層次到低層次的切換
? 切片(Slice)、切塊(Dice)
? 選擇某個(gè)維度進(jìn)行分割稱為切片?
? 按照多維進(jìn)行的切片稱為切塊
? 旋轉(zhuǎn)(Pivot)
? 對(duì)維度方向的互換,類似于交換坐標(biāo)軸上卷(Roll-up)
4.1 表的分類
維度建模中的表類型
? 事實(shí)表
? 維度表
? 事務(wù)事實(shí)表
? 周期快照事實(shí)表
? 累積快照事實(shí)表
事實(shí)表
? 一般是指一個(gè)現(xiàn)實(shí)存在的業(yè)務(wù)對(duì)象,比如用戶,商品,商家,銷售員等等
維度表?
? 一般是指對(duì)應(yīng)一些業(yè)務(wù)狀態(tài),代碼的解釋表。也可以稱之為碼表?
? 通常使用維度對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、聚合運(yùn)算
事務(wù)事實(shí)表?
? 隨著業(yè)務(wù)不斷產(chǎn)生的數(shù)據(jù),一旦產(chǎn)生不會(huì)再變化,如交易流水、操作日志、出庫(kù)入庫(kù)記錄
周期快照事實(shí)表?
? 隨著業(yè)務(wù)周期型的推進(jìn)而變化,完成間隔周期內(nèi)的度量統(tǒng)計(jì),如年、季度累計(jì)
? 使用周期+狀態(tài)度量的組合,如年累計(jì)訂單數(shù),年是周期,訂單總數(shù)是量度
累積快照事實(shí)表?
? 記錄不確定周期的度量統(tǒng)計(jì),完全覆蓋一個(gè)事實(shí)的生命周期,如訂單狀態(tài)表
? 通常有多個(gè)時(shí)間字段,用于記錄生命周期中的關(guān)鍵時(shí)間點(diǎn)
? 只有一條記錄,針對(duì)此記錄不斷更新
實(shí)現(xiàn)方式一
? 使用日期分區(qū)表,全量數(shù)據(jù)記錄,每天的分區(qū)存儲(chǔ)昨天全量數(shù)據(jù)與當(dāng)天增量數(shù)據(jù)合并的結(jié)果
? 數(shù)據(jù)量大會(huì)導(dǎo)致全量表膨脹,存儲(chǔ)大量永遠(yuǎn)不更新的冷數(shù)據(jù),對(duì)性能影響較大
? 適用于數(shù)據(jù)量少的情況
實(shí)現(xiàn)方式二
? 使用日期分區(qū)表,推測(cè)數(shù)據(jù)最長(zhǎng)生命周期,存儲(chǔ)周期內(nèi)數(shù)據(jù);周期外的冷數(shù)據(jù)存儲(chǔ)到歸檔表?
? 需要保留多天的分區(qū)數(shù)據(jù),存儲(chǔ)消耗依然很大
實(shí)現(xiàn)方式三
? 使用日期分區(qū)表,以業(yè)務(wù)實(shí)體的結(jié)束時(shí)間分區(qū),每天的分區(qū)存放當(dāng)天結(jié)束的數(shù)據(jù);設(shè)計(jì)一個(gè)時(shí)間非常大的分區(qū),如9999-12-31,存放截止當(dāng)前未結(jié)束的數(shù)據(jù)
? 已結(jié)束的數(shù)據(jù)存放到相應(yīng)分區(qū),存放未結(jié)束數(shù)據(jù)的分區(qū),數(shù)據(jù)量也不會(huì)很大,ETL性能好
? 無存儲(chǔ)浪費(fèi),數(shù)據(jù)全局唯一
? 業(yè)務(wù)系統(tǒng)可能無法標(biāo)識(shí)業(yè)務(wù)實(shí)體的結(jié)束時(shí)間,可以使用其它相關(guān)業(yè)務(wù)系統(tǒng)的結(jié)束標(biāo)志作為此業(yè)務(wù)系統(tǒng)的結(jié)束,也可以使用最長(zhǎng)生命周期時(shí)間或前端系統(tǒng)的數(shù)據(jù)歸檔時(shí)間
拉鏈表?
? 拉鏈表記錄每條信息的生命周期,用于保留數(shù)據(jù)的所有歷史(變更)狀態(tài)?
? 拉鏈表將表數(shù)據(jù)的隨機(jī)修改方式,變?yōu)?strong>順序追加
4.2 ETL策略
全量同步
? 數(shù)據(jù)初始化裝載一定使用全量同步的方式
? 因?yàn)闃I(yè)務(wù)、技術(shù)原因,使用全量同步的方式做周期數(shù)據(jù)更新,直接覆蓋原有數(shù)據(jù)即可
增量同步
? 傳統(tǒng)數(shù)據(jù)整合方案中,大多采用merge方式(update+insert)
? 主流大數(shù)據(jù)平臺(tái)不支持update操作,可采用全外連接+數(shù)據(jù)全量覆蓋方式
-如果擔(dān)心數(shù)據(jù)更新出錯(cuò),可以采用分區(qū)方式,每天保存最新的全量版本,保留較短周期
????????????????????
4.3 任務(wù)調(diào)度
為什么需要任務(wù)調(diào)度?
? 解決任務(wù)單元間的依賴關(guān)系?
? 自動(dòng)化完成任務(wù)的定時(shí)執(zhí)行?
常見任務(wù)類型
? Shell
? Java程序
? Mapreduce程序
? SQL腳本
常見調(diào)度工具
? Azkaban
? Oozie
第四章:大數(shù)據(jù)名詞科普
4.1數(shù)據(jù)集市
數(shù)據(jù)倉(cāng)庫(kù)也稱為中央或企業(yè)數(shù)據(jù)倉(cāng)庫(kù)。因此,在某些情況下,數(shù)據(jù)倉(cāng)庫(kù)的來源將是多個(gè),而數(shù)據(jù)集市是數(shù)據(jù)倉(cāng)庫(kù)的一個(gè)子集。
有兩種類型的數(shù)據(jù)集市——獨(dú)立型和從屬型。獨(dú)立型數(shù)據(jù)集市直接從操作型環(huán)境獲取數(shù)據(jù)。從屬型數(shù)據(jù)集市從企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)獲取數(shù)據(jù)。從長(zhǎng)遠(yuǎn)的角度看,從屬型數(shù)據(jù)集市在體系結(jié)構(gòu)上比獨(dú)立型數(shù)據(jù)集市更穩(wěn)定。
4.2數(shù)據(jù)孤島
數(shù)據(jù)孤島(通常稱為信息孤島)是只有一組人可以輕松訪問的數(shù)據(jù)集。這意味著其他人很難獲得這些信息,或者更糟糕的是,他們根本無法訪問它。
4.3數(shù)據(jù)湖
數(shù)據(jù)湖(Data Lake)是一個(gè)以原始格式存儲(chǔ)數(shù)據(jù)的存儲(chǔ)庫(kù)或系統(tǒng),它按原樣存儲(chǔ)數(shù)據(jù),而無需事先對(duì)數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理。一個(gè)數(shù)據(jù)湖可以存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)(如關(guān)系型數(shù)據(jù)庫(kù)中的表),半結(jié)構(gòu)化數(shù)據(jù)(如CSV、日志、XML、JSON),非結(jié)構(gòu)化數(shù)據(jù)(如電子郵件、文檔、PDF)和二進(jìn)制數(shù)據(jù)(如圖形、音頻、視頻)。
數(shù)據(jù)湖是一個(gè)存儲(chǔ)庫(kù),它允許存儲(chǔ)大量的原始數(shù)據(jù),也就是說,沒有按照特定的模式進(jìn)行準(zhǔn)備、處理或操作的數(shù)據(jù)。
數(shù)據(jù)湖的一個(gè)關(guān)鍵特征是不會(huì)拒絕任何數(shù)據(jù),這意味著結(jié)構(gòu)化格式和非結(jié)構(gòu)化數(shù)據(jù)格式都可以存儲(chǔ)。由于數(shù)據(jù)湖中的數(shù)據(jù)在從源獲取時(shí)不受數(shù)據(jù)結(jié)構(gòu)的約束,因此在需要時(shí)應(yīng)用“讀取”模式來促進(jìn)數(shù)據(jù)分析。
數(shù)據(jù)湖特征:
1.?容量大 2.格式多 3.處理速度快 4.體系結(jié)構(gòu)
未來的發(fā)展趨勢(shì)可能是湖倉(cāng)一體。
4.4數(shù)據(jù)中臺(tái)
各種信息系統(tǒng)大多是獨(dú)立建設(shè)的,無法做到信息的互聯(lián)互通,導(dǎo)致形成了多個(gè)數(shù)據(jù)孤島。數(shù)據(jù)中臺(tái)的作用是融合新老信息,整合各個(gè)孤島上的信息,快速形成數(shù)據(jù)服務(wù)能力,為企業(yè)經(jīng)營(yíng)決策、精細(xì)化運(yùn)營(yíng)提供支持。
4.5寬表和窄表
寬表:從字面意義上講就是字段比較多的數(shù)據(jù)庫(kù)表。通常是指業(yè)務(wù)主題相關(guān)的指標(biāo)、維度、屬性關(guān)聯(lián)在一起的一張數(shù)據(jù)庫(kù)表。由于把不同的內(nèi)容都放在同一張表存儲(chǔ),寬表已經(jīng)不符合三范式的模型設(shè)計(jì)規(guī)范,隨之帶來的主要壞處就是數(shù)據(jù)的大量冗余,與之相對(duì)應(yīng)的好處就是查詢性能的提高與便捷。這種寬表的設(shè)計(jì)廣泛應(yīng)用于數(shù)據(jù)挖掘模型訓(xùn)練前的數(shù)據(jù)準(zhǔn)備,通過把相關(guān)字段放在同一張表中,可以大大提高數(shù)據(jù)挖掘模型訓(xùn)練過程中迭代計(jì)算時(shí)的效率問題。
窄表:嚴(yán)格按照數(shù)據(jù)庫(kù)設(shè)計(jì)三范式。盡量減少數(shù)據(jù)冗余,但是缺點(diǎn)是修改一個(gè)數(shù)據(jù)可能需要修改多張表。
4.6數(shù)據(jù)倉(cāng)庫(kù)元數(shù)據(jù)
元數(shù)據(jù)(Metadata),又稱中介數(shù)據(jù)、中繼數(shù)據(jù),為描述數(shù)據(jù)的數(shù)據(jù)(data about data),主要是描述數(shù)據(jù)屬性(property)的信息,用來支持如指示存儲(chǔ)位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能。
舉幾個(gè)簡(jiǎn)單例子:
如果一本書是一個(gè)“數(shù)據(jù)",那么它的書名、封面、出版社、作者、總頁碼就是它的“元數(shù)據(jù)”。
如果一個(gè)電影是一個(gè)“數(shù)據(jù)”,那么它的總時(shí)長(zhǎng)、制作人、總導(dǎo)演、演員列表就是它的“元數(shù)據(jù)”。
如果數(shù)據(jù)庫(kù)中某個(gè)表是一個(gè)”數(shù)據(jù)”,那么它的列名、列類型、列長(zhǎng)度、表注釋就是它的"元數(shù)據(jù)"。
4.7數(shù)據(jù)治理
數(shù)據(jù)治理(Data Governance)是組織中涉及數(shù)據(jù)使用的一整套管理行為。由企業(yè)數(shù)據(jù)治理部門發(fā)起并推行,關(guān)于如何制定和實(shí)施針對(duì)整個(gè)企業(yè)內(nèi)部數(shù)據(jù)的商業(yè)應(yīng)用和技術(shù)管理的一系列政策和流程。
數(shù)據(jù)的質(zhì)量直接影響著數(shù)據(jù)的價(jià)值,并且直接影響著數(shù)據(jù)分析的結(jié)果以及我們以此做出的決策的質(zhì)量。我們常說,用數(shù)據(jù)說話,用數(shù)據(jù)支撐決策管理,但低質(zhì)量的數(shù)據(jù)、甚至存在錯(cuò)誤的數(shù)據(jù),必然會(huì)"說假話"?。?!?數(shù)據(jù)治理即提高數(shù)據(jù)的質(zhì)量,發(fā)揮數(shù)據(jù)資產(chǎn)價(jià)值。
4.8 ETL流程文章來源:http://www.zghlxwxcb.cn/news/detail-411988.html
ETL是英文Extract-Transform-Load 的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程。常見于數(shù)據(jù)倉(cāng)庫(kù)開發(fā)中將數(shù)據(jù)由業(yè)務(wù)系統(tǒng)歸集到數(shù)據(jù)倉(cāng)庫(kù)(DW)或者數(shù)據(jù)集市的過程。在ETL三個(gè)部分中,花費(fèi)時(shí)間最長(zhǎng)的是“T”(Transform,清洗、轉(zhuǎn)換)的部分,一般情況下這部分工作量是整個(gè)ETL的2/3。文章來源地址http://www.zghlxwxcb.cn/news/detail-411988.html
到了這里,關(guān)于數(shù)據(jù)倉(cāng)庫(kù)介紹(DW)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!