一、基本概念
數(shù)據(jù)倉庫(Data Warehouse)是一個為數(shù)據(jù)分析而設計的企業(yè)級數(shù)據(jù)管理系統(tǒng)。數(shù)據(jù)倉庫可集中、整合多個信息源的大量數(shù)據(jù),借助數(shù)據(jù)倉庫的分析能力,為企業(yè)指定決策,幫助企業(yè)改進業(yè)務流程、提高產(chǎn)品數(shù)量
一般數(shù)倉分為離線數(shù)倉(spark)和實時數(shù)倉(flink)
二、核心框架
數(shù)據(jù)采集
數(shù)據(jù)通過DataX或者sqoop可以將業(yè)務數(shù)據(jù)等導入到數(shù)據(jù)倉庫,通過Flume可以將用戶行為數(shù)據(jù)等導入到數(shù)據(jù)倉庫;
數(shù)據(jù)分析
數(shù)據(jù)通過處理獲取有用的數(shù)據(jù)指標
- ODS層:原始數(shù)據(jù)層,用來數(shù)據(jù)備份
- DWD層:明細數(shù)據(jù)層,用來數(shù)據(jù)清洗
- DWS層: 匯總數(shù)據(jù)層,用來數(shù)據(jù)預聚合
- ADS層:數(shù)據(jù)應用層,用來數(shù)據(jù)統(tǒng)計和計算
- DIM層:公共維度層,用來數(shù)據(jù)分類的
數(shù)據(jù)可視化
將處理好的數(shù)據(jù)指標用在各種模塊中
- 可視化的報表
- 用戶畫像
- 推薦系統(tǒng)
- 機器學習
三、數(shù)倉大數(shù)據(jù)架構(gòu)詳解(流程)
流程圖
數(shù)據(jù)采集
- 業(yè)務數(shù)據(jù)通過Nginx采集到業(yè)務服務器(Springboot)然后再寫到mysql中,用戶行為數(shù)據(jù)通過Nginx采集到日志服務器(Springboot)寫入到日志文件中(注:主要由JavaWeb人員負責)
- 日志文件的用戶行為數(shù)據(jù)通過Flume將數(shù)據(jù)先寫入kafka(主要作用為消峰),再通過Flume將kafka的數(shù)據(jù)寫入到hdfs
- Mysql的業(yè)務行為數(shù)據(jù)通過DataX(全量的同步)將數(shù)據(jù)寫入到hdfs中,也可以使用Maxwell(增量同步)將數(shù)據(jù)寫入到hdfs中
離線數(shù)倉文章來源:http://www.zghlxwxcb.cn/news/detail-579636.html
- 將HDFS中的數(shù)據(jù)進行建模 進行各種數(shù)據(jù)分層處理 如: ODS層、DIM層、DWD層、DWS層、ADS層等,(基本上都是Sql語句),所以需要DolphinScheduler進行任務調(diào)度管理
- 處理之后數(shù)據(jù),通過DataX(每日同步)結(jié)果數(shù)據(jù)寫入到MySQL中
- 然后再通過Superset的可視化工具進行數(shù)據(jù)的展示
實時數(shù)倉文章來源地址http://www.zghlxwxcb.cn/news/detail-579636.html
- Flink讀取kakfa中的數(shù)據(jù),而kafka中主題數(shù)據(jù)即為ODS層
- Flink從kafka中讀取的數(shù)據(jù)進行清洗即為DWD層,再次寫回到kafka中
- Flink讀取kafka中DWD層的數(shù)據(jù),進行維數(shù)數(shù)據(jù)的處理,通過Hbase存儲處理的數(shù)據(jù),由于Flume和kafka會造成數(shù)據(jù)的重復,那么Flink在消費kafka數(shù)據(jù)的時候可以進行精準一次去重。如果數(shù)據(jù)量比較小可以不用Flink,而使用Redis旁路緩存去重,即為DIM層
- 維度的數(shù)據(jù)可以通過Redis或者Hbase進行查詢
- Flink將上面數(shù)據(jù)寫入到ClickHouse進行預聚合,即為DWS層
- 最后對ClickHouse數(shù)據(jù)進行查詢,然后通過Springboot(JavaWeb)數(shù)據(jù)接口服務將查詢數(shù)據(jù)寫入到Sugar,進行實時數(shù)據(jù)的可視化
到了這里,關(guān)于數(shù)據(jù)倉庫架構(gòu)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!