劍指大數據 — Flink實時數據倉庫項目實戰 (電商版)

尚硅谷教育

  • 出版商: 電子工業
  • 出版日期: 2023-10-01
  • 定價: $648
  • 售價: 8.5$551
  • 語言: 簡體中文
  • 頁數: 380
  • ISBN: 7121463997
  • ISBN-13: 9787121463990
  • 相關分類: 大數據 Big-data
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書從需求規劃、需求實現到可視化展示等,遵循項目開發的主要流程,全景介紹了電商行業Flink實時數據倉庫的搭建過程。在整個項目的搭建過程中,介紹了主要組件的安裝部署、需求實現的具體思路、問題的解決方案等,並穿插了大數據和數據倉庫相關的理論知識,包括數據倉庫的概念介紹、電商業務概述、數據倉庫理論介紹和數據倉庫建模等。最核心的內容是代碼中對Flink的靈活應用,為讀者展示了Flink處理數據的多種可能性。本書最後還詳細講解了項目的性能調優技巧和實戰案例,幫助讀者掌握更多的實戰經驗。 本書適合具有一定編程基礎的讀者學習或作為參考資料,通過本書,可以使你快速瞭解實時數據倉庫,全面掌握實時數據倉庫的相關技術。

目錄大綱

目 錄

第1章 實時數據倉庫概論 1
1.1 什麽是數據倉庫 1
1.2 走進實時數據倉庫 2
1.2.1 實時計算和離線計算 2
1.2.2 實時數據倉庫的構建目的 3
1.2.3 實時技術發展 4
1.2.4 實時數據倉庫現狀分析 5
1.3 學前導讀 7
1.3.1 學習的基本要求 7
1.3.2 你將學到什麽 7
1.4 本章總結 8
第2章 需求分析與架構設計 9
2.1 項目需求分析 9
2.1.1 實時數據倉庫項目產品描述 9
2.1.2 項目流程圖 10
2.1.3 指標體系分析 11
2.2 項目架構概述 12
2.2.1 架構設計 12
2.2.2 分層設計 13
2.3 技術選型 14
2.4 本章總結 17
第3章 項目部署與框架搭建 18
3.1 集群規劃與服務器配置 18
3.2 JDK與Hadoop安裝 18
3.2.1 虛擬機環境準備 19
3.2.2 JDK安裝 22
3.2.3 Hadoop安裝 23
3.2.4 Hadoop分佈式集群部署 24
3.3 ZooKeeper與Kafka安裝 30
3.3.1 安裝ZooKeeper 30
3.3.2 Zookeeper集群啟動、停止腳本 32
3.3.3 安裝Kafka 33
3.3.4 Kafka集群啟動、停止腳本 34
3.3.5 Kafka Topic相關操作 35
3.4 Flink的安裝與部署 36
3.4.1 YARN模式安裝 36
3.4.2 任務部署 37
3.5 本章總結 38
第4章 數據倉庫建模理論 39
4.1 數據倉庫理論準備 39
4.1.1 數據建模概述 39
4.1.2 關系模型與範式理論 40
4.1.3 維度模型 43
4.1.4 維度建模理論之事實表 44
4.1.5 維度建模理論之維度表 46
4.2 數據倉庫建模實踐 48
4.2.1 名詞概念 48
4.2.2 為什麽要分層 49
4.2.3 數據倉庫構建流程 50
4.3 本章總結 54
第5章 構建ODS層之用戶行為數據採集 55
5.1 日誌生成 55
5.1.1 數據埋點 55
5.1.2 目標數據 56
5.1.3 數據模擬 60
5.2 採集日誌的Flume 63
5.2.1 Flume組件 63
5.2.2 Flume安裝 64
5.2.3 採集日誌Flume配置 64
5.2.4 Flume的攔截器 65
5.2.5 採集日誌Flume啟動、停止腳本 69
5.3 本章總結 70
第6章 構建ODS層之業務數據採集 71
6.1 電商業務概述 71
6.1.1 電商業務流程 71
6.1.2 電商常識 72
6.1.3 電商表結構 73
6.2 數據同步概述 82
6.2.1 數據同步策略 82
6.2.2 數據同步工具選擇 83
6.3 業務數據模擬 83
6.3.1 MySQL安裝 83
6.3.2 數據模擬流程 85
6.4 Maxwell數據採集 87
6.4.1 MySQL中的binlog 87
6.4.2 Maxwell工作原理 89
6.4.3 業務數據採集 93
6.4.4 首日全量同步 95
6.5 本章總結 97
第7章 構建DIM層 98
7.1 開發環境準備 98
7.1.1 IDEA開發環境準備 98
7.1.2 HBase與Phoenix 102
7.2 關鍵技術解讀 106
7.2.1 Flink CDC 106
7.2.2 配置表設計 110
7.3 DIM層代碼編寫 112
7.3.1 接收Kafka數據過濾臟數據 112
7.3.2 動態拆分維度表數據 114
7.3.3 將流中的數據保存至Phoenix 124
7.3.4 測試 125
7.4 本章總結 126
第8章 構建DWD層 127
8.1 概述 127
8.2 流量域五大事務事實表 128
8.2.1 思路梳理 128
8.2.2 代碼編寫 132
8.3 交易域加購事務事實表 139
8.3.1 思路梳理 140
8.3.2 編寫代碼 143
8.4 交易域下單事務事實表 147
8.4.1 思路梳理 147
8.4.2 代碼編寫 151
8.5 交易域取消訂單事務事實表 155
8.5.1 思路梳理 155
8.5.2 代碼編寫 157
8.6 交易域支付成功事務事實表 160
8.6.1 思路梳理 160
8.6.2 代碼編寫 162
8.7 交易域退單事務事實表 165
8.7.1 思路梳理 166
8.7.2 代碼編寫 167
8.8 交易域退款成功事務事實表 170
8.8.1 思路梳理 170
8.8.2 代碼編寫 171
8.9 事實表動態分流 175
8.9.1 思路梳理 175
8.9.2 代碼編寫 177
8.10 本章總結 186
第9章 構建DWS層 187
9.1 概述 187
9.2 環境準備 190
9.2.1 安裝Redis 190
9.2.2 安裝ClickHouse 191
9.3 流量域關鍵詞粒度頁面瀏覽各窗口匯總表 193
9.3.1 思路梳理 193
9.3.2 代碼編寫 196
9.4 流量域版本—渠道—地區—訪客類別粒度頁面瀏覽各窗口匯總表 202
9.4.1 思路梳理 202
9.4.2 代碼編寫 203
9.5 流量域頁面瀏覽各窗口匯總表 209
9.5.1 思路梳理 209
9.5.2 代碼編寫 210
9.6 用戶域用戶登錄各窗口匯總表 215
9.6.1 思路梳理 215
9.6.2 代碼編寫 217
9.7 用戶域用戶註冊各窗口匯總表 222
9.7.1 思路梳理 222
9.7.2 代碼編寫 222
9.8 交易域加購各窗口匯總表 226
9.8.1 思路梳理 226
9.8.2 代碼編寫 227
9.9 交易域支付各窗口匯總表 231
9.9.1 思路梳理 231
9.9.2 代碼編寫 232
9.10 交易域下單各窗口匯總表 237
9.10.1 思路梳理 237
9.10.2 代碼編寫 238
9.11 交易域SKU粒度下單各窗口匯總表 243
9.11.1 思路梳理 243
9.11.2 代碼編寫 248
9.12 交易域省份粒度下單各窗口匯總表 266
9.12.1 思路梳理 266
9.12.2 代碼編寫 267
9.13 交易域品牌—分類—用戶粒度退單各窗口匯總表 274
9.13.1 思路梳理 274
9.13.2 代碼編寫 275
9.14 本章總結 282
第10章 數據可視化大屏 283
10.1 需求分析 283
10.2 Sugar BI介紹 283
10.2.1 簡介 283
10.2.2 使用入門 284
10.2.3 效果展示 286
10.3 本章總結 286
第11章 性能調優理論與實踐 287
11.1 項目環境概述 287
11.1.1 集群環境 287
11.1.2 任務提交測試 288
11.2 YARN調優策略 297
11.2.1 YARN內存調優 297
11.2.2 YARN CPU調優 297
11.3 Flink內存模型 298
11.3.1 TaskManager內存模型 298
11.3.2 JobManager內存模型 301
11.4 並行度與slot 302
11.4.1 Flink的並行度配置 302
11.4.2 TaskManager slot個數配置 304
11.5 狀態調優 304
11.5.1 Flink的狀態編程概述 305
11.5.2 檢查點相關配置 306
11.5.3 開啟狀態訪問性能監控 308
11.5.4 RocksDB狀態後端的性能優化手段 310
11.5.5 開啟分區索引和過濾器功能 311
11.5.6 調整預定義選項 312
11.5.7 手動調整參數 312
11.6 反壓 313
11.6.1 反壓概述 313
11.6.2 如何定位反壓 314
11.6.3 反壓的原因及解決辦法 317
11.7 數據傾斜 320
11.7.1 判斷數據傾斜 320
11.7.2 解決數據傾斜 321
11.8 Job優化 325
11.8.1 為算子指定UUID 325
11.8.2 鏈路延遲監控 326
11.8.3 開啟對象重用 327
11.8.4 細粒度滑動窗口優化 328
11.8.5 提前計算滾動窗口 329
11.9 Flink SQL優化 329
11.9.1 設置空閑狀態保留時間 329
11.9.2 開啟MiniBatch功能 329
11.9.3 開啟LocalGlobal優化 330
11.9.4 開啟Split Distinct優化 331
11.9.5 使用FILTER語法 332
11.10 Flink對接Kafka優化 333
11.10.1 Flink並行度與Kafka主題分區數 333
11.10.2 指定Watermark空閑等待 334
11.10.3 動態發現Kafka分區 334
11.11 DIM層調優實操 335
11.11.1 YARN資源配置分析 335
11.11.2 Flink內存分配分析 336
11.11.3 並行度與slot個數配置分析 337
11.11.4 狀態相關配置分析 337
11.11.5 DIM層任務初次提交測試 338
11.11.6 反壓情況分析 344
11.11.7 數據傾斜情況分析 348
11.11.8 與Kakfa對接的相關優化措施 351
11.11.9 任務重啟 352
11.11.10 最終提交命令 355
11.12 DWD層調優實操 356
11.12.1 DWD層任務初次提交測試 356
11.12.2 反壓情況分析 359
11.12.3 數據傾斜情況分析 364
11.12.4 最終提交命令 367
11.13 本章總結 369