Greenplum:從大數據戰略到實現

Greenplum:從大數據戰略到實現

作者: 馮 雷 姚延棟 高小明 楊 瑜
出版社: 機械工業
出版在: 2019-08-01
ISBN-13: 9787111632160
ISBN-10: 7111632168




內容描述


隨著數字資源持續爆炸式的增長,各行各業都在探索如何更好地利用數字資源,抓住機遇,實現數字化轉型。在此過程中,有很多亟待解決的問題,其中,選擇什麽樣的大數據平臺是至關重要的決定。Greenplum 是業界知名的MPP數據庫平臺。經過15年的打磨,Greenplum以其計算速度快、擴展性強、接口豐富、原生支持豐富的大數據分析算法以及靈活支持多種存儲協議等特點成為當今大數據分析平臺的最佳選擇。本書作者長期從事大數據平臺領域的創新和研發工作,作為Greenplum的主要開發者,對大數據平臺技術以及整個大數據產業鏈有豐富的實操經驗和獨到的見解。相信這本著作會令致力於大數據應用開發、設計、科研和教學的讀者感到受益匪淺。
——劉偉 博士,戴爾科技集團全球副總裁,中國研發集團總經理

阿裡雲選擇開源Greenplum數據庫發布數據庫產品主要基於三個方面的考慮:第一,Pivotal在Greenplum上持續投入了十多年的時間,打造出這款優秀的開源數據庫產品。一個優秀的數據庫引擎需要很長時間的沉澱和巨大的投入才能形成;第二,Greenplum是一個成熟的產品,在SQL的兼容性方面尤其出色,而SQL的兼容性會在很大程度上影響用戶的體驗和數據的遷移;第三,用戶需要的不僅是引擎,更是一個完整的生態,Greenplum已經形成了完整的開源生態,並培養了很多的用戶。在Greenplum生態中形成了很多優秀的BI 工具和ETL工具,用戶在使用時會更加便捷。
——餘鋒 阿裡雲數據庫研究員

Greenplum作為Pivotal公司投入研發十餘年的 MPP產品,能夠完美地滿足高性能並行計算、海量數據存儲及人工智能數據分析等需求,在金融、電信、零售等領域有著廣泛應用。
Greenplum自2015年開源以來,產品迭代速度逐漸加快,推出了很多值得期待的新特性,開源社區也得到了快速發展,幫助越來越多的企業獲得了成功。在開源之初,百度即將 Greenplum引入內部使用,現已支撐了金融、搜索和教育等多個核心業務,同時也在百度雲上推出了基於Greenplum的雲服務。
本書由Greenplum研發夢之隊精心編寫,不僅深度解密其背後的設計理念和實現細節,還給讀者帶來了諸多場景的應用實踐經驗,是Greenplum使用、開發、運維人員的首選參考資料。
——賴寶華 百度數據庫團隊技術經理


目錄大綱



前言
第一部分大數據戰略
第1章ABC:人工智能、大數據和雲計算 2
1.1 再談雲計算 2
1.1.1 雲計算由南向轉為北向 2
1.1.2 P層雲的精細化發展 3
1.1.3 大數據系統在雲中部署不斷朝南上移 4
1.2 大數據 5
1.2.1 從CRUD到CRAP 5
1.2.2 MPP(大規模並行計算) 7
1.2.3 大數據系統 8
1.2.4 當大數據遇到雲計算10
1.3 人工智能11
1.3.1 模型化方法12
1.3.2 AI的發展史14
1.3.3 對AI應用的正確預期15
1.4 ABC之間的關係16
1.5 AI和人18
1.5.1 經驗與邏輯18
1.5.2 公理化的邏輯系統21
1.5.3 圖靈機和可計算數25
1.5.4 認知邊界上的考量28
第2章建立基於大數據的高階數字化戰略32
2.1 基於雲原生應用的數字化戰略32
2.2 大數據和AI:企業未來的終極
 競爭點34
