Python 大數據架構全棧開發與應用

宋天龍,張偉松

  • 出版商: 電子工業
  • 出版日期: 2023-04-01
  • 售價: $840
  • 貴賓價: 9.5$798
  • 語言: 簡體中文
  • 頁數: 444
  • ISBN: 7121453037
  • ISBN-13: 9787121453038
  • 相關分類: 大數據 Big-data
  • 立即出貨

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

商品描述

本書介紹瞭如何使用 Python 實現企業級的大數據全棧式開發、設計和編程工作,涉及的知識點包括數據架構整體設計、數據源和數據採集、數據同步、消息隊列、關系數據庫、NoSQL 數據庫、批處理、流處理、圖計算、人工智能、數據產品開發。 本書既深入淺出地介紹了不同技術組件的基本原理,又通過詳細對比介紹瞭如何根據不同場景選擇最佳實踐技術方案,並通過代碼實操幫助讀者快速掌握常用技術的應用過程,最後通過項目案例介紹瞭如何將所學知識應用於實際業務場景中。

目錄大綱

第1章 數據架構整體設計 1
1.1 數據架構概述 1
1.2 數據架構設計的8個考慮因素 1
1.2.1 適用性 2
1.2.2 延伸性 2
1.2.3 安全性 3
1.2.4 易用性 3
1.2.5 高性能 4
1.2.6 成本限制 5
1.2.7 應用需求 5
1.2.8 運維管理 5
1.3 數據架構設計的4個核心內容 6
1.3.1 物理架構 6
1.3.2 邏輯架構 10
1.3.3 技術架構 13
1.3.4 數據流架構 15
1.4 常見的6種數據架構 17
1.4.1 簡單數據庫支撐的數據架構 17
1.4.2 傳統數倉支撐的數據架構 18
1.4.3 傳統大數據架構 20
1.4.4 流式大數據架構 22
1.4.5 流批一體大數據架構 23
1.4.6 存算分離的流批一體大數據架構 25
1.5 案例:某B2B企業的數據架構選型 26
1.5.1 企業背景 26
1.5.2 應用預期 27
1.5.3 數據現狀 27
1.5.4 選型分析 27
1.5.5 選型方案 28
1.5.6 未來拓展 29
1.6 常見問題 29
第2章 數據源和數據採集 32
2.1 數據源概述 32
2.1.1 常見的3種數據類型 32
2.1.2 常見的8種數據源 33
2.2 企業內部流量數據採集技術選型 33
2.2.1 企業內部流量數據採集常用的技術 34
2.2.2 內部流量數據採集技術選型的因素 37
2.2.3 內部流量數據採集技術選型總結 39
2.3 企業外部互聯網數據採集技術選型 40
2.3.1 外部互聯網數據採集常用的4種技術 40
2.3.2 外部互聯網數據採集技術選型的5個因素 44
2.3.3 外部互聯網數據採集技術選型總結 44
2.4 使用Requests+BeautifulSoup抓取數據並寫入Sqlite 45
2.4.1 安裝配置 45
2.4.2 基本示例 46
2.4.3 高級用法 47
2.4.4 技術要點 53
2.5 使用Scrapy+XPath抓取數據並寫入MongoDB 54
2.5.1 安裝配置 54
2.5.2 基本示例 55
2.5.3 高級用法 62
2.5.4 技術要點 69
2.6 案例:某B2C電商企業的數據源結構 69
2.6.1 企業背景 69
2.6.2 業務系統 69
2.6.3 數據源結構 71
2.7 常見問題 71
第3章 數據同步 74
3.1 數據同步概述 74
3.1.1 數據同步的3種模式 74
3.1.2 數據同步的5種預處理技術 75
3.2 數據同步的技術選型 76
3.2.1 數據同步的7種技術 76
3.2.2 數據同步選型的9個因素 80
3.2.3 數據同步技術選型總結 82
3.3 Python操作DataX實現數據同步 83
3.3.1 安裝配置 84
3.3.2 基本示例 84
3.3.3 高級用法 89
3.3.4 技術要點 95
3.4 Python操作第三方庫實現Google Analytics數據同步 96
3.4.1 安裝配置 96
3.4.2 基本示例 100
3.4.3 高級用法 104
3.4.4 技術要點 111
3.5 案例:某O2O企業離線數據同步案例 112
3.6 常見問題 114
第4章 消息隊列 117
4.1 消息隊列概述 117
4.1.1 消息隊列的核心概念 117
4.1.2 選擇消息隊列的3種技術應用場景 118
4.2 消息隊列的技術選型 119
4.2.1 常見的6種消息隊列技術 119
4.2.2 消息隊列技術選型的4個維度 121
4.2.3 消息隊列技術選型總結 123
4.3 Python操作RabbitMQ處理消息隊列服務 124
4.3.1 安裝配置 124
4.3.2 基本示例 125
4.3.3 高級用法 129
4.3.4 技術要點 131
4.4 Python操作Kafka處理消息隊列服務 132
4.4.1 安裝配置 132
4.4.2 基本示例 135
4.4.3 高級用法 138
4.4.4 技術要點 139
4.5 Python操作ZeroMQ處理消息隊列服務 140
4.5.1 安裝配置 140
4.5.2 基本示例 140
4.5.3 高級用法 146
4.5.4 技術要點 150
4.6 案例:利用消息隊列採集電商用戶行為數據 151
4.6.1 案例背景 151
4.6.2 主要技術 151
4.6.3 案例過程 152
4.6.4 案例小結 155
4.7 常見問題 156
第5章 關系數據庫 158
5.1 關系數據庫概述 158
5.1.1 關系數據庫的相關概念 158
5.1.2 使用關系數據庫的3種場景 158
5.2 關系數據庫的技術選型 159
5.2.1 常見的5種技術選型 159
5.2.2 關系數據庫選型的3個維度 161
5.2.3 關系數據庫技術選型總結 162
5.3 使用基於DB-API 2.0規範的PyMySQL操作MySQL數據庫 162
5.3.1 安裝配置 163
5.3.2 基本示例 163
5.3.3 高級用法 165
5.3.4 技術要點 169
5.4 使用基於ORM技術的SQLAlchemy操作PostgreSQL數據庫 170
5.4.1 安裝配置 170
5.4.2 基本示例 171
5.4.3 高級用法 175
5.4.4 技術要點 180
5.5 案例:某傳統零售企業基於關系數據庫的數據集市 181
5.5.1 企業背景 181
5.5.2 企業為什麽選擇SQL Server作為數據集市 181
5.5.3 數據字典 181
5.5.4 應用場景 183
5.6 常見問題 184
第6章 NoSQL數據庫 186
6.1 NoSQL數據庫概述 186
6.1.1 NoSQL數據庫的相關概念 186
6.1.2 使用NoSQL數據庫的5種場景 187
6.2 不同類型NoSQL數據庫的技術選型 188
6.2.1 常見的3種鍵值數據庫技術選型 188
6.2.2 常見的3種文檔型數據庫的技術選型 188
6.2.3 常見的兩種列式存儲數據庫的技術選型 190
6.2.4 常見的兩種圖數據庫的技術選型 190
6.2.5 NoSQL數據庫技術選型的五大維度 191
6.2.6 NoSQL數據庫技術選型總結 192
6.3 使用Python操作HBase 193
6.3.1 安裝配置 193
6.3.2 基本示例 195
6.3.3 HBase應用過濾器進行復雜查詢 199
6.3.4 批量操作 201
6.3.5 技術要點 201
6.4 使用Python操作Redis 202
6.4.1 安裝配置 202
6.4.2 基本示例 203
6.4.3 使用HyperLogLog實現獨立IP計數器 210
6.4.4 Redis數據持久化 212
6.4.5 技術要點 213
6.5 使用Python操作ES 213
6.5.1 安裝配置 213
6.5.2 基本示例 215
6.5.3 批量加載文檔到ES+使用Kibana進行分析 220
6.5.4 技術要點 228
6.6 使用Python操作Neo4j 230
6.6.1 安裝配置 230
6.6.2 基本示例 231
6.6.3 APOC 234
6.6.4 技術要點 236
6.7 使用Python操作MongoDB 237
6.7.1 安裝配置 237
6.7.2 基本示例 237
6.7.3 文檔聚合與管道 239
6.7.4 技術要點 242
6.8 案例:某菜譜網站基於ES+Redis構建智能搜索推薦引擎 243
6.8.1 案例背景 243
6.8.2 為什麽選擇ES+Redis 243
6.8.3 系統架構 244
6.8.4 相關要點 245
6.8.5 案例延伸 246
6.9 常見問題 246
第7章 批處理 247
7.1 批處理概述 247
7.1.1 批處理的基本特徵 247
7.1.2 批處理的3類應用場景 248
7.2 批處理的技術選型 248
7.2.1 批處理的5種技術 248
7.2.2 批處理選型的8個技術因素 250
7.2.3 批處理選型總結 251
7.3 Python使用PyHive操作HQL進行批處理 252
7.3.1 安裝配置 252
7.3.2 基本示例 252
7.3.3 數據批量加載及處理 256
7.3.4 Hive函數 259
7.3.5 窗口 268
7.3.6 技術要點 272
7.4 PySpark操作DataFrame進行批處理 273
7.4.1 安裝配置 273
7.4.2 基本示例 273
7.4.3 常用Spark DataFrame操作示例 277
7.4.4 使用Spark MLlib + DataFrame進行特徵工程 281
7.4.5 技術要點 282
7.5 案例:某B2C企業基於PySpark實現用戶畫像標簽的構建 283
7.6 常見問題 285
第8章 流處理 288
8.1 流處理概述 288
8.1.1 流處理的核心概念 288
8.1.2 流處理的3個特徵 289
8.1.3 流處理的適用/不適用場景 289
8.2 流處理的依賴條件 290
8.2.1 流數據 290
8.2.2 流式應用 291
8.3 流處理的技術選型 291
8.3.1 流處理的3種技術 291
8.3.2 流處理選型的7個技術因素 295
8.3.3 流處理技術選型總結 295
8.4 Python操作Structured Streaming實現流處理 296
8.4.1 安裝配置 296
8.4.2 基本示例 298
8.4.3 高級用法 322
8.4.4 技術要點 328
8.5 案例:某B2C企業基於Structured Streaming實現實時話題熱榜統計 330
8.6 常見問題 331
第9章 圖計算 333
9.1 圖計算概述 333
9.1.1 圖計算的特徵 333
9.1.2 圖計算的算法和應用場景 334
9.2 圖計算引擎的技術選型 335
9.2.1 圖計算的8種技術 335
9.2.2 圖計算選型的8個技術因素 338
9.2.3 圖計算選型總結 339
9.3 Python操作GraphFrames實現圖計算 341
9.3.1 安裝配置 341
9.3.2 構建圖 341
9.3.3 視圖分析 342
9.3.4 子頂點、子邊和子圖過濾 344
9.3.5 度分析 345
9.3.6 模體查找 346
9.3.7 圖持久化 348
9.3.8 廣度優先搜索 348
9.3.9 最短路徑搜索 349
9.3.10 連通分量和強連通分量 351
9.3.11 標簽傳播 351
9.3.12 通用網頁排名和個性化網頁排名 352
9.3.13 三角形計數 354
9.3.14 技術要點 355
9.4 案例:基於用戶社交行為的分析 355
9.5 常見問題 359
第10章 人工智能 361
10.1 人工智能概述 361
10.1.1 人工智能的4種應用場景 361
10.1.2 人工智能的12類常用算法介紹 362
10.2 人工智能的技術選型 366
10.2.1 常見的3種技術框架 366
10.2.2 人工智能選型的6個因素 368
10.2.3 人工智能選型總結 369
10.3 PySpark ML的應用實踐 370
10.3.1 準備數據 371
10.3.2 特徵工程和處理 373
10.3.3 核心算法應用 375
10.3.4 Pipeline式應用 381
10.3.5 訓練和預測拆分及持久化操作 384
10.3.6 超參數優化的實現 386
10.4 案例:某B2C企業推薦系統的搭建與演進 387
10.4.1 總體設計思想 388
10.4.2 PoC:驗證想法 389
10.4.3 推薦系統的起步 390
10.4.4 完善線上與線下推薦 391
10.4.5 在線實時計算 393
10.5 常見問題 394
第11章 數據產品開發 398
11.1 數據產品開發概述 398
11.2 數據產品的路線選型 399
11.3 Python數據產品自研的技術選型 400
11.4 基於Django的產品開發 401
11.4.1 安裝配置 402
11.4.2 基本示例 402
11.4.3 Django REST Framework 410
11.4.4 技術要點 416
11.5 案例:某企業基於Django構建內部用戶畫像標簽產品 420
11.6 常見問題 421
附錄A Docker安裝使用 422
附錄B 使用EMR搭建Hadoop大數據集群 426