大数据技术丛书 Greenplum 从大数据战略到实现
作者:(中国)冯雷,姚延栋,高小明
出版时间: 2019年版
丛编项: 大数据技术丛书
内容简介
这是一本系统剖析Greenplum开源大数据平台的书籍,也是大数据战略制定与落地的实战型指导书! 本书围绕数字原生和云计算、大数据、人工智能驱动的企业数字化转型的核心诉求,从商业和技术实战视角分享了业界领先企业大数据战略的深刻思考,并提供了大数据战略从制定到落地的全面指导。既有高阶数字化战略高度对大数据的解读,又有技术实战角度对使用 Greenplum 大数据和机器学习平台实现大数据战略的实践指南。 本书作者来自Greenplum 核心研发团队,致力于以开源、开放的理念和先进的技术推进大数据产业生态,助力企业以更低的成本、更高的效率实现数字化转型,并基于Greenplum 开源社区培养大数据产业更多人才。 本书分为四个部分。 ● 第一部分介绍大数据战略。其中,第 1 章将分享作者对于人工智能、大数据和云计算之间关系的理解以及对人和人工智能的思考。第 2 章将介绍进取型企业为什么需要大数据战略以及如何建立大数据战略。 ● 第二部分介绍大数据平台。其中,第 3 章将以数据平台演进历史和未来趋势为主题,描述三次整合的背景及影响,介绍选择大数据平台需要考虑的因素,以及为什么Greenplum 是理想的大数据平台。第 4 章将介绍 Greenplum 数据库快速入门指南。第 5章将介绍 Greenplum 架构的主要特点和核心引擎。第 6 章将介绍数据加载、数据联邦和数据虚拟化。第 7 章将介绍 Greenplum 的资源管理以及对混合负载的支持。 ● 第三部分介绍机器学习。其中,第 8 章介绍 Greenplum 的各种过程化编程语言(用户自定义函数),用户可以使用 Python、R、Java 等实现用户自定义函数,还可以通过容器化技术实现自定义函数的安全性和隔离性。第 9 章将介绍 Greenplum 内建的机器学习库 MADlib,数据科学家可以使用内建的 50 多种机器学习算法用 SQL 对数据进行高级分析,并介绍如何扩展 MADlib 以实现新算法。第 10 章和第 11 章将分别介绍Greenplum 如何对文本数据和时空数据(GIS)进行存储、计算和分析。第 12 章将介绍Greenplum 丰富的图计算能力。 ● 第四部分介绍运维管理和数据迁移。其中,第 13 章会介绍各种监控和管理工具及相关企业级产品。第 14 章介绍数据库备份和恢复。第 15 章和第 16 章将分别介绍如何从Oracle 和 Teradta 迁移到 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