傳統(tǒng)數(shù)據(jù)倉庫--離線數(shù)倉邏輯和架構設計

1.架構圖

有空再補

2.技術簡介

組件 版本 簡介
FLINK 1.12.1 分布式計算引擎
HIVE 3.1.2 最常用的 HQL 數(shù)倉工具
PHOENIX 5.0.0 HBase SQL 化查詢分析工具
SPARK 3.0.1 分布式計算引擎
SQOOP 1.4.7 數(shù)據(jù)采集與轉(zhuǎn)儲服務
TEZ 0.10.0 優(yōu)化 MapReduce 任務的 DAG
YARN 3.1.1 分布式資源調(diào)度服務
HDFS 3.1.1 分布式存儲服務
ZOOKEEPER 3.4.13 分布式應用程序協(xié)調(diào)服務
ALERTMANAGER 0.21.0 發(fā)送監(jiān)控告警信息
GRAFANA 6.5.1 展示監(jiān)控數(shù)據(jù)
INFLUXDB 1.8.0 存儲監(jiān)控數(shù)據(jù)
NODEEXPORTER 1.0.0 讀取節(jié)點資源監(jiān)控指標
PROMETHEUS 2.18.1 拉取監(jiān)控數(shù)據(jù)
USDPMONITOR 1.0.0 讀取組件監(jiān)控指標
HUE 4.8.0 可視化管理服務
ZEPPELIN 0.9.0 可視化管理服務
DOLPHINSCHEDULER 1.3.6 任務調(diào)度服務

3.數(shù)倉中表的種類及其概念

一般表分為兩個類型,分別是維度表和事務表

3.1事實表

事實表分為兩類:事務型事實表和周期型事實表
事務型事實表,一般指隨著業(yè)務發(fā)生不斷產(chǎn)生的數(shù)據(jù).特點是一旦發(fā)生不會再變化. 一般比如,交易流水,操作日志,出庫入庫記錄等等
周期型事實表,一般指隨著業(yè)務發(fā)生不斷產(chǎn)生的數(shù)據(jù).與事務型不同的是,數(shù)據(jù)會隨著業(yè)務周期性的推進而變化.比如訂單,其中訂單狀態(tài)會周期性變化. 再比如,請假 貸款申請,隨著批復狀態(tài)在周期性變化

事實表的特征:表里沒有存放實際的內(nèi)容,他是一堆主鍵的集合,這些ID分別能對應到維度表中的一條記錄.事實表包含了與各維度表相關聯(lián)的外鍵,可與維度表關聯(lián).事實表的度量通常是數(shù)值類型,且記錄數(shù)會不斷增加,表數(shù)據(jù)規(guī)模迅速增長

3.2.維度表

一般是指對應一些業(yè)務狀態(tài),代碼的解釋表,也可以稱之為碼表.比如地區(qū)表,訂單類型,支付方式,商品分類等等
維度表可以分為兩類:一般維度表和固定維度表
一般維度表的數(shù)據(jù)是不斷增加和變化的
固定維度表的數(shù)據(jù)是不變的

每個維度表都包含單一的主鍵列.維度表的主鍵可以作為與之關聯(lián)的任何事實表的外鍵.維度表通常比較寬,是扁平型非規(guī)范表,包含大量的低粒度的文本屬性

3.3.表的概念總結

維度和事實.png

總的說來,在數(shù)據(jù)倉庫中不需要嚴格遵守規(guī)范化設計原則.因為數(shù)據(jù)倉庫的主導功能就是面向分析,以查詢?yōu)橹?不涉及數(shù)據(jù)更新操作.事實表的設計是以 能夠正確記錄歷史信息 為準則,維度表的設計是以 能夠用合適的角度來聚合主題內(nèi)容 為準則

3.4 表的同步策略

3.4.1 維度表

維度表的數(shù)據(jù)多少都會有變化,可根據(jù)實際業(yè)務選擇全量或者拉鏈.
有些維度表隨著時間緩慢變化,這種維度表稱為緩慢變化維,當然這里的緩慢是相對事實表的,維度數(shù)據(jù)隨著時間變化,會產(chǎn)生歷史切片問題.如果業(yè)務不要求反應維度的歷史,可直接全量,否則應該使用拉鏈表或者歷史表.

3.4.2 事實表的同步策略

事務型事實表

每日增量,因為數(shù)據(jù)不會變化,而且數(shù)據(jù)量巨大,所以每天只同步新增數(shù)據(jù)即可

周期型事實表

  • 每日全量,首先這類表從數(shù)據(jù)量的角度,存每日全量的話,數(shù)據(jù)量太大,冗余也太大
  • 每日增量,如果用每日增量的話無法反應數(shù)據(jù)變化.一般來說這個表,足夠計算大部分當日數(shù)據(jù),但是這種依然無法解決某一個歷史時間點(時間切片)的切片數(shù)據(jù)
  • 拉鏈表,利用每日新增和變化表,制作一張拉鏈表,以方便的取到某個時間切片的快照數(shù)據(jù),所以我們需要得到每日新增及變化量

