
本书系统介绍Hive数据仓库的相关知识和技术。全书共12章,主要内容包括Hive数据仓库基础、Hive环境搭建、Hive基础、Hive数据定义、Hive数据操作、HQL查询、Hive函数、Hive数据压缩、Hive优化、Hive综合案例和上机实验等。本书知识结构简单明了,案例生动具体,内容设计新颖。本书免费提供教学大纲、电子课件和所有案例源代码,书后附有部分习题参考答案。本书可作为普通高校数据科学与大数据相关专业的教材,也可作为想继续深入了解大数据存储和开发的读者的参考书,还可作为各类大数据相关培训的教材。
2015年,党的十八届五中全会首次提出“国家大数据战略”,国务院印发了《促进大数据发展行动纲要》;党的十九大明确提出,要推动互联网、大数据、人工智能和实体经济深度融合。我国大数据产业面临重要的发展机遇。2016年2月,北京大学、对外经济贸易大学和中南大学成为第一批申报并获批开设数据科学与大数据技术专业的高校。到2021年,全国共有近700所高校开设大数据相关专业。 我国高校的数据科学与大数据技术及相关专业急需开设Hive数据仓库方面的课程。但是,目前能够满足Hive数据仓库课程教学要求的教材非常缺乏。为此,我们根据这几年从事Hive数据仓库课程教学和大数据项目开发的经验体会,自己编写了讲义,在自编讲义的基础上编写了本书。本书力求具有以下特色: (1)求精求新——各章节的编写本着精练化、实用化的原则,尽量使用深入浅出的语言,讲解各种技术的基本原理及其在实际中的应用,同时力争把最新的Hive数据仓库技术纳入本书的内容范围。 (2)理论联系实际——每章都提供相应的应用案例,案例的选择具有典型性、实用性,案例的安排由浅入深、由易到难。案例教学使学生易理解、易掌握Hive数据仓库技术,并做到举一反三。 (3)教材结构完整——除具有基础理论和案例内容外,本书还提供较为全面的例题、习题、上机实验、部分习题答案等内容。此外,还提供配套的教学大纲、电子课件及源代码,方便教师教学和学生学习。 (4)广泛的适应性——适合不同层次的读者选用,本书可作为普通高等院校数据科学与大数据技术及相关专业的教学用书,也可作为大数据技术相关课程的培训用书。 本书系统介绍Hive数据仓库的相关知识和技术。全书共12章,主要内容包括Hive数据仓库基础、Hive环境搭建、Hive基础、Hive数据定义、Hive数据操作、HQL查询、Hive函数、Hive数据压缩、Hive优化、Hive综合案例和上机实验等。本书免费提供教学大纲、电子课件和所有案例源代码,读者可登录华信教育资源网www.hxedu.com.cn注册后下载。 本书参考教学学时数为40~80学时,其中理论教学20~40学时,上机实验20~40学时。教师可根据相关专业培养方案的要求,选取理论教学内容和上机实验内容进行教学。 本书由王剑辉和于涧编著。参加编写的人员还有逄华、邓甦、孟宪涛和蒋杏丽等。 在本书编写过程中,参考了许多著作和文献,在此对作者致以由衷的谢意。由于本书从策划选题到出版的用时较短,编者又都承担着繁重的教学和科研任务,在时间紧、任务重的情况下,书中难免有不当之处,敬请读者批评指正。欢迎发邮件至jwang116@hotmail.com或添加微信号(wasmann)反馈意见。
第1章 Hive数据仓库基础 1 1.1 数据仓库 1 1.1.1 数据仓库的概念 1 1.1.2 数据仓库的特点 3 1.1.3 数据仓库的数据模型 3 1.1.4 数据仓库的体系结构 4 1.2 Hive数据仓库 5 1.3 Hive体系结构及执行流程 6 1.3.1 Hive体系结构 6 1.3.2 Hive执行流程 8 1.4 Hive数据仓库和数据库比较 8 习题1 10 第2章 Hive环境搭建 12 2.1 Hive安装及配置 12 2.1.1 Hive的安装模式 12 2.1.2 Hive安装及配置过程 12 2.1.3 Hive基本操作 14 2.2 MySQL安装及配置 15 2.2.1 MySQL安装包准备 15 2.2.2 MySQL服务器端安装 15 2.2.3 MySQL客户端安装 16 2.3 Hive元数据配置 16 2.3.1 驱动复制 16 2.3.2 配置元数据到MySQL 16 2.3.3 多终端启动Hive 17 2.4 Hive JDBC连接 18 2.4.1 HiveServer2配置 18 2.4.2 HiveServer2启动 18 2.4.3 Beeline启动 18 2.4.4 HiveServer2连接 19 2.5 Hive常见属性配置 19 2.5.1 Hive位置配置 19 2.5.2 信息显示配置 19 2.5.3 运行日志信息配置 20 2.5.4 Hive参数配置方式 20 习题2 21 第3章 Hive基础 23 3.1 Hive数据类型 23 3.1.1 基本数据类型 23 3.1.2 复杂数据类型 24 3.1.3 数据类型转换 24 3.2 Hive运算符 25 3.2.1 算术运算符 25 3.2.2 比较运算符 25 3.2.3 逻辑运算符 26 3.2.4 复杂运算符 26 3.3 Hive数据存储 27 3.4 Hive表存储格式 27 3.4.1 行式存储和列式存储 28 3.4.2 TextFile格式 28 3.4.3 SequenceFile格式 28 3.4.4 ORC格式 29 3.4.5 Parquet格式 29 3.5 Hive常用交互命令 30 3.6 Hive其他操作命令 31 习题3 31 第4章 Hive数据定义 34 4.1 数据仓库的创建 34 4.2 数据仓库的查询 35 4.2.1 显示数据仓库 35 4.2.2 查看数据仓库详情 35 4.2.3 切换数据仓库 35 4.3 数据仓库的修改 35 4.4 数据仓库的删除 36 4.5 表的创建 36 4.5.1 内部表 37 4.5.2 外部表 40 4.5.3 内部表和外部表的转换 42 4.6 分区表 42 4.6.1 分区表基本操作 43 4.6.2 二级分区表创建 45 4.7 桶表 46 4.8 表的修改 48 4.8.1 重命名 48 4.8.2 增加和删除分区 48 4.8.3 修改、增加和替换列 49 4.9 表的删除 51 4.10 视图 52 习题4 57 第5章 Hive数据操作 60 5.1 数据导入 60 5.1.1 Load加载数据 60 5.1.2 Insert插入数据 61 5.1.3 As Select加载数据 63 5.1.4 Location加载数据 63 5.1.5 Import加载数据 64 5.2 数据导出 64 5.2.1 Insert语句导出 64 5.2.2 Hadoop命令导出 65 5.2.3 Hive Shell命令导出 65 5.2.4 Export语句导出 65 5.2.5 Sqoop导出 65 习题5 66 第6章 HQL查询 68 6.1 Select基本查询 68 6.1.1 全表和特定列查询 68 6.1.2 列的别名 69 6.1.3 Limit语句 69 6.2 Where语句 69 6.2.1 Like的使用 71 6.2.2 Rlike的使用 72 6.3 分组语句 74 6.3.1 Group By语句 74 6.3.2 Having语句 74 6.4 Join语句 75 6.4.1 等值连接 75 6.4.2 表的别名 76 6.4.3 内连接 76 6.4.4 左外连接 76 6.4.5 右外连接 76 6.4.6 满外连接 76 6.4.7 左半连接 77 6.4.8 多表连接 77 6.4.9 笛卡儿积Join 78 6.5 排序 79 6.5.1 Order By全局排序 79 6.5.2 字段别名排序 80 6.5.3 多字段排序 81 6.5.4 Sort By内部排序 81 6.5.5 Distribute By分区排序 83 6.5.6 Cluster By排序 83 6.6 抽样查询 84 6.6.1 桶表抽样查询 84 6.6.2 数据块抽样查询 85 6.6.3 随机抽样查询 87 习题6 87 第7章 Hive函数 89 7.1 Hive内置函数 89 7.1.1 数值计算函数 89 7.1.2 聚合函数 90 7.1.3 日期时间函数 91 7.1.4 条件函数 92 7.1.5 字符串处理函数 93 7.1.6 内置函数查看命令 96 7.2 其他常用函数 96 7.2.1 空字段赋值函数 96 7.2.2 列转行函数 97 7.2.3 窗口函数 100 7.2.4 排序函数 106 7.3 自定义函数 108 7.3.1 UDF函数 108 7.3.2 UDTF函数 110 7.3.3 UDAF函数 112 习题7 113 第8章 Hive数据压缩 116 8.1 数据压缩格式 116 8.2 Hadoop压缩配置 117 8.2.1 Snappy压缩方式配置 117 8.2.2 MapReduce支持的压缩编码 118 8.2.3 MapReduce压缩格式参数配置 118 8.3 Map输出压缩开启 119 8.4 Reduce输出压缩开启 119 8.5 常用Hive表存储格式比较 120 8.5.1 存储文件的压缩比测试 120 8.5.2 存储文件的查询速度测试 122 8.6 存储和压缩结合 123 习题8 125 第9章 Hive优化 127 9.1 Hive参数优化 127 9.1.1 本地模式 127 9.1.2 Fetch抓取 128 9.1.3 并行执行 128 9.1.4 严格模式 129 9.1.5 推测执行 130 9.1.6 JVM重用 131 9.2 数据倾斜 131 9.2.1 合理设置Map个数 131 9.2.2 合并小文件 132 9.2.3 复杂文件增加Map个数 132 9.2.4 合理设置Reduce个数 133 9.3 HQL优化 134 9.3.1 Group By优化 134 9.3.2 小表、大表Join 134 9.3.3 大表Join大表 136 9.3.4 MapJoin 137 9.3.5 Count优化 138 9.3.6 行/列过滤优化 139 9.3.7 动态分区调整优化 140 9.3.8 执行计划优化 141 习题9 142 第10章 综合案例1:广电大数据分析 144 10.1 案例需求分析 144 10.2 案例数据及建表 144 10.2.1 原始数据 144 10.2.2 数据表结构 144 10.2.3 创建表 145 10.2.4 向TextFile表导入数据 147 10.2.5 向ORC表导入数据 147 10.3 数据统计分析 147 10.3.1 基本信息查询 147 10.3.2 单个用户观看时长Top20 148 10.3.3 用户观看时长Top20 149 10.3.4 电视观看数Top20 150 10.3.5 电视观看时长Top20 150 10.3.6 用户正常状态及数量 151 第11章 综合案例2:影评大数据分析 152 11.1 案例需求分析 152 11.2 案例数据及建表 152 11.2.1 原始数据 152 11.2.2 创建表及导入数据 153 11.2.3 基本信息查询 153 11.3 数据统计分析 154 11.3.1 评分次数最多的10部电影 154 11.3.2 性别当中评分最高的10部电影 154 11.3.3 一部电影各年龄段的平均影评 156 11.3.4 评分最高的10部电影的平均影评分 156 11.3.5 好片最多年份的最好看电影Top10 157 11.3.6 评分最高的10部Comedy类电影 158 11.3.7 各种类型电影中评价最高的5部电影 159 第12章 上机实验 163 实验1 Hive安装部署 163 实验2 Hive数据定义 165 实验3 Hive数据操作 167 实验4 Hive分区表和桶表 171 实验5 Hive查询 174 实验6 Hive分组排序 177 实验7 Hive JDBC连接 179 实验8 Hive UDF 182 附录A Hive常用网址 185 附录B 常见错误及解决方案 186 附录C 部分习题答案 188 参考文献 191
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0418060