2.3 大數據戰略的落地36
2.3.1 大數據和AI人才36
2.3.2 AI驅動的開發方法和文化37
2.3.3 大數據基礎設施的建設39
2.4 大數據和AI的展望41
第二部分大數據平台
第3章數據處理平台的演進45
3.1 前數據處理時代45
3.2 早期的電子數據處理47
3.2.1 電子計算機的出現47
3.2.2 軟件47
3.3 數據庫49
3.3.1 數據模型50
3.3.2 數據獨立性和高級數據處理語言54
3.3.3 數據保護57
3.3.4 數據庫早期發展過程中的困境57
3.4 NoSQL數據庫58
3.4.1 NoSQL出現的背景58
3.4.2 NoSQL產品的共性60
3.4.3 NoSQL的分類61
3.5 SQL數據庫的回歸62
3.5.1 NoSQL與SQL的融合62
3.5.2 Hadoop不等於大數據63
3.5.3 SQL從未離開64
3.6 集成數據處理和分析平台65
3.6.1 數據類型65
3.6.2 業務場景66
3.6.3 集中還是分散67
3.7 數據平台的選型68
3.8 小結69
第4章Greenplum數據庫快速入門72
4.1 Greenplum數據庫的發展和現狀72
4.2 Greenplum數據庫的特性73
4.3 Greenplum數據庫的組成75
4.4 Greenplum數據庫的安裝與部署76
4.4.1 準備工作76
4.4.2 安裝Greenplum 77
4.4.3 初始化Greenplum數據庫80
4.5 Greenplum數據庫的常用操作82
4.6 Greenplum數據庫的常用命令83
4.6.1 gpstart 83
4.6.2 gpstop 83
4.6.3 gpstate 83
4.6.4 gpactivatestandby 84
4.6.5 gpconfig 84
4.6.6 gpdeletesystem 84
4.7 小結85
第5章Greenplum的架構和核心引擎86
5.1 Greenplum的架構86
5.1.1 Greenplum Master 87
5.1.2 Greenplum Segment 87
5.1.3 Greenplum Interconnect 87
5.1.4 Greenplum Standby Master 87
5.1.5 Greenplum Mirror Segment 88
5.2 Greenplum查詢計劃88
5.2.1 單機查詢計劃89
5.2.2 並行查詢計劃90
5.3 Greenplum數據庫查詢處理的過程95
5.3.1 Greenplum數據庫的主要功能組件95
5.3.2 Greenplum數據庫查詢的執行流程96
5.4 小結97
第6章從ETL到數據聯邦和數據虛擬化98
6.1 Greenplum中的ETL 99
6.1.1 PostgreSQL的ETL工具箱99
6.1.2 GPLOAD 100
6.2 Greenplum的數據聯邦104
6.2.1 dblink簡介104
6.2.2 外部表107
6.2.3 GPFDIST外部表109
6.2.4 可執行外部表119
6.2.5 Greenplum的S3外部表120
6.2.6 GPHDFS外部表127
6.2.7 Spark連接器129
6.2.8 Gemfire連接器129
6.3 Greenplum的數據虛擬化框架130
6.3.1 PXF的架構130
6.3.2 PXF的環境配置131
6.3.3 GPHDFS與PXF比較132
6.4 小結133
第7章混合負載和資源管理134
7.1 混合負載的機遇和挑戰134
7.2 混合負載的業務和技術要求136
7.3 資源管理139
7.4 並發管理145
7.5 小結146
第三部分機器學習與數據分析
第8章Greenplum中的過程化編程語言149
8.1 PL/Python 150
8.1.1 PL/Python簡介150
8.1.2 受信任的過程化編程語言151
8.1.3 安裝Python包152
8.1.4 安裝Greenplum數據計算Python包集合153
8.1.5 類型轉換153
8.1.6 PL/Python函數中的數據共享154
8.2 PL/R 155
8.2.1 PL/R簡介156
8.2.2 安裝R包158
8.2.3 安裝Greenplum數據計算R包集合158
8.3 PL/Container 158
8.3.1 PL/Container簡介159
8.3.2 一個簡單的例子159
8.3.3 PL/Container的基本操作方法162
8.3.4 PL/Container實踐總結166
8.3.5 關於PL/Container的開發167
8.4 小結167
第9章MADlib 機器學習庫168
9.1 MADlib入門168
9.1.1 MADlib簡介168
9.1.2 MADlib的特點169
9.1.3 MADlib與其他機器學習算法庫的比較172
9.1.4 MADlib的快速安裝173
9.2 MADlib的架構174
9.2.1 SQL用戶接口174
9.2.2 Python驅動函數175
9.2.3 C++機器學習算法實現175
9.2.4 C++數據庫抽象層176
9.3 MADlib應用177
9.3.1 數據預處理177
9.3.2 監督學習178
9.3.3 非監督學習184
9.3.4 時間序列187
9.3.5 自定義機器學習算法188
9.4 小結191
第10章Greenplum半結構化文本數據分析192
10.1 GPText文本分析概述192
10.1.1 GPText數據提取192
10.1.2 GPText的文本處理、索引流程和高階分析193
10.2 GPText內置的全文檢索引擎:Apache SolrCloud 194
10.3 GPText架構:高速並行索引和查詢195
10.4 數據準備197
10.5 GPText的使用:簡單的SQL和UDF函數198
10.6 GPText的安裝200
10.7 GPText索引201
10.7.1 創建GPText索引201
10.7.2 加載GPText索引204
10.7.3 GPText 增減索引列205
10.8 GPText簡單查詢205
10.8.1 GPText 查詢的語法205
10.8.2 GPText 臨近查詢206
10.8.3 GPText top查詢206
10.9 GPText高級查詢207
10.9.1 GPText Facet 查詢207
10.9.2 GPText 高亮查詢結果209
10.10 GPText分區表查詢210
10.11 GPText對自然語言處理的支持211
10.12 GPText定制化索引213
10.13 GPText管理工具214
10.14 GPText用於文本挖掘和分析215
10.15 小結216
第11章地理空間數據分析和處理218
11.1 概述218
11.1.1 什麼是地理空間數據218
11.1.2 地理空間數據應用與分析中的挑戰220
11.2 Greenplum PostGIS 223
11.2.1 Greenplum PostGIS 簡介223
11.2.2 安裝Greenplum PostGIS 組件224
11.2.3 第一次使用227
11.3 Greenplum PostGIS應用實例228
11.3.1 GIS數據準備228
11.3.2 使用Greenplum PostGIS空間數據操作符進行GIS數據查詢230
11.3.3 使用Greenplum PostGIS的UDF進行GIS數據分析233
11.3.4 柵格數據235
11.4 小結239
第12章Greenplum數據庫與圖計算240
12.1 圖的概念240
12.2 圖的應用241
12.2.1 電子電路設計自動化241
12.2.2 搜索引擎242
12.2.3 社交網絡242
12.3 圖數據的處理243
12.4 Greenplum對圖數據的支持244
12.5 MADlib中的圖結構和算法245
12.5.1 圖的表示245
12.5.2 MADlib支持的圖算法245
12.5.3 MADlib圖算法詳解246
12.6 小結277
第四部分Greenplum的運維和遷移
第13章Greenplum的監控和管理281
13.1 監控Greenplum集群的狀態282
13.1.1 gpstate命令282
13.1.2 系統表gp_segment_conf?iguration 283
13.1.3 Segment的故障恢復和再平衡284
13.1.4 常用的監控命令287
13.2 管理Greenplum集群289
13.2.1 參數配置289
13.2.2 訪問管理290
13.2.3 統計信息292
13.2.4 管理表膨脹294
13.3 Greenplum指令中心(GPCC) 297
13.3.1 GPCC簡介297
13.3.2 可視化監控298
13.3.3 查詢監控和分析301
13.3.4 工作負載管理305
13.3.5 監控告警系統307
13.4 小結309
第14章Greenplum數據庫的備份、恢復和遷移310
14.1 非並行數據庫備份310
14.2 非並行數據庫恢復313
14.3 並行數據庫備份313
14.4 並行數據庫恢復316
14.5 高效的並行數據庫備份和恢復工具gpbackup/gprestore 317
14.6 新一代Greenplum數據遷移工具GPCOPY 322
14.7 小結324
第15章從Oracle遷移到Greenplum 326
15.1 概述326
15.2 Oracle與Greenplum的架構對比327
15.2.1 Oracle的主要痛點329
15.2.2 Greenplum的優勢330
15.3 從Oracle遷移到Greenplum的流程331
15.3.1 遷移場景332
15.3.2 遷移過程334
15.3.3 特殊場景分析344
15.4 小結352
第16章從Teradata遷移到Greenplum 353
16.1 Teradata產品和用戶面臨的問題353
16.2 從Teradata遷移到Greenplum的可行性354
16.3 如何從Teradata遷移到Greenplum 356
16.3.1 遷移流程概述356
16.3.2 Teradata數據卸載及DDL導出規範357
16.3.3 數據操作語句轉換364
16.3.4 函數轉換367
16.3.5 ETL應用工具連接轉換369
16.3.6 其他應用接口遷移372
16.4 特殊場景373
16.4.1 事前微批去重373
16.4.2 事後批量去重374
16.5 小結374
附錄A Greenplum社區375
附錄B 外部表實例380
附錄C Greenplum的SSL證書386
術語表390


