《Python大數據架構全棧開發與套用》是電子工業出版社出版的圖書,作者是宋天龍,張偉松。
《Python大數據架構全棧開發與套用》介紹了如何使用Python實現企業級的大數據全棧式開發、設計和編程工作,涉及的知識點包括數據架構整體設計、數據源和數據採集、數據同步、訊息佇列、關係資料庫、NoSQL資料庫、批處理、流處理、圖計算、人工智慧、數據產品開發。
基本介紹
- 中文名:Python大數據架構全棧開發與套用
- 作者:宋天龍、張偉松
- 出版社:電子工業出版社
- 出版時間:2023年5月
- 頁數:444 頁
- 定價:139.99 元
- ISBN:9787121453038
內容簡介,圖書目錄,作者簡介,
內容簡介
《Python大數據架構全棧開發與套用》介紹了如何使用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操作ES213
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
作者簡介
宋天龍,觸脈諮詢副總裁、合伙人。負責創新型業務的架構和方案設計、產品與技術研發、數據團隊建設及管理。
張偉松,現就職於埃森哲,擔任數據架構師職位。在大數據、數據分析、雲計算等領域有多年的實踐經驗,並擁有阿里雲、谷歌雲等多項專業認證。