《Greenplum企业应用实战》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:何勇,陈晓峰著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111481003
  • 页数:332 页
图书介绍:全书一共15章,分为三个部分:基础篇(第1~3章)首先介绍了Greenplum的应用场景、功能特性以及与PostgreSQL的关系,然后讲解了Greenplum的安装配置、语法以及相关操作,最后通过两个具体的数据仓库ETL案例加强读者对Greenplum的功能特性的了解和操作能力;进阶篇(第4~7章)围绕数据字典、执行计划、系统架构、高级特性等主题对Greenplum进行了更深入地讲解,不仅能让读者更深入理解Greenplum的工作原理,也能让读者游刃有余地应对各种日常操作;管理篇(8~15章)从运维和管理的角度讲解了Greenplum的线上部署、数据库管理、脚本维护、监控、权限控制、容灾/扩容、备份恢复、性能调优、常用技巧和常见问题等。

上篇 基础篇 2

第1章 Greenplum简介 2

1.1 Greenplum的起源和发展历程 2

1.2 OLTP与OLAP 3

1.3 PostgreSQL与Greenp lum的关系 3

1.3.1 PostgreSQL 3

1.3.2 Greenplum 5

1.4 Greenplum特性及应用场景 6

1.4.1 Greenplum特性 6

1.4.2 Greenplum应用场景 7

1.5 小结 8

第2章 Greenplum快速入门 9

2.1 软件安装及数据库初始化 9

2.1.1 Greenplum架构 9

2.1.2 环境搭建 11

2.1.3 Greenplum安装 13

2.1.4 创建数据库 20

2.1.5 数据库启动与关闭 20

2.2 安装Greenplum的常见问题 22

2.2.1 /etc/hosts配置错误 22

2.2.2 MASTER_DATA_DIRECTORY设置错误 24

2.3 畅游Greenplum 25

2.3.1 如何访问Greenplum 25

2.3.2 数据库整体概况 27

2.3.3 基本语法介绍 28

2.3.4 常用数据类型 35

2.3.5 常用函数 37

2.3.6 分析函数 43

2.3.7 分区表 46

2.3.8 外部表 49

2.3.9 COPY命令 51

2.4 小结 52

第3章 Greenplum实战 53

3.1 历史拉链表 53

3.1.1 应用场景描述 53

3.1.2 原理及步骤 54

3.1.3 表结构 55

3.1.4 Demo数据准备 57

3.1.5 数据加载 58

3.1.6 数据刷新 61

3.1.7 分区裁剪 64

3.1.8 数据导出 64

3.2 日志分析 65

3.2.1 应用场景描述 65

3.2.2 数据Demo 65

3.2.3 日志分析实战 66

3.3 数据分布 68

3.3.1 数据分散情况查看 69

3.3.2 数据加载速度影响 69

3.3.3 数据查询速度影响 72

3.4 数据压缩 73

3.4.1 数据加载速度影响 73

3.4.2 数据查询速度影响 74

3.5 索引 75

3.6 小结 75

中篇 进阶篇 78

第4章 数据字典详解 78

4.1 oid无处不在 78

4.2 数据库集群信息 80

4.2.1 Gp_configuration和gp_segment_configuration 80

4.2.2 Gp id 82

4.2.3 Gp_configuration_history 84

4.2.4 pg_filespace_entry 84

4.2.5 集群配置信息表转化 84

4.3 常用数据字典 85

4.3.1 pg_class 85

4.3.2 pg_attribute 88

4.3.3 gp_distribution_policy 89

4.3.4 pg_statistic和pg_stats 90

4.4 分区表信息 90

4.4.1 如何实现分区表 91

4.4.2 pg_partition 91

4.4.3 pg_partition_rule 92

4.4.4 pg_partitions视图及其优化 93

4.5 自定义类型以及类型转换 94

4.6 主、备节点同步的相关数据字典 95

4.7 数据字典应用示例 96

4.7.1 获取表的字段信息 96

4.7.2 获取表的分布键 96

4.7.3 获取一个视图的定义 97

4.7.4 查询comment(备注信息) 98

4.7.5 获取数据库建表语句 99

4.7.6 查询表上的视图 103

4.7.7 查询表的数据文件创建时间 104

4.7.8 分区表总大小 106

4.7.9 如何分析数据字典变化 108

4.7.10 获取数据库锁信息 111

4.8 Gp toolkit介绍 112

4.9 小结 114

第5章 执行计划详解 115

5.1 执行计划入门 115

5.1.1 什么是执行计划 115

5.1.2 查看执行计划 116

5.2 分布式执行计划概述 116

5.2.1 架构 116

5.2.2 重分布与广播 117

5.2.3 Greenplum Master的工作 119

5.3 Greenplum执行计划中的术语 120

5.3.1 数据扫描方式 120

5.3.2 分布式执行 121

5.3.3 两种聚合方式 122

5.3.4 关联 123

5.3.5 SQL消耗 126

5.3.6 其他术语 126

5.4 数据库统计信息收集 128

5.4.1 Analyze分析 128

5.4.2 固定执行计划 129

5.5 控制执行计划的参数介绍 130

5.6 规划器开销的计算方法 131

5.7 各种执行计划原理分析 133

5.7.1 详解关联的广播与重分布 133

5.7.2 HashAggregate与GroupAggregate 137

5.7.3 Nestloop Join、Hash Join与Merge Join 141

5.7.4 分析函数:开窗函数和grouping sets 142

5.8 案例 144

5.8.1 关联键强制类型转换,导致重分布 144

5.8.2 统计信息过期 145

5.8.3 执行计划出错 145