作者介紹


馮雷(Ray Feng)
Pivotal中國常務董事(Managing Director)兼研發中心總經理。Pivotal中國成立至今,馮雷主持了近十億人民幣投資的中國運營和研發體系。作為Pivotal全球產品關鍵領導人,為Pivotal公司的數字化理念建立及其對應的Cloud Foundry和Greenplum產品提供戰略輸入。馮雷於2010年從美國矽谷歸國,在世界500強公司EMC旗下組建了Pivotal中國。在歸國之前,馮雷曾在500強企業甲骨文(Oracle)總部從事雲計算產品研發。作為雲計算早的一批從業人員,幫助甲骨文云計算資源調度領域成為意見領袖。擁有多項云計算專利。
姚延棟
Pivotal中國研發中心副總裁,在Pivotal公司全球範圍內為Greenplum技術發展路線提供戰略輸入。聯合創建了Pivotal中國研發中心,發起了Greenplum中國開源社區,奠定了包括阿里雲、騰訊雲和百度雲在內的廣大開源Greenplum用戶群。在Pivotal中國招募並建設了Greenplum和HAWQ團隊成為大數據和機器學習的意見領袖,培養團隊成員同時成為Apache和Greenplum代碼提交者。在創建Greenplum/Pivotal中國之前, 曾在Sun Microsystem 與Symantec 系統和存儲部門工作多年。擁有多項國內外雲計算和大數據專利。
高小明
Pivotal中國研發中心Greenplum產品總監,先後參與和負責數據分析協作平台Chorus、開源PaaS雲平台Cloud Foundry、MPP數據庫Greenplum等產品的開發、運維和技術推廣。目前著重關注PaaS雲平台與大數據平台支撐下的數字化轉型、微服務架構以及容器化與混合負載給數據產品帶來的機遇和挑戰。
楊瑜
Pivotal中國研發中心Greenplum工程技術總監,長期從事Greenplum 內核的研發和管理工作,先後參與和負責基於Greenplum內核的機器學習庫MADlib的研發、Greenplum 內核和PostgreSQL內核持續歸併等工作,並參與組建Greenplum文本挖掘引擎GPText團隊,有豐富的一線內核研發經驗。




相關書籍

Modeling Business Objects with XML Schema

作者 Berthold Daum

2019-08-01

Rails Recipes: Rails 3 Edition, 2/e (Paperback)

作者 Chad Fowler

2019-08-01

Building iPhone Apps with HTML, CSS, and JavaScript: Making App Store Apps Without Objective-C or Cocoa (Paperback)

作者 Jonathan Stark

2019-08-01