3.4.3 拉鏈表的設計

  • 拉鏈表不存儲冗余的數(shù)據(jù)播歼,只有某行的數(shù)據(jù)發(fā)生變化潮改,才需要保存下來篓冲,相比每次全量同步會節(jié)省存儲空間
  • 能夠查詢到歷史快照
  • 額外的增加了兩列(dw_start_date dw_end_date),為數(shù)據(jù)行的生命周期,表示某條數(shù)據(jù)的有效時間和失效時間,失效時間可以默認9999-12-31
    此時,只要數(shù)據(jù)沒有變化,就無需同步.如果數(shù)據(jù)發(fā)生了變化,就將原數(shù)據(jù)的dw_end_date改為當前時間,同時保存新的數(shù)據(jù),新數(shù)據(jù)的dw_start_date為當前時間
    一般的操作步驟是:第一次全量導入,之后增量的數(shù)據(jù)導入ODS,再合并歷史數(shù)據(jù)

4.維度模型設計

4.1.維度建谋剩基本概念

維度建模以分析決策的需求出發(fā)構建模型,構建的數(shù)據(jù)模型為分析需求服務,因此它重點解決用戶如何更快速完成分析需求,同時還有較好的大規(guī)模復雜查詢的響應性能
維度建模是專門應用于分析型數(shù)據(jù)庫 數(shù)據(jù)倉庫 數(shù)據(jù)集市建模的方法.數(shù)據(jù)集市可以理解為是一種"小型數(shù)據(jù)倉庫"

4.2.維度建模三種模式

目前有三種模式,分別是星型模型,雪花模型,星座模型

4.2.1.星型模型

最常用的維度建模方式.星型模型是以事實表為中心,所有的維度表直接連接在事實表上,像星星一樣
星型模型的維度建模由一個事實表和一組維度表組成,且具有以下特點

  • 維度表只和事實表關聯(lián),維度表之間沒有關聯(lián)
  • 每個維度表主鍵是事實表的外鍵
  • 以事實表為核心,維度表圍繞核心呈星型分布
    以下就是典型的星型模型


    維度和事實.png

4.2.2.雪花模型

雪花模型是星型模型的擴展.雖然這種模型相比星型更規(guī)范一些,但是由于這種模型不太容易理解,維護成本比較高,而且需要關聯(lián)多層維表,性能也比星型模型要低,所以不是很常用

4.2.3.星座模型

星座模式是星型模式延伸而來,星型模式是基于一張事實表的,而星座模式是基于多張事實表的,而且共享維度信息
前面介紹的兩種維度建模方法都是多維度表對應單事實表,但在很多時候維度空間內(nèi)的事實表不止一個,而一個維度表也可能被多個事實表用到,在業(yè)務發(fā)展后期,絕大部分維度建模都采用的是星座模式

星座模型.png

5.數(shù)據(jù)倉庫理論知識

5.1.為什么要分層

分層的主要原因是在管理數(shù)據(jù)的時候,能對數(shù)據(jù)有一個更加清晰的掌控,詳細來講,主要有下面幾個原因

  • 清晰數(shù)據(jù)結構
    每一個數(shù)據(jù)分層都有他的作用域,這樣我們在使用表的時候能更方便的定位和理解
  • 數(shù)據(jù)血緣追蹤
    簡單來說,我們最終給業(yè)務呈現(xiàn)的是一個能直接使用的業(yè)務表,但是他的來源有很多,如果有一張來源表出問題了,我們希望能夠快速準確的定位到問題,并清楚他的危害范圍
  • 減少重復開發(fā)
    規(guī)范數(shù)據(jù)分層,開發(fā)一些通用的中間層數(shù)據(jù),能夠極大的減少重復計算
  • 復雜問題簡單化
    把一個復雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解.而且便于維護數(shù)據(jù)的準確性,當數(shù)據(jù)出現(xiàn)問題之后,可以不用修復所有的數(shù)據(jù),只需要從有問題的步驟開始修復

5.2.數(shù)據(jù)分層

每個企業(yè)根據(jù)自己的業(yè)務需求,可以把數(shù)據(jù)分成不同的層次,但是最基礎的分層思想,理論上數(shù)據(jù)分三個層,數(shù)據(jù)運營層 數(shù)據(jù)倉庫層 數(shù)據(jù)服務層.基于這個基礎分層之上添加新的分層,來滿足不同的業(yè)務需求

5.2.1.數(shù)據(jù)運營層(ODS)

操作數(shù)據(jù)存儲,也是原始數(shù)據(jù)層,是數(shù)據(jù)源中的數(shù)據(jù),經(jīng)傳說中的ETL裝入本層.數(shù)據(jù)總體上大多是按照源頭業(yè)務系統(tǒng)的分類方式而分類

建模方式及原則

從業(yè)務系統(tǒng)增量抽取,保留時間由業(yè)務需求決定.可分表進行周期存儲,數(shù)據(jù)不做清洗轉(zhuǎn)換與業(yè)務系統(tǒng)數(shù)據(jù)模型保持一致,按主題邏輯劃分

