HAWQ数据仓库与数据挖掘实战 版权信息
- ISBN:9787302498025
- 条形码:9787302498025 ; 978-7-302-49802-5
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
HAWQ数据仓库与数据挖掘实战 本书特色
HAWQ安装、连接、对象与资源管理、查询优化、备份恢复、高可用性、运维监控
ETL处理、自动调度系统、维度表与事实表技术、OLAP与数据的图形化表示
降维、协同过滤、关联规则、回归、聚类、分类等常见数据挖掘与机器学习方法
HAWQ数据仓库与数据挖掘实战 内容简介
Apache HAWQ是一个SQL-on-Hadoop产品,它很好适合用于Hadoop平台上快速构建数据仓库系统。HAWQ具有大规模并行处理、完善的SQL兼容性、支持存储过程和事务、出色的性能表现等特性,还可与开源数据挖掘库MADlib轻松整合,从而使用SQL就能进行数据挖掘与机器学习。《HAWQ数据仓库与数据挖掘实战》内容分技术解析、实战演练与数据挖掘三个部分共27章。技术解析部分说明HAWQ的基础架构与功能特性,包括安装、连接、对象与资源管理、查询优化、备份恢复、高可用性等。实战演练部分用一个完整的示例,说明如何使用HAWQ取代传统数据仓库,包括ETL处理、自动调度系统、维度表与事实表技术、OLAP与数据的图形化表示等。数据挖掘部分用实例说明HAWQ与MADlib整合,实现降维、协同过滤、关联规则、回归、聚类、分类等常见数据挖掘与机器学习方法。《HAWQ数据仓库与数据挖掘实战》适合数据库管理员、大数据技术人员、Hadoop技术人员、数据仓库技术人员,也适合高等院校和培训机构相关专业的师生教学参考。
HAWQ数据仓库与数据挖掘实战 目录
目 录
**部分 HAWQ技术解析
第1章 HAWQ概述 3
1.1 SQL-on-Hadoop 3
1.1.1 对SQL-on-Hadoop的期待 3
1.1.2 SQL-on-Hadoop的实现方式 4
1.2 HAWQ简介 6
1.2.1 历史与现状 7
1.2.2 功能特性 7
1.3 HAWQ系统架构 9
1.3.1 系统架构 10
1.3.2 内部架构 11
1.4 为什么选择HAWQ 12
1.4.1 常用SQL-on-Hadoop产品的不足 12
1.4.2 HAWQ的可行性 13
1.4.3 适合DBA的解决方案 18
1.5 小结 18
第2章 HAWQ安装部署 19
2.1 安装规划 19
2.1.1 选择安装介质 19
2.1.2 选择HAWQ版本 20
2.1.3 确认Ambari与HDP的版本兼容性 20
2.2 安装前准备 21
2.2.1 确认*小系统需求 21
2.2.2 准备系统安装环境 22
2.2.3 建立本地Repository 24
2.3 安装Ambari 25
2.4 安装HDP集群 27
2.5 安装HAWQ 29
2.6 启动与停止HAWQ 34
2.6.1 基本概念 34
2.6.2 操作环境 34
2.6.3 基本操作 36
2.7 小结 40
第3章 连接管理 41
3.1 配置客户端身份认证 41
3.2 管理角色与权限 45
3.2.1 HAWQ中的角色与权限 45
3.2.2 管理角色及其成员 46
3.2.3 管理对象权限 48
3.2.4 口令加密 49
3.3 psql连接HAWQ 50
3.4 Kettle连接HAWQ 52
3.5 连接常见问题 55
3.6 小结 56
第4章 数据库对象管理 57
4.1 创建和管理数据库 57
4.2 创建和管理表空间 61
4.3 创建和管理模式 65
4.4 创建和管理表 72
4.4.1 创建表 72
4.4.2 删除表 74
4.4.3 查看表对应的HDFS文件 74
4.5 创建和管理视图 76
4.6 管理其他对象 77
4.7 小结 78
第5章 分区表 79
5.1 HAWQ中的分区表 79
5.2 确定分区策略 80
5.3 创建分区表 81
5.3.1 范围分区与列表分区 81
5.3.2 多级分区 86
5.3.3 对已存在的非分区表进行分区 86
5.4 分区消除 87
5.5 分区表维护 91
5.6 小结 98
第6章 存储管理 99
6.1 数据存储选项 99
6.2 数据分布策略 103
6.2.1 数据分布策略概述 103
6.2.2 选择数据分布策略 104
6.2.3 数据分布用法 108
6.3 从已有的表创建新表 111
6.4 小结 117
第7章 资源管理 118
7.1 HAWQ资源管理概述 118
7.1.1 全局资源管理 118
7.1.2 HAWQ资源队列 119
7.1.3 资源管理器配置原则 119
7.2 配置独立资源管理器 120
7.3 整合YARN 123
7.4 管理资源队列 129
7.5 查询资源管理器状态 134
7.6 小结 137
第8章 数据管理 138
8.1 基本数据操作 138
8.2 数据装载与卸载 141
8.2.1 gpfdist协议及其外部表 141
8.2.2 基于Web的外部表 148
8.2.3 使用外部表装载数据 151
8.2.4 外部表错误处理 151
8.2.5 使用hawq load装载数据 152
8.2.6 使用COPY复制数据 155
8.2.7 卸载数据 157
8.2.8 hawq register 159
8.2.9 格式化数据文件 159
8.3 数据库统计 163
8.3.1 系统统计 163
8.3.2 统计配置 166
8.4 PXF 168
8.4.1 安装配置PXF 168
8.4.2 PXF profile 168
8.4.3 访问HDFS文件 170
8.4.4 访问Hive数据 174
8.4.5 访问JSON数据 186
8.4.6 向HDFS中写入数据 190
8.5 小结 194
第9章 过程语言 195
9.1 HAWQ内建SQL语言 195
9.2 PL/pgSQL函数 197
9.3 给HAWQ内部函数起别名 198
9.4 表函数 198
9.5 参数个数可变的函数 201
9.6 多态类型 202
9.7 UDF管理 205
9.8 UDF实例——递归树形遍历 207
9.9 小结 214
第10章 查询优化 215
10.1 HAWQ的查询处理流程 215
10.2 GPORCA查询优化器 217
10.2.1 GPORCA的改进 218
10.2.2 启用GPORCA 224
10.2.3 使用GPORCA需要考虑的问题 225
10.2.4 GPORCA的限制 227
10.3 性能优化 228
10.4 查询剖析 232
10.5 小结 238
第11章 高可用性 239
11.1 备份与恢复 239
11.1.1 备份方法 239
11.1.2 备份与恢复示例 242
11.2 高可用性 247
11.2.1 HAWQ高可用简介 247
11.2.2 Master节点镜像 248
11.2.3 HAWQ文件空间与HDFS高可用 251
11.2.4 HAWQ容错服务 260
11.3 小结 262
第二部分 HAWQ实战演练
第12章 建立数据仓库示例模型 265
12.1 业务场景 265
12.2 数据仓库架构 267
12.3 实验环境 268
12.4 HAWQ相关配置 269
12.5 创建示例数据库 273
12.5.1 在hdp4上的MySQL中创建源库对象并生成测试数据 273
12.5.2 创建目标库对象 275
12.5.3 装载日期维度数据 283
12.6 小结 284
第13章 初始ETL 285
13.1 用Sqoop初始数据抽取 285
13.1.1 覆盖导入 286
13.1.2 增量导入 286
13.1.3 建立初始抽取脚本 287
13.2 向HAWQ初始装载数据 288
13.2.1 数据源映射 288
13.2.2 确定SCD处理方法 288
13.2.3 实现代理键 289
13.2.4 建立初始装载脚本 289
13.3 建立初始ETL脚本 291
13.4 小结 293
第14章 定期ETL 294
14.1 变化数据捕获 294
14.2 创建维度表版本视图 296
14.3 创建时间戳表 297
14.4 用Sqoop定期数据抽取 298
14.5 建立定期装载HAWQ函数 298
14.6 建立定期ETL脚本 303
14.7 测试 303
14.7.1 准备测试数据 303
14.7.2 执行定期ETL脚本 304
14.7.3 确认ETL过程正确执行 305
14.8 动态分区滚动 307
14.9 准实时数据抽取 309
14.10 小结 317
第15章 自动调度执行ETL作业 318
15.1 Oozie简介 318
15.2 建立工作流前的准备 320
15.3 用Oozie建立定期ETL工作流 324
15.4 Falcon简介 328
15.5 用Falcon process调度Oozie工作流 329
15.6 小结 332
第16章 维度表技术 333
16.1 增加列 333
16.2 维度子集 342
16.3 角色扮演维度 348
16.4 层次维度 354
16.4.1 固定深度的层次 355
16.4.2 多路径层次 357
16.4.3 参差不齐的层次 359
16.5 退化维度 361
16.6 杂项维度 366
16.7 维度合并 374
16.8 分段维度 380
16.9 小结 386
第17章 事实表技术 387
17.1 周期快照 388
17.2 累积快照 394
17.3 无事实的事实表 404
17.4 迟到的事实 409
17.5 累积度量 416
17.6 小结 422
第18章 联机分析处理 423
18.1 联机分析处理简介 423
18.1.1 概念 423
18.1.2 分类 424
18.1.3 性能 426
18.2 联机分析处理实例 427
18.2.1 销售订单 427
18.2.2 行列转置 433
18.3 交互查询与图形化显示 440
18.3.1 Zeppelin简介 440
18.3.2 使用Zeppelin执行HAWQ查询 441
18.4 小结 448
第三部分 HAWQ数据挖掘
第19章 整合HAWQ与MADlib 451
19.1 MADlib简介 452
19.2 安装与卸载MADlib 455
19.3 MADlib基础 458
19.3.1 向量 458
19.3.2 矩阵 469
19.4 小结 484
第20章 奇异值分解 485
20.1 奇异值分解简介 485
20.2 MADlib奇异值分解函数 486
20.3 奇异值分解实现推荐算法 489
20.4 小结 501
第21章 主成分分析 502
21.1 主成分分析简介 502
21.2 MADlib的PCA相关函数 504
21.3 PCA应用示例 509
21.4 小结 513
第22章 关联规则方法 514
22.1 关联规则简介 514
22.2 Apriori算法 517
22.2.1 Apriori算法基本思想 517
22.2.2 Apriori算法步骤 518
22.3 MADlib的Apriori算法函数 518
22.4 Apriori应用示例 519
22.5 小结 524
第23章 聚类方法 525
23.1 聚类方法简介 525
23.2 k-means方法 526
23.2.1 基本思想 527
23.2.2 原理与步骤 527
23.2.3 k-means算法 527
23.3 MADlib的k-means相关函数 529
23.4 k-means应用示例 532
23.5 小结 537
第24章 回归方法 538
24.1 回归方法简介 538
24.2 Logistic回归 539
24.3 MADlib的Logistic回归相关函数 539
24.4 Logistic回归示例 542
24.5 小结 546
第25章 分类方法 547
25.1 分类方法简介 547
25.2 决策树 549
25.2.1 决策树的基本概念 549
25.2.2 决策树的构建步骤 549
25.3 MADlib的决策树相关函数 551
25.4 决策树示例 555
25.5 小结 561
第26章 图算法 562
26.1 图算法简介 562
26.2 单源*短路径 565
26.3 MADlib的单源*短路径相关函数 566
26.4 单源*短路径示例 567
26.5 小结 569
第27章 模型验证 570
27.1 交叉验证简介 570
27.2 MADlib的交叉验证相关函数 573
27.3 交叉验证示例 575
27.4 小结 578
展开全部
HAWQ数据仓库与数据挖掘实战 节选
1.4 为什么选择HAWQ
前面已经介绍了几种常用SQL-on-Hadoop 的实现方式,也了解了HAWQ的功能特性与系
统架构。那么站在用户的角度,我们为什么要选择HAWQ?近年来我尝试过几种
SQL-on-Hadoop 产品,从*初的Hive,到Spark SQL,再到Impala,在这些产品上进行了一系
列ETL、CDC、多维数据仓库、OLAP 实验。从数据库的角度看,这些产品与传统的DBMS
相比,功能不够完善,性能差距很大,甚至很难找到一个相对完备的Hadoop 数据仓库解决方
案。这里就以个人的实践体验来简述这些产品的不足以及HAWQ的可行性。
1.4.1 常用SQL-on-Hadoop产品的不足
1. Hive
Hive 是一款老牌的Hadoop 数据仓库产品,能够部署在所有Hadoop 发行版本上。它在
MapReduce 计算框架上封装一个SQL 语义层,极大简化了MR 程序的开发。直到现在,Hive
依然以其稳定性赢得了大量用户。
Hive 的缺点也很明显——速度太慢。随着技术的不断进步,Hive 的执行引擎从MapReduce
发展出Hive on Spark、Hive on Tez等。特别是运行在Tez 框架上的Hive,其性能有了很大改
进。即便如此,Hive 的速度还是比较适合后台批处理应用场景,而不适合交互式即时查询和
联机分析。
第1章 HAWQ 概述
2. Spark SQL
Spark SQL是Hadoop 中另一个著名的SQL 引擎,正如名字所表示的,它以Spark 作为底
层计算框架,实际上是一个Scala 程序语言的子集。Spark 基本的数据结构是RDD,一个分布
于集群节点的只读数据集合。传统的MapReduce 框架强制在分布式编程中使用一种特定的线
性数据流处理方式。MapReduce 程序从磁盘读取输入数据,把数据分解成键/值对,经过混洗、
排序、归并等数据处理后产生输出,并将*终结果保存在磁盘。Map 阶段和Reduce 阶段的结
果均要写磁盘,这大大降低了系统性能。也是由于这个原因,MapReduce 大都被用于执行批
处理任务。
为了解决MapReduce 的性能问题,Spark使用RDD 共享内存结构。这种内存操作减少了
磁盘IO,大大提高了计算速度。开发Spark 的初衷是用于机器学习系统的培训算法,而不是
SQL 查询。Spark 宣称其应用的延迟可以比MapReduce 降低几个数量级,但是在我们的实际
使用中,20TB 的数据集合上用Spark SQL 查询要10 分钟左右出结果,这个速度纵然是比Hive
快了4 倍,但显然不能支撑交互查询和OLAP应用。Spark 还有一个问题,即需要占用大量内
存,当内存不足时,很容易出现OOM错误。
3. Impala
Impala 的*大优势在于执行速度。官方宣称大多数情况下它能在几秒或几分钟内返回查
询结果,而相同的Hive 查询通常需要几十分钟甚至几小时完成,因此Impala 适合对Hadoop
文件系统上的数据进行分析式查询。Impala 默认使用Parquet 文件格式,这种列式存储方式对
于典型数据仓库场景下的大查询是较为高效的。
Impala 的问题主要体现在功能上的欠缺。例如,不支持Date 数据类型,不支持XML 和
JSON 相关函数,不支持covar_pop、covar_samp、corr、percentile、 percentile_approx、
histogram_numeric、collect_set 等聚合函数,不支持rollup、cube、grouping set 等操作,不支
持数据抽样(Sampling),不支持ORC 文件格式,等等。其中,分组聚合、取中位数等是数
据分析中的常用操作,当前的Impala 存在如此多的局限,使它在可用性上大打折扣,实际使
用时要格外注意。
HAWQ数据仓库与数据挖掘实战 作者简介
王雪迎 ,王雪迎 ,毕业于中国地质大学计算机专业,高级工程师,从事数据库、数据仓库相关技术工作20年。先后供职于北京现代商业信息技术有限公司、北京在线九州信息技术服务有限公司、华北计算技术研究所、北京优贝在线网络科技有限公司,担任DBA、数据架构师等职位。著有图书《Hadoop数据仓库实践》。