目录
第01章 数据仓库基础 1
1.1 数据处理平台 1
1.2 数据库 2
1.3 关系型数据库 2
1.3.1 数据库三范式 3
1.3.2 数据库事务 6
1.3.3 数据库设计理念 7
1.4 数据仓库 7
1.4.1 无数据仓库的时代 7
1.4.2 数据仓库的发展 8
1.5 数据仓库设计理念 9
1.6 数据库与数据仓库的不同 10
1.7 本章总结 11
1.8 本章习题 11
第02章 Hive安装部署 12
2.1 Hive基本概念 12
2.1.1 Hive简介 12
2.1.2 Hive设计特性 13
2.1.3 Hive与传统数据库的对比 14
2.2 Hive安装部署 14
2.3 安装配置MySQL 16
2.4 配置启动Hive 22
2.5 Hive常用内部命令 26
2.6 Hive数据类型 27
2.6.1 Hive基本数据类型 28
2.6.2 Hive集合数据类型 30
2.7 本章总结 36
2.8 本章习题 36
第03章 Hive数据定义与操作 37
3.1 HiveQL数据定义语言 37
3.1.1 创建数据库 38
3.1.2 删除数据库 40
3.1.3 创建表 40
3.1.4 修改表 45
3.1.5 删除表 46
3.1.6 分区表 47
3.2 HiveQL数据操作 53
3.2.1 向管理表中装载数据 54
3.2.2 经查询语句向表中插入数据 54
3.2.3 单个查询语句中创建表并加载数据 55
3.2.4 导入数据 55
3.2.5 导出数据 56
3.3 本章总结 56
3.4 本章习题 57
第04章 HiveQL数据查询基础 58
4.1 HiveQL数据查询语句 58
4.1.1 SELECT语句 58
4.1.2 WHERE语句 59
4.1.3 GROUP BY语句 60
4.1.4 HAVING分组筛选 61
4.1.5 ORDER BY 语句和
SORT BY语句 62
4.2 HiveQL连接查询语句 64
4.3 本章总结 70
4.4 本章习题 70
第05章 HiveQL数据查询进阶 71
5.1 Hive内置函数 71
5.1.1 数学函数 72
5.1.2 字符函数 74
5.1.3 转换函数 76
5.1.4 日期函数 76
5.1.5 条件函数 77
5.1.6 聚合函数 77
5.2 Hive构建搜索引擎日志数据分析系统 79
5.2.1 数据预处理(Linux环境) 79
5.2.2 基于Hive构建日志数据的数据仓库 81
5.2.3 数据分析需求(1):条数统计 84
5.2.4 数据分析需求(2):关键词分析 84
5.2.5 数据分析需求(3):UID分析 85
5.2.6 数据分析需求(4):用户行为
分析 86
5.3 Sqoop应用与开发 88
5.3.1 Sqoop简介 89
5.3.2 Sqoop安装部署 89
5.3.3 Sqoop将Hive表中的数据导入MySQL 91
5.4 本章总结 96
5.5 本章习题 96
第06章 Hive数据库对象与
用户自定义函数 97
6.1 Hive视图 97
6.1.1 创建视图 98
6.1.2 查看视图 98
6.1.3 视图应用实战 99
6.1.4 删除视图 100
6.2 Hive分桶表 100
6.2.1 创建表 101
6.2.2 插入数据 101
6.3 Hive用户自定义函数 102
6.3.1 用户自定义函数简介 102
6.3.2 UDF应用开发 103
6.4 Hive用户自定义聚合函数 105
6.4.1 用户自定义聚合函数简介 105
6.4.2 UDAF应用开发 105
6.5 本章总结 108
6.6 本章习题 108
第07章 Azkaban任务调度器 109
7.1 Azkaban简介 109
7.1.1 Azkaban基本原理 110
7.1.2 Azkaban核心组件 111
7.2 Azkaban安装部署 112
7.2.1 准备工作 112
7.2.2 安装MySQL 112
7.2.3 配置MySQL 113
7.2.4 配置AzkabanWebServer 114
7.2.5 启动AzkabanWebServer
服务器 116
7.2.6 配置AzkabanExecutorServer 116
7.2.7 启动AzkabanExecutorServer
执行服务器 117
7.2.8 登录访问WebServer并创建
工作流调度项目 117
7.3 Hadoop作业的设置与书写 119
7.4 Hive作业的设置与书写 128
7.5 本章总结 130
7.6 本章习题 131
第08章 电商推荐系统开发实战 132
8.1 构建数据仓库 132
8.1.1 创建数据仓库 133
8.1.2 创建原始数据表 134
8.1.3 加载数据到数据仓库 136
8.1.4 验证数据结果 136
8.2 数据清洗 139
8.2.1 创建临时表 139
8.2.2 数据清洗详细步骤 140
8.2.3 验证清洗 143
8.3 推荐算法实现 144
8.3.1 Mahout安装部署 144
8.3.2 itembase协同过滤推荐算法 147
8.3.3 路径准备 148
8.3.4 运行推荐算法 150
8.3.5 查看推荐结果 151
8.4 数据ETL 152
8.4.1 获取数据 152
8.4.2 创建数据库和表 152
8.4.3 加载数据 153
8.4.4 验证ETL过程 153
8.5 本章总结 155
8.6 本章习题 156
第09章 汽车销售数据分析
系统实战开发 157
9.1 数据概况 157
9.2 项目实战 158
9.2.1 构建数据仓库 158
9.2.2 创建原始数据表 159
9.2.3 加载数据到数据仓库 161
9.2.4 验证数据结果 161
9.2.5 统计乘用车辆和商用车辆的
销售数量和销售数量占比 162
9.2.6 统计山西省2013年每个月的
汽车销售数量的比例 162
9.2.7 统计买车的男女比例及男女对车的
品牌的选择 163
9.2.8 统计车的所有权、车辆型号和
车辆类型 165
9.2.9 统计不同类型车在一个月(对应一段
时间,如每月或每年)的总销量 167
9.2.10 通过不同类型(品牌)车销售情况,
来统计发动机型号和燃料种类 168
9.2.11 统计五菱某一年每月的销售量 168
9.3 本章总结 169
9.4 本章习题 169
第 10章 新浪微博数据分析系统
实战开发 170
10.1 数据概况 170
10.1.1 数据参数 170
10.1.2 数据类型 171
10.2 项目实战 172
10.2.1 组织数据 172
10.2.2 统计需求 174
10.2.3 特殊需求 179
10.2.4 数据ETL 182
10.3 本章总结 184
10.4 本章习题 184