Python大數(shù)據(jù)架構(gòu)全棧開發(fā)與應(yīng)用
定 價:139.99 元
- 作者:宋天龍
- 出版時間:2023/4/1
- ISBN:9787121453038
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:
- 版次:
- 開本:16開
本書介紹了如何使用 Python 實(shí)現(xiàn)企業(yè)級的大數(shù)據(jù)全棧式開發(fā)、設(shè)計(jì)和編程工作,涉及的知識點(diǎn)包括數(shù)據(jù)架構(gòu)整體設(shè)計(jì)、數(shù)據(jù)源和數(shù)據(jù)采集、數(shù)據(jù)同步、消息隊(duì)列、關(guān)系數(shù)據(jù)庫、NoSQL 數(shù)據(jù)庫、批處理、流處理、圖計(jì)算、人工智能、數(shù)據(jù)產(chǎn)品開發(fā)。 本書既深入淺出地介紹了不同技術(shù)組件的基本原理,又通過詳細(xì)對比介紹了如何根據(jù)不同場景選擇最佳實(shí)踐技術(shù)方案,并通過代碼實(shí)操幫助讀者快速掌握常用技術(shù)的應(yīng)用過程,最后通過項(xiàng)目案例介紹了如何將所學(xué)知識應(yīng)用于實(shí)際業(yè)務(wù)場景中。
宋天龍,觸脈咨詢副總裁、合伙人。負(fù)責(zé)創(chuàng)新型業(yè)務(wù)的架構(gòu)和方案設(shè)計(jì)、產(chǎn)品與技術(shù)研發(fā)、數(shù)據(jù)團(tuán)隊(duì)建設(shè)及管理。張偉松,現(xiàn)就職于埃森哲,擔(dān)任數(shù)據(jù)架構(gòu)師職位。在大數(shù)據(jù)、數(shù)據(jù)分析、云計(jì)算等領(lǐng)域有多年的實(shí)踐經(jīng)驗(yàn),并擁有阿里云、谷歌云等多項(xiàng)專業(yè)認(rèn)證。
第1章 數(shù)據(jù)架構(gòu)整體設(shè)計(jì)1
1.1 數(shù)據(jù)架構(gòu)概述1
1.2 數(shù)據(jù)架構(gòu)設(shè)計(jì)的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 運(yùn)維管理5
1.3 數(shù)據(jù)架構(gòu)設(shè)計(jì)的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ù)要點(diǎn)53
2.5 使用Scrapy+XPath抓取數(shù)據(jù)并寫入MongoDB54
2.5.1 安裝配置54
2.5.2 基本示例55
2.5.3 高級用法62
2.5.4 技術(shù)要點(diǎn)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實(shí)現(xiàn)數(shù)據(jù)同步83
3.3.1 安裝配置84
3.3.2 基本示例84
3.3.3 高級用法89
3.3.4 技術(shù)要點(diǎn)95
3.4 Python操作第三方庫實(shí)現(xiàn)Google Analytics數(shù)據(jù)同步96
3.4.1 安裝配置96
3.4.2 基本示例100
3.4.3 高級用法104
3.4.4 技術(shù)要點(diǎn)111
3.5 案例:某O2O企業(yè)離線數(shù)據(jù)同步案例112
3.6 常見問題114
第4章 消息隊(duì)列117
4.1 消息隊(duì)列概述117
4.1.1 消息隊(duì)列的核心概念117
4.1.2 選擇消息隊(duì)列的3種技術(shù)應(yīng)用場景118
4.2 消息隊(duì)列的技術(shù)選型119
4.2.1 常見的6種消息隊(duì)列技術(shù)119
4.2.2 消息隊(duì)列技術(shù)選型的4個維度121
4.2.3 消息隊(duì)列技術(shù)選型總結(jié)123
4.3 Python操作RabbitMQ處理消息隊(duì)列服務(wù)124
4.3.1 安裝配置124
4.3.2 基本示例125
4.3.3 高級用法129
4.3.4 技術(shù)要點(diǎn)131
4.4 Python操作Kafka處理消息隊(duì)列服務(wù)132
4.4.1 安裝配置132
4.4.2 基本示例135
4.4.3 高級用法138
4.4.4 技術(shù)要點(diǎn)139
4.5 Python操作ZeroMQ處理消息隊(duì)列服務(wù)140
4.5.1 安裝配置140
4.5.2 基本示例140
4.5.3 高級用法146
4.5.4 技術(shù)要點(diǎn)150
4.6 案例:利用消息隊(duì)列采集電商用戶行為數(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ù)要點(diǎn)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ù)要點(diǎn)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)用過濾器進(jìn)行復(fù)雜查詢199
6.3.4 批量操作201
6.3.5 技術(shù)要點(diǎn)201
6.4 使用Python操作Redis202
6.4.1 安裝配置202
6.4.2 基本示例203
6.4.3 使用HyperLogLog實(shí)現(xiàn)獨(dú)立IP計(jì)數(shù)器210
6.4.4 Redis數(shù)據(jù)持久化212
6.4.5 技術(shù)要點(diǎn)213
6.5 使用Python操作ES213
6.5.1 安裝配置213
6.5.2 基本示例215
6.5.3 批量加載文檔到ES+使用Kibana進(jìn)行分析220
6.5.4 技術(shù)要點(diǎn)228
6.6 使用Python操作Neo4j230
6.6.1 安裝配置230
6.6.2 基本示例231
6.6.3 APOC234
6.6.4 技術(shù)要點(diǎn)236
6.7 使用Python操作MongoDB237
6.7.1 安裝配置237
6.7.2 基本示例237
6.7.3 文檔聚合與管道239
6.7.4 技術(shù)要點(diǎn)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)要點(diǎ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進(jìn)行批處理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ù)要點(diǎn)272
7.4 PySpark操作DataFrame進(jìn)行批處理273
7.4.1 安裝配置273
7.4.2 基本示例273
7.4.3 常用Spark DataFrame操作示例277
7.4.4 使用Spark MLlib + DataFrame進(jìn)行特征工程281
7.4.5 技術(shù)要點(diǎn)282
7.5 案例:某B2C企業(yè)基于PySpark實(shí)現(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實(shí)現(xiàn)流處理296
8.4.1 安裝配置296
8.4.2 基本示例298
8.4.3 高級用法322
8.4.4 技術(shù)要點(diǎn)328
8.5 案例:某B2C企業(yè)基于Structured Streaming實(shí)現(xiàn)實(shí)時話題熱榜統(tǒng)計(jì)330
8.6 常見問題331
第9章 圖計(jì)算333
9.1 圖計(jì)算概述333
9.1.1 圖計(jì)算的特征333
9.1.2 圖計(jì)算的算法和應(yīng)用場景334
9.2 圖計(jì)算引擎的技術(shù)選型335
9.2.1 圖計(jì)算的8種技術(shù)335
9.2.2 圖計(jì)算選型的8個技術(shù)因素338
9.2.3 圖計(jì)算選型總結(jié)339
9.3 Python操作GraphFrames實(shí)現(xiàn)圖計(jì)算341
9.3.1 安裝配置341
9.3.2 構(gòu)建圖341
9.3.3 視圖分析342
9.3.4 子頂點(diǎn)、子邊和子圖過濾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 連通分量和強(qiáng)連通分量351
9.3.11 標(biāo)簽傳播351
9.3.12 通用網(wǎng)頁排名和個性化網(wǎng)頁排名352
9.3.13 三角形計(jì)數(shù)354
9.3.14 技術(shù)要點(diǎn)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)用實(shí)踐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)化的