5.8.4 分布键选择不恰当 147

5.8.5 计算distinct 148

5.8.6 union与union all 150

5.8.7 子查询notin 152

5.8.8 聚合函数太多导致内存不足 154

5.9 小结 155

第6章 Greenplum高级应用 156

6.1 Appendonly表与压缩表 157

6.1.1 应用场景及语法介绍 157

6.1.2 压缩表的性能差异 157

6.1.3 Appendonly表特性 158

6.1.4 相关数据字典 164

6.2 列存储 165

6.2.1 应用场景 165

6.2.2 数据文件存储特性 166

6.2.3 如何使用列存储 166

6.2.4 性能比较 166

6.3 外部表高级应用 168

6.3.1 外部表实现原理 168

6.3.2 可写外部表 171

6.3.3 HDFS外部表 173

6.3.4 可执行外部表 177

6.4 自定义函数——各个编程接口 179

6.4.1 pl/pgsql 180

6.4.2 C语言接口 182

6.4.3 plpython 185

6.5 Greenplum MapReduce 187

6.6 小结 193

第7章 Greenplum架构介绍 195

7.1 并行和分布式计算 195

7.2 并行数据库 197

7.3 Greenplum架构分析 198

7.4 冗余与故障切换 199

7.5 数据分布及负载均衡 200

7.6 跨库关联 202

7.7 分布式事务 203

7.8 其他大数据分析方案 205

7.9 小结 208

下篇 管理篇 210

第8章 Greenplum线上环境部署 210

8.1 服务器硬件选型 210

8.1.1 CPU 211

8.1.2 内存 211

8.1.3 磁盘及硬盘接口 211

8.1.4 网络 213

8.2 服务器系统参数调整 213

8.2.1 Solaris参数修改 214

8.2.2 Linux参数修改 216

8.2.3 系统参数及性能验证 217

8.3 计算节点分配技巧 221

8.4 数据库参数介绍 221

8.5 数据库集群基准测试 225

8.6 小结 227

第9章 数据库管理 228

9.1 用户及权限管理 228

9.1.1 Greenplum数据库逻辑结构 228

9.1.2 Grant语法 229

9.2 登录权限控制 231

9.3 资源队列及并发控制 232

9.4 Greenplum锁机制 236

9.5 数据目录结构 238

9.6 数据文件存储分布 240

9.7 表空间管理 241

9.8 小结 244

第10章 数据库监控及调优 245

10.1 Linux监控工具介绍 245

10.1.1 监控磁盘 245

10.1.2 监控网络 246

10.1.3 监控CPU 247

10.1.4 监控内存 247

10.2 安装Performance Monitor 248

10.3 监控Segment是否正常 252

10.4 VACUUM系统表 253

10.5 数据倾斜排查 255

10.6 查看子节点的SQL运行状态 258

10.7 自动加分区 261

10.8 自动赋权 266

10.9 清理过期数据 266

10.10 小结 267

第11章 解读Greenplum维护脚本 268

11.1 添加Greenplum Contrib模块 268

11.2 启动和关闭脚本gpstart和gpstop 270

11.3 初始化系统脚本gpinitsystem 272

11.4 集群操作脚本gpssh和gpscp 274

11.5 数据库状态检查脚本gpstate 275

11.6 数据库升级脚本gpmigrate 276

11.7 参数修改脚本gpconfig 281

11.8 数据库一致性检查脚本gpcheckcat 282

11.9 小结 284

第12章 备份及恢复策略 286

12.1 Greenplum 3.x 286

12.2 Greenplum 4.x 287

12.3 gp_dump和pg_dump 290

12.4 Greenplum Master备份策略 294

12.4.1 增加Standby Master 295

12.4.2 重新同步Standby Master 296

12.4.3 启用Standby Master 296

12.5 小结 297

第13章 数据库扩容 299

13.1 迁移计算节点 299

13.1.1 两种备份方案 300

13.1.2 数据迁移实战 301

13.2 增加计算节点 306

13.3 小结 311

第14章 基于Greenplum的海量数据实时分析服务平台 312

14.1 需求概述 312

14.2 典型方案 313

14.2.1 NoSQL 313

14.2.2 分布式数据库/集群 314

14.2.3 分表分库 315

14.2.4 方案优劣分析 316

14.3 基于Greenplum的混合架构 316

14.3.1 架构分析 317

14.3.2 实施要点 317

14.4 小结 318

第15章 使用Greenplum的常见报错及小技巧 319

15.1 分析常见报错 319

15.1.1 找不到类型705对应的操作符 319

15.1.2 SQL占用的资源超过了资源队列限制 321

15.1.3 自定义函数不能在Segment上执行 321

15.1.4 子查询没有加别名 322

15.1.5 字段名有歧义 322

15.1.6 字段重名 323

15.1.7 gpfdist错误:无法读取文件 323

15.1.8 事务被中止 324

15.1.9 网络异常错误 324

15.1.10 无法删除表 324

15.1.11 内存不足 325

15.1.12 文件名在pg_class中已存在 325

15.1.13 不能对分布键执行Update 325

15.1.14 网络错误 326

15.1.15 无法找到数据文件 326

15.2 常见问题及解决办法 326

15.3 常用的一些小技巧 329

15.3.1 显示SQL执行的时间 330

15.3.2 获取某个schema下所有的表或视图 330

15.3.3 查找分区最多的表 330

15.3.4 连接Segment节点 331

15.3.5 psql默认密码登录 331

15.3.6 查看数据库启动时间 331

15.3.7 查看在psql中\d到底查询了哪些数据字典 331

15.4 小结 332