●目 录部分 HAWQ技术解析章 HAWQ概述 31.1 SQL-on-Hadoop 31.1.1 对SQL-on-Hadoop的期待 31.1.2 SQL-on-Hadoop的实现方式 41.2 HAWQ简介 61.2.1 历史与现状 71.2.2 功能特性 71.3 HAWQ系统架构 91.3.1 系统架构 101.3.2 内部架构 111.4 为什么选择HAWQ 121.4.1 常用SQL-on-Hadoop产品的不足 121.4.2 HAWQ的可行性 131.4.3 适合DBA的解决方案 181.5 小结 18第2章 HAWQ安装部署 192.1 安装规划 192.1.1 选择安装介质 192.1.2 选择HAWQ版本 202.1.3 确认Ambari与HDP的版本兼容性 202.2 安装前准备 212.2.1 确认最小系统需求 212.2.2 准备系统安装环境 222.2.3 建立本地Repository 242.3 安装Ambari 252.4 安装HDP集群 272.5 安装HAWQ 292.6 启动与停止HAWQ 342.6.1 基本概念 342.6.2 操作环境 342.6.3 基本操作 362.7 小结 40第3章 连接管理 413.1 配置客户端身份认证 413.2 管理角色与权限 453.2.1 HAWQ中的角色与权限 453.2.2 管理角色及其成员 463.2.3 管理对象权限 483.2.4 口令加密 493.3 psql连接HAWQ 503.4 Kettle连接HAWQ 523.5 连接常见问题 553.6 小结 56第4章 数据库对象管理 574.1 创建和管理数据库 574.2 创建和管理表空间 614.3 创建和管理模式 654.4 创建和管理表 724.4.1 创建表 724.4.2 删除表 744.4.3 查看表对应的HDFS文件 744.5 创建和管理视图 764.6 管理其他对象 774.7 小结 78第5章 分区表 795.1 HAWQ中的分区表 795.2 确定分区策略 805.3 创建分区表 815.3.1 范围分区与列表分区 815.3.2 多级分区 865.3.3 对已存在的非分区表进行分区 865.4 分区消除 875.5 分区表维护 915.6 小结 98第6章 存储管理 996.1 数据存储选项 996.2 数据分布策略 1036.2.1 数据分布策略概述 1036.2.2 选择数据分布策略 1046.2.3 数据分布用法 1086.3 从已有的表创建新表 1116.4 小结 117第7章 资源管理 1187.1 HAWQ资源管理概述 1187.1.1 全局资源管理 1187.1.2 HAWQ资源队列 1197.1.3 资源管理器配置原则 1197.2 配置独立资源管理器 1207.3 整合YARN 1237.4 管理资源队列 1297.5 查询资源管理器状态 1347.6 小结 137第8章 数据管理 1388.1 基本数据操作 1388.2 数据装载与卸载 1418.2.1 gpfdist协议及其外部表 1418.2.2 基于Web的外部表 1488.2.3 使用外部表装载数据 1518.2.4 外部表错误处理 1518.2.5 使用hawq load装载数据 1528.2.6 使用COPY复制数据 1558.2.7 卸载数据 1578.2.8 hawq register 1598.2.9 格式化数据文件 1598.3 数据库统计 1638.3.1 系统统计 1638.3.2 统计配置 1668.4 PXF 1688.4.1 安装配置PXF 1688.4.2 PXF profile 1688.4.3 访问HDFS文件 1708.4.4 访问Hive数据 1748.4.5 访问JSON数据 1868.4.6 向HDFS中写入数据 1908.5 小结 194第9章 过程语言 1959.1 HAWQ内建SQL语言 1959.2 PL/pgSQL函数 1979.3 给HAWQ内部函数起别名 1989.4 表函数 1989.5 参数个数可变的函数 2019.6 多态类型 2029.7 UDF管理 2059.8 UDF实例——递归树形遍历 2079.9 小结 2140章 查询优化 21510.1 HAWQ的查询处理流程 21510.2 GPORCA查询优化器 21710.2.1 GPORCA的改进 21810.2.2 启用GPORCA 22410.2.3 使用GPORCA需要考虑的问题 22510.2.4 GPORCA的限制 22710.3 性能优化 22810.4 查询剖析 23210.5 小结 2381章 高可用性 23911.1 备份与恢复 23911.1.1 备份方法 23911.1.2 备份与恢复示例 24211.2 高可用性 24711.2.1 HAWQ高可用简介 24711.2.2 Master节点镜像 24811.2.3 HAWQ文件空间与HDFS高可用 25111.2.4 HAWQ容错服务 26011.3 小结 262第二部分 HAWQ实战演练2章 建立数据仓库示例模型 26512.1 业务场景 26512.2 数据仓库架构 26712.3 实验环境 26812.4 HAWQ相关配置 26912.5 创建示例数据库 27312.5.1 在hdp4上的MySQL中创建源库对象并生成测试数据 27312.5.2 创建目标库对象 27512.5.3 装载日期维度数据 28312.6 小结 2843章 初始ETL 28513.1 用Sqoop初始数据抽取 28513.1.1 覆盖导入 28613.1.2 增量导入 28613.1.3 建立初始抽取脚本 28713.2 向HAWQ初始装载数据 28813.2.1 数据源映射 28813.2.2 确定SCD处理方法 28813.2.3 实现代理键 28913.2.4 建立初始装载脚本 28913.3 建立初始ETL脚本 29113.4 小结 2934章 定期ETL 29414.1 变化数据捕获 29414.2 创建维度表版本视图 29614.3 创建时间戳表 29714.4 用Sqoop定期数据抽取 29814.5 建立定期装载HAWQ函数 29814.6 建立定期ETL脚本 30314.7 测试 30314.7.1 准备测试数据 30314.7.2 执行定期ETL脚本 30414.7.3 确认ETL过程正确执行 30514.8 动态分区滚动 30714.9 准实时数据抽取 30914.10 小结 3175章 自动调度执行ETL作业 31815.1 Oozie简介 31815.2 建立工作流前的准备 32015.3 用Oozie建立定期ETL工作流 32415.4 Falcon简介 32815.5 用Falcon process调度Oozie工作流 32915.6 小结 3326章 维度表技术 33316.1 增加列 33316.2 维度子集 34216.3 角色扮演维度 34816.4 层次维度 35416.4.1 固定深度的层次 35516.4.2 多路径层次 35716.4.3 参差不齐的层次 35916.5 退化维度 36116.6 杂项维度 36616.7 维度合并 37416.8 分段维度 38016.9 小结 3867章 事实表技术 38717.1 周期快照 38817.2 累积快照 39417.3 无事实的事实表 40417.4 迟到的事实 40917.5 累积度量 41617.6 小结 4228章 联机分析处理 42318.1 联机分析处理简介 42318.1.1 概念 42318.1.2 分类 42418.1.3 性能 42618.2 联机分析处理实例 42718.2.1 销售订单 42718.2.2 行列转置 43318.3 交互查询与图形化显示 44018.3.1 Zeppelin简介 44018.3.2 使用Zeppelin执行HAWQ查询 44118.4 小结 448第三部分 HAWQ数据挖掘9章 整合HAWQ与MADlib 45119.1 MADlib简介 45219.2 安装与卸载MADlib 45519.3 MADlib基础 45819.3.1 向量 45819.3.2 矩阵 46919.4 小结 484第20章 奇异值分解 48520.1 奇异值分解简介 48520.2 MADlib奇异值分解函数 48620.3 奇异值分解实现推荐算法 48920.4 小结 501第21章 主成分分析 50221.1 主成分分析简介 50221.2 MADlib的PCA相关函数 50421.3 PCA应用示例 50921.4 小结 513第22章 关联规则方法 51422.1 关联规则简介 51422.2 Apriori算法 51722.2.1 Apriori算法基本思想 51722.2.2 Apriori算法步骤 51822.3 MADlib的Apriori算法函数 51822.4 Apriori应用示例 51922.5 小结 524第23章 聚类方法 52523.1 聚类方法简介 52523.2 k-means方法 52623.2.1 基本思想 52723.2.2 原理与步骤 52723.2.3 k-means算法 52723.3 MADlib的k-means相关函数 52923.4 k-means应用示例 53223.5 小结 537第24章 回归方法 53824.1 回归方法简介 53824.2 Logistic回归 53924.3 MADlib的Logistic回归相关函数 53924.4 Logistic回归示例 54224.5 小结 546第25章 分类方法 54725.1 分类方法简介 54725.2 决策树 54925.2.1 决策树的基本概念 54925.2.2 决策树的构建步骤 54925.3 MADlib的决策树相关函数 55125.4 决策树示例 55525.5 小结 561第26章 图算法 56226.1 图算法简介 56226.2 单源最短路径 56526.3 MADlib的单源最短路径相关函数 56626.4 单源最短路径示例 56726.5 小结 569第27章 模型验证 57027.1 交叉验证简介 57027.2 MADlib的交叉验证相关函数 57327.3 交叉验证示例 57527.4 小结 578
内容简介
Apache HAWQ是一个SQL-on-Hadoop产品,它很好适合用于Hadoop平台上快速构建数据仓库系统。HAWQ具有大规模并行处理、完善的SQL兼容性、支持存储过程和事务、出色的性能表现等特性,还可与开源数据挖掘库MADlib轻松整合,从而使用SQL就能进行数据挖掘与机器学习。《HAWQ数据仓库与数据挖掘实战》内容分技术解析、实战演练与数据挖掘三个部分共27章。技术解析部分说明HAWQ的基础架构与功能特性,包括安装、连接、对象与资源管理、查询优化、备份恢复、高可用性等。实战演练部分用一个完整的示例,说明如何使用HAWQ取代传统数据仓库,包括ETL处理、自动调度系统、维度表与事实表技术、OLAP与数据的图形化表示等。数据挖掘部分用实例说明HAWQ与MADlib整合,实现降维、协同过滤、关联规则、回归、聚类、分类等常见数据挖掘与机器学习方法。 &nbs......
从Bill Inmon在1991年提出数据仓库的概念,至今已有27的时间。在这期间人们所面对的数据,以及处理数据的方法都发生了翻天覆地的变化。随着互联网和移动终端等应用的普及,运行在单机或小型集群上的传统数据仓库不再能满足数据处理要求,以Hadoop及其生态圈组件为代表的新一代分布式大数据处理平台逐渐流行。尽管大多数人都在讨论某种技术或者架构可能会胜过另一种,而我更倾向于从“Hadoop与数据仓库密切结合”这个角度来探讨问题。一方面企业级数据仓库中已经积累了大量的数据和应用程序,它们仍然在决策支持领域发挥着至关重要的作用;另一方面,传统数据仓库从业人员的技术水平和经验也在逐步提升。如何才能使积累的大量历史数据平滑过渡到Hadoop上,并让熟悉传统数据仓库的技术人员能够有效地利用已有的知识,可以在大数据处理平台上一展身手,才是一个亟待解决的问题。虽然伴随着大数据的概念也出现了以Mo......
评论晒单