5.2.2.數(shù)據(jù)明細層(DWD)

對ODS層的數(shù)據(jù)進行清洗后的結果,包括但不限于去空值,去臟數(shù)據(jù),去異常值.結構和粒度與ODS保持一直,為DWS層提供來源明細數(shù)據(jù),提供業(yè)務系統(tǒng)細節(jié)數(shù)據(jù)的長期沉淀,為未來分析類需求的擴展提供歷史數(shù)據(jù)支撐

建模方式及原則

為支持數(shù)據(jù)重跑可額外增加數(shù)據(jù)業(yè)務日期字段 可按年月日進行分表 用增量ODS層數(shù)據(jù)和前一天DWD相關表進行merge處理

5.2.3.數(shù)據(jù)服務層(DWS)

在這里,從DWD層中獲得的數(shù)據(jù)按照主題建立各種數(shù)據(jù)模型.例如以研究人的旅游消費為主題的數(shù)據(jù)集中,便可以結合航空公司的登機出行信息,以及銀聯(lián)系統(tǒng)的刷卡記錄,進行結合分析,產(chǎn)生數(shù)據(jù)集.在這里,我們需要了解四個概念:維(dimension) ,事實(Fact), 指標(Index)和粒度(Granularity)

建模方式及原則

  • 聚合匯總增加派生事實
  • 關聯(lián)其它主題的事實表,本層可能會跨主題域
  • 數(shù)據(jù)模型可能采用反范式設計

5.2.4.數(shù)據(jù)應用層(ADS)

該層主要是提供數(shù)據(jù)產(chǎn)品和數(shù)據(jù)分析使用的數(shù)據(jù),包括前端報表 分析圖表 KPI 儀表盤 OLAP 專題等分析,一般會存放在ES MySQL等系統(tǒng)中供線上系統(tǒng)使用,也可能會存在Hive或者Druid中
例如:我們經(jīng)常說的報表數(shù)據(jù),或者說那種大寬表,一般就放在這里

建模方式及原則

  • 保持數(shù)據(jù)量小
  • 維度建模 星形模型
  • 各位維度代理鍵+度量
  • 增加數(shù)據(jù)業(yè)務日期字段,支持數(shù)據(jù)重跑
  • 不分表存儲

5.2.5.數(shù)據(jù)集市層(DM)

處于DWS和ADS中間,也是按照主題建立各種數(shù)據(jù)模型,但它既可以向數(shù)據(jù)產(chǎn)品和數(shù)據(jù)分析提供數(shù)據(jù),也可以向ADS層提供數(shù)據(jù)形成大寬表.一般把數(shù)據(jù)集市視為小型的數(shù)據(jù)倉庫.如果把公司類比成數(shù)據(jù)倉庫,那么部門就是數(shù)據(jù)集市,某種程度上,數(shù)據(jù)集市就可以等于DWS層

建模方式及原則

  • 盡量減少數(shù)據(jù)訪問時計算,優(yōu)化檢索
  • 維度建模,星型模型
  • 事實拉寬,度量預先計算
  • 分表存儲
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末树肃,一起剝皮案震驚了整個濱河市甸赃,隨后出現(xiàn)的幾起案子浅悉,更是在濱河造成了極大的恐慌趟据,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件术健,死亡現(xiàn)場離奇詭異汹碱,居然都是意外死亡,警方通過查閱死者的電腦和手機荞估,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門咳促,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人勘伺,你說我怎么就攤上這事跪腹。” “怎么了飞醉?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵冲茸,是天一觀的道長。 經(jīng)常有香客問我缅帘,道長轴术,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任钦无,我火速辦了婚禮逗栽,結果婚禮上,老公的妹妹穿的比我還像新娘失暂。我一直安慰自己彼宠,他們只是感情好,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布弟塞。 她就那樣靜靜地躺著兵志,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宣肚。 梳的紋絲不亂的頭發(fā)上想罕,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機與錄音,去河邊找鬼按价。 笑死惭适,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的楼镐。 我是一名探鬼主播癞志,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼框产!你這毒婦竟也來了凄杯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤秉宿,失蹤者是張志新(化名)和其女友劉穎戒突,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體描睦,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡膊存,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忱叭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隔崎。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖韵丑,靈堂內(nèi)的尸體忽然破棺而出爵卒,到底是詐尸還是另有隱情,我是刑警寧澤撵彻,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布技潘,位于F島的核電站,受9級特大地震影響千康,放射性物質(zhì)發(fā)生泄漏享幽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一拾弃、第九天 我趴在偏房一處隱蔽的房頂上張望值桩。 院中可真熱鬧,春花似錦豪椿、人聲如沸奔坟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咳秉。三九已至,卻和暖如春鸯隅,著一層夾襖步出監(jiān)牢的瞬間澜建,已是汗流浹背向挖。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留炕舵,地道東北人何之。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像咽筋,于是被迫代替她去往敵國和親溶推。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容