Python大數(shù)據(jù)架構(gòu)全棧開發(fā)與應(yīng)用
定 價:139.99 元
- 作者:宋天龍
- 出版時間:2023/4/1
- ISBN:9787121453038
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:
- 版次:
- 開本:16開
本書介紹了如何使用 Python 實現(xiàn)企業(yè)級的大數(shù)據(jù)全棧式開發(fā)、設(shè)計和編程工作,涉及的知識點包括數(shù)據(jù)架構(gòu)整體設(shè)計、數(shù)據(jù)源和數(shù)據(jù)采集、數(shù)據(jù)同步、消息隊列、關(guān)系數(shù)據(jù)庫、NoSQL 數(shù)據(jù)庫、批處理、流處理、圖計算、人工智能、數(shù)據(jù)產(chǎn)品開發(fā)。 本書既深入淺出地介紹了不同技術(shù)組件的基本原理,又通過詳細對比介紹了如何根據(jù)不同場景選擇最佳實踐技術(shù)方案,并通過代碼實操幫助讀者快速掌握常用技術(shù)的應(yīng)用過程,最后通過項目案例介紹了如何將所學(xué)知識應(yīng)用于實際業(yè)務(wù)場景中。
宋天龍,觸脈咨詢副總裁、合伙人。負責(zé)創(chuàng)新型業(yè)務(wù)的架構(gòu)和方案設(shè)計、產(chǎn)品與技術(shù)研發(fā)、數(shù)據(jù)團隊建設(shè)及管理。張偉松,現(xiàn)就職于埃森哲,擔(dān)任數(shù)據(jù)架構(gòu)師職位。在大數(shù)據(jù)、數(shù)據(jù)分析、云計算等領(lǐng)域有多年的實踐經(jīng)驗,并擁有阿里云、谷歌云等多項專業(yè)認(rèn)證。
第1章 數(shù)據(jù)架構(gòu)整體設(shè)計1
1.1 數(shù)據(jù)架構(gòu)概述1
1.2 數(shù)據(jù)架構(gòu)設(shè)計的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 應(yīng)用需求5
1.2.8 運維管理5
1.3 數(shù)據(jù)架構(gòu)設(shè)計的4個核心內(nèi)容6
1.3.1 物理架構(gòu)6
1.3.2 邏輯架構(gòu)10
1.3.3 技術(shù)架構(gòu)13
1.3.4 數(shù)據(jù)流架構(gòu)15
1.4 常見的6種數(shù)據(jù)架構(gòu)17
1.4.1 簡單數(shù)據(jù)庫支撐的數(shù)據(jù)架構(gòu)17
1.4.2 傳統(tǒng)數(shù)倉支撐的數(shù)據(jù)架構(gòu)18
1.4.3 傳統(tǒng)大數(shù)據(jù)架構(gòu)20
1.4.4 流式大數(shù)據(jù)架構(gòu)22
1.4.5 流批一體大數(shù)據(jù)架構(gòu)23
1.4.6 存算分離的流批一體大數(shù)據(jù)架構(gòu)25
1.5 案例:某B2B企業(yè)的數(shù)據(jù)架構(gòu)選型26
1.5.1 企業(yè)背景26
1.5.2 應(yīng)用預(yù)期27
1.5.3 數(shù)據(jù)現(xiàn)狀27
1.5.4 選型分析27
1.5.5 選型方案28
1.5.6 未來拓展29
1.6 常見問題29
第2章 數(shù)據(jù)源和數(shù)據(jù)采集32
2.1 數(shù)據(jù)源概述32
2.1.1 常見的3種數(shù)據(jù)類型32
2.1.2 常見的8種數(shù)據(jù)源33
2.2 企業(yè)內(nèi)部流量數(shù)據(jù)采集技術(shù)選型33
2.2.1 企業(yè)內(nèi)部流量數(shù)據(jù)采集常用的技術(shù)34
2.2.2 內(nèi)部流量數(shù)據(jù)采集技術(shù)選型的因素37
2.2.3 內(nèi)部流量數(shù)據(jù)采集技術(shù)選型總結(jié)39
2.3 企業(yè)外部互聯(lián)網(wǎng)數(shù)據(jù)采集技術(shù)選型40
2.3.1 外部互聯(lián)網(wǎng)數(shù)據(jù)采集常用的4種技術(shù)40
2.3.2 外部互聯(lián)網(wǎng)數(shù)據(jù)采集技術(shù)選型的5個因素44
2.3.3 外部互聯(lián)網(wǎng)數(shù)據(jù)采集技術(shù)選型總結(jié)44
2.4 使用Requests+BeautifulSoup抓取數(shù)據(jù)并寫入Sqlite45
2.4.1 安裝配置45
2.4.2 基本示例46
2.4.3 高級用法47
2.4.4 技術(shù)要點53
2.5 使用Scrapy+XPath抓取數(shù)據(jù)并寫入MongoDB54
2.5.1 安裝配置54
2.5.2 基本示例55
2.5.3 高級用法62
2.5.4 技術(shù)要點69
2.6 案例:某B2C電商企業(yè)的數(shù)據(jù)源結(jié)構(gòu)69
2.6.1 企業(yè)背景69
2.6.2 業(yè)務(wù)系統(tǒng)69
2.6.3 數(shù)據(jù)源結(jié)構(gòu)71
2.7 常見問題71
第3章 數(shù)據(jù)同步74
3.1 數(shù)據(jù)同步概述74
3.1.1 數(shù)據(jù)同步的3種模式74
3.1.2 數(shù)據(jù)同步的5種預(yù)處理技術(shù)75
3.2 數(shù)據(jù)同步的技術(shù)選型76
3.2.1 數(shù)據(jù)同步的7種技術(shù)76
3.2.2 數(shù)據(jù)同步選型的9個因素80
3.2.3 數(shù)據(jù)同步技術(shù)選型總結(jié)82
3.3 Python操作DataX實現(xiàn)數(shù)據(jù)同步83
3.3.1 安裝配置84
3.3.2 基本示例84
3.3.3 高級用法89
3.3.4 技術(shù)要點95
3.4 Python操作第三方庫實現(xiàn)Google Analytics數(shù)據(jù)同步96
3.4.1 安裝配置96
3.4.2 基本示例100
3.4.3 高級用法104
3.4.4 技術(shù)要點111
3.5 案例:某O2O企業(yè)離線數(shù)據(jù)同步案例112
3.6 常見問題114
第4章 消息隊列117
4.1 消息隊列概述117
4.1.1 消息隊列的核心概念117
4.1.2 選擇消息隊列的3種技術(shù)應(yīng)用場景118
4.2 消息隊列的技術(shù)選型119
4.2.1 常見的6種消息隊列技術(shù)119
4.2.2 消息隊列技術(shù)選型的4個維度121
4.2.3 消息隊列技術(shù)選型總結(jié)123
4.3 Python操作RabbitMQ處理消息隊列服務(wù)124
4.3.1 安裝配置124
4.3.2 基本示例125
4.3.3 高級用法129
4.3.4 技術(shù)要點131
4.4 Python操作Kafka處理消息隊列服務(wù)132
4.4.1 安裝配置132
4.4.2 基本示例135
4.4.3 高級用法138
4.4.4 技術(shù)要點139
4.5 Python操作ZeroMQ處理消息隊列服務(wù)140
4.5.1 安裝配置140
4.5.2 基本示例140
4.5.3 高級用法146
4.5.4 技術(shù)要點150
4.6 案例:利用消息隊列采集電商用戶行為數(shù)據(jù)151
4.6.1 案例背景151
4.6.2 主要技術(shù)151
4.6.3 案例過程152
4.6.4 案例小結(jié)155
4.7 常見問題156
第5章 關(guān)系數(shù)據(jù)庫158
5.1 關(guān)系數(shù)據(jù)庫概述158
5.1.1 關(guān)系數(shù)據(jù)庫的相關(guān)概念158
5.1.2 使用關(guān)系數(shù)據(jù)庫的3種場景158
5.2 關(guān)系數(shù)據(jù)庫的技術(shù)選型159
5.2.1 常見的5種技術(shù)選型159
5.2.2 關(guān)系數(shù)據(jù)庫選型的3個維度161
5.2.3 關(guān)系數(shù)據(jù)庫技術(shù)選型總結(jié)162
5.3 使用基于DB-API 2.0規(guī)范的PyMySQL操作MySQL數(shù)據(jù)庫162
5.3.1 安裝配置163
5.3.2 基本示例163
5.3.3 高級用法165
5.3.4 技術(shù)要點169
5.4 使用基于ORM技術(shù)的SQLAlchemy操作PostgreSQL數(shù)據(jù)庫170
5.4.1 安裝配置170
5.4.2 基本示例171
5.4.3 高級用法175
5.4.4 技術(shù)要點180
5.5 案例:某傳統(tǒng)零售企業(yè)基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)集市181
5.5.1 企業(yè)背景181
5.5.2 企業(yè)為什么選擇SQL Server作為數(shù)據(jù)集市181
5.5.3 數(shù)據(jù)字典181
5.5.4 應(yīng)用場景183
5.6 常見問題184
第6章 NoSQL數(shù)據(jù)庫186
6.1 NoSQL數(shù)據(jù)庫概述186
6.1.1 NoSQL數(shù)據(jù)庫的相關(guān)概念186
6.1.2 使用NoSQL數(shù)據(jù)庫的5種場景187
6.2 不同類型NoSQL數(shù)據(jù)庫的技術(shù)選型188
6.2.1 常見的3種鍵值數(shù)據(jù)庫技術(shù)選型188
6.2.2 常見的3種文檔型數(shù)據(jù)庫的技術(shù)選型188
6.2.3 常見的兩種列式存儲數(shù)據(jù)庫的技術(shù)選型190
6.2.4 常見的兩種圖數(shù)據(jù)庫的技術(shù)選型190
6.2.5 NoSQL數(shù)據(jù)庫技術(shù)選型的五大維度191
6.2.6 NoSQL數(shù)據(jù)庫技術(shù)選型總結(jié)192
6.3 使用Python操作HBase193
6.3.1 安裝配置193
6.3.2 基本示例195
6.3.3 HBase應(yīng)用過濾器進行復(fù)雜查詢199
6.3.4 批量操作201
6.3.5 技術(shù)要點201
6.4 使用Python操作Redis202
6.4.1 安裝配置202
6.4.2 基本示例203
6.4.3 使用HyperLogLog實現(xiàn)獨立IP計數(shù)器210
6.4.4 Redis數(shù)據(jù)持久化212
6.4.5 技術(shù)要點213
6.5 使用Python操作ES213
6.5.1 安裝配置213
6.5.2 基本示例215
6.5.3 批量加載文檔到ES+使用Kibana進行分析220
6.5.4 技術(shù)要點228
6.6 使用Python操作Neo4j230
6.6.1 安裝配置230
6.6.2 基本示例231
6.6.3 APOC234
6.6.4 技術(shù)要點236
6.7 使用Python操作MongoDB237
6.7.1 安裝配置237
6.7.2 基本示例237
6.7.3 文檔聚合與管道239
6.7.4 技術(shù)要點242
6.8 案例:某菜譜網(wǎng)站基于ES+Redis構(gòu)建智能搜索推薦引擎243
6.8.1 案例背景243
6.8.2 為什么選擇ES+Redis243
6.8.3 系統(tǒng)架構(gòu)244
6.8.4 相關(guān)要點245
6.8.5 案例延伸246
6.9 常見問題246
第7章 批處理247
7.1 批處理概述247
7.1.1 批處理的基本特征247
7.1.2 批處理的3類應(yīng)用場景248
7.2 批處理的技術(shù)選型248
7.2.1 批處理的5種技術(shù)248
7.2.2 批處理選型的8個技術(shù)因素250
7.2.3 批處理選型總結(jié)251
7.3 Python使用PyHive操作HQL進行批處理252
7.3.1 安裝配置252
7.3.2 基本示例252
7.3.3 數(shù)據(jù)批量加載及處理256
7.3.4 Hive函數(shù)259
7.3.5 窗口268
7.3.6 技術(shù)要點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 技術(shù)要點282
7.5 案例:某B2C企業(yè)基于PySpark實現(xiàn)用戶畫像標(biāo)簽的構(gòu)建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 流數(shù)據(jù)290
8.2.2 流式應(yīng)用291
8.3 流處理的技術(shù)選型291
8.3.1 流處理的3種技術(shù)291
8.3.2 流處理選型的7個技術(shù)因素295
8.3.3 流處理技術(shù)選型總結(jié)295
8.4 Python操作Structured Streaming實現(xiàn)流處理296
8.4.1 安裝配置296
8.4.2 基本示例298
8.4.3 高級用法322
8.4.4 技術(shù)要點328
8.5 案例:某B2C企業(yè)基于Structured Streaming實現(xiàn)實時話題熱榜統(tǒng)計330
8.6 常見問題331
第9章 圖計算333
9.1 圖計算概述333
9.1.1 圖計算的特征333
9.1.2 圖計算的算法和應(yīng)用場景334
9.2 圖計算引擎的技術(shù)選型335
9.2.1 圖計算的8種技術(shù)335
9.2.2 圖計算選型的8個技術(shù)因素338
9.2.3 圖計算選型總結(jié)339
9.3 Python操作GraphFrames實現(xiàn)圖計算341
9.3.1 安裝配置341
9.3.2 構(gòu)建圖341
9.3.3 視圖分析342
9.3.4 子頂點、子邊和子圖過濾344
9.3.5 度分析345
9.3.6 模體查找346
9.3.7 圖持久化348
9.3.8 廣度優(yōu)先搜索348
9.3.9 最短路徑搜索349
9.3.10 連通分量和強連通分量351
9.3.11 標(biāo)簽傳播351
9.3.12 通用網(wǎng)頁排名和個性化網(wǎng)頁排名352
9.3.13 三角形計數(shù)354
9.3.14 技術(shù)要點355
9.4 案例:基于用戶社交行為的分析355
9.5 常見問題359
第10章 人工智能361
10.1 人工智能概述361
10.1.1 人工智能的4種應(yīng)用場景361
10.1.2 人工智能的12類常用算法介紹362
10.2 人工智能的技術(shù)選型366
10.2.1 常見的3種技術(shù)框架366
10.2.2 人工智能選型的6個因素368
10.2.3 人工智能選型總結(jié)369
10.3 PySpark ML的應(yīng)用實踐370
10.3.1 準(zhǔn)備數(shù)據(jù)371
10.3.2 特征工程和處理373
10.3.3 核心算法應(yīng)用375
10.3.4 Pipeline式應(yīng)用381
10.3.5 訓(xùn)練和預(yù)測拆分及持久化操作384
10.3.6 超參數(shù)優(yōu)化的