注重体验与质量的电子书资源下载网站
分类于: 人工智能 职场办公
简介
Apache Kylin权威指南(第2版) 豆 8.6分
资源最后更新于 2020-11-26 07:31:08
作者:Apache Kylin核心团队
出版社:机械工业出版社
出版日期:2019-01
ISBN:9787111633297
文件格式: pdf
标签: 大数据 好书,值得一读 科技 kylin MOLAP OLAP olap
简介· · · · · ·
本书由Apache Kylin核心开发团队编写,近两年Apache Kylin随着社区持续贡献的热度和在不同领域业务场景的深入实践应用,新的功能和特性不断涌现,这样就迫切需要更新内容来满足广大Apache Kylin 的使用者和关注人群的需要。本书从Apache Kylin的架构和设计,各个模块的使用,与第三方的整合,二次开发以及开源实践等各个方面进行讲解,为各位读者呈现*核心的设计理念和哲学、算法和技术等。
目录
推荐序
前 言
第1章 Apache Kylin概述 1
1.1 背景和历史 1
1.2 Apache Kylin的使命 3
1.2.1 为什么要使用Apache Kylin 3
1.2.2 Apache Kylin怎样解决关键问题 4
1.3 Apache Kylin的工作原理 5
1.3.1 维度和度量简介 5
1.3.2 Cube和Cuboid 6
1.3.3 工作原理 7
1.4 Apache Kylin的技术架构 7
1.5 Apache Kylin的主要特点 9
1.5.1 标准SQL接口 9
1.5.2 支持超大数据集 10
1.5.3 亚秒级响应 10
1.5.4 可伸缩性和高吞吐率 10
1.5.5 BI及可视化工具集成 11
1.6 与其他开源产品的比较 11
1.7 小结 13
第2章 快速入门 14
2.1 核心概念 14
2.1.1 数据仓库、OLAP与BI 14
2.1.2 维度建模 15
2.1.3 事实表和维度表 16
2.1.4 维度和度量 16
2.1.5 Cube、Cuboid和Cube Segment 16
2.2 在Hive中准备数据 17
2.2.1 多维数据模型 17
2.2.2 维度表的设计 17
2.2.3 Hive表分区 18
2.2.4 了解维度的基数 18
2.2.5 样例数据 18
2.3 安装和启动Apache Kylin 19
2.3.1 环境准备 19
2.3.2 必要组件 19
2.3.3 启动Apache Kylin 19
2.4 设计Cube 19
2.4.1 导入Hive表定义 19
2.4.2 创建数据模型 21
2.4.3 创建Cube 23
2.5 构建Cube 32
2.5.1 全量构建和增量构建 34
2.5.2 历史数据刷新 35
2.5.3 合并 36
2.6 查询Cube 38
2.6.1 Apache Kylin查询介绍 38
2.6.2 查询下压 40
2.7 SQL参考 41
2.8 小结 41
第3章 Cube优化 42
3.1 Cuboid剪枝优化 42
3.1.1 维度的组合 42
3.1.2 检查Cuboid数量 43
3.1.3 检查Cube大小 45
3.1.4 空间与时间的平衡 46
3.2 剪枝优化工具 47
3.2.1 使用衍生维度 47
3.2.2 聚合组 49
3.2.3 必需维度 51
3.2.4 层级维度 51
3.2.5 联合维度 52
3.3 并发粒度优化 54
3.4 Rowkey优化 55
3.4.1 调整Rowkey顺序 55
3.4.2 选择合适的维度编码 56
3.4.3 按维度分片 57
3.5 Top_N度量优化 58
3.6 Cube Planner优化 61
3.7 其他优化 62
3.7.1 降低度量精度 62
3.7.2 及时清理无用Segment 63
3.8 小结 63
第4章 增量构建 64
4.1 为什么要增量构建 64
4.2 设计增量Cube 66
4.2.1 设计增量Cube的条件 66
4.2.2 增量Cube的创建 67
4.3 触发增量构建 69
4.3.1 Web GUI触发 69
4.3.2 构建相关的REST API 70
4.4 管理Cube碎片 76
4.4.1 合并Segment 76
4.4.2 自动合并 77
4.4.3 保留Segment 79
4.4.4 数据持续更新 79
4.5 小结 80
第5章 查询和可视化 81
5.1 Web GUI 81
5.1.1 查询 81
5.1.2 显示结果 82
5.2 REST API 84
5.2.1 查询认证 85
5.2.2 查询请求参数 85
5.2.3 查询返回结果 86
5.3 ODBC 87
5.4 JDBC 90
5.4.1 获得驱动包 90
5.4.2 认证 90
5.4.3 URL格式 90
5.4.4 获取元数据信息 91
5.5 Tableau集成 91
5.5.1 连接Kylin数据源 92
5.5.2 设计数据模型 93
5.5.3 “Live”连接 93
5.5.4 自定义SQL 94
5.5.5 可视化展现 94
5.5.6 发布到Tableau Server 95
5.6 Zeppelin集成 95
5.6.1 Zeppelin架构简介 95
5.6.2 KylinInterpreter的工作原理 96
5.6.3 如何使用Zeppelin访问Kylin 96
5.7 Superset 集成 98
5.7.1 下载Kylinpy 98
5.7.2 安装Superset 99
5.7.3 在Superset中添加Kylin Database 100
5.7.4 在Superset中添加Kylin Table 100
5.7.5 在Superset中创建图表 103
5.7.6 在Superset中通过SQL Lab探索Kylin 105
5.8 QlikView 集成 106
5.8.1 连接Kylin数据源 106
5.8.2 “Direct Query”连接 107
5.8.3 创建可视化 109
5.8.4 发布到QlikView Server 110
5.9 Qlik Sense集成 110
5.9.1 连接Kylin数据源 110
5.9.2 “Direct Query”连接 112
5.9.3 创建可视化 114
5.9.4 发布到Qlik Sense Hub 115
5.9.5 在Qlik Sense Hub中连接Kylin数据源 117
5.10 Redash集成 118
5.10.1 连接Kylin数据源 118
5.10.2 新建查询 119
5.10.3 新建仪表盘 121
5.11 MicroStrategy 集成 122
5.11.1 创建数据库实例 123
5.11.2 导入逻辑表 124
5.11.3 创建属性、事实和度量 124
5.11.4 创建报告 124
5.11.5 MicroStrategy连接Kylin最佳实践 126
5.12 小结 127
第6章 Cube Planner及仪表盘 128
6.1 Cube Planner 128
6.1.1 为什么要引入Cube Planner 128
6.1.2 Cube Planner 算法介绍 129
6.1.3 使用Cube Planner 131
6.2 System Cube 134
6.2.1 开启System Cube 134
6.2.2 构建和更新System Cube 135
6.3 仪表盘 135
6.4 小结 137
第7章 流式构建 138
7.1 为什么要进行流式构建 139
7.2 准备流式数据 139
7.2.1 数据格式 139
7.2.2 消息队列 140
7.2.3 创建Schema 141
7.3 设计流式Cube 144
7.3.1 创建Model 144
7.3.2 创建Cube 145
7.4 流式构建原理 147
7.5 触发流式构建 150
7.5.1 单次触发构建 151
7.5.2 自动化多次触发 152
7.5.3 初始化构建起点 152
7.5.4 其他操作 153
7.5.5 出错处理 153
7.6 小结 154
第8章 使用Spark 155
8.1 为什么要引入Apache Spark 155
8.2 Spark构建原理 156
8.3 使用Spark构建Cube 158
8.3.1 配置Spark引擎 158
8.3.2 开启Spark动态资源分配 161
8.3.3 出错处理和问题排查 162
8.4 使用Spark SQL创建中间平表 164
8.5 小结 164
第9章 应用案例分析 166
9.1 小米集团 166
9.1.1 背景 166
9.1.2 利用Apache Kylin构建定制化OLAP解决方案 167
9.1.3 Kylin在小米的三类主要应用场景 168
9.2 美团点评 169
9.2.1 美团点评的数据场景特点 169
9.2.2 接入Apache Kylin的解决方案 170
9.2.3 Kylin的优势 170
9.3 携程 171
9.3.1 背景 171
9.3.2 选择Kylin的原因 171
9.3.3 Kylin在携程的应用情况 172
9.4 4399小游戏 173
9.4.1 背景 173
9.4.2 Kylin 部署架构 173
9.4.3 Apache Kylin 在4399的价值 174
9.5 国内某Top 3保险公司 174
9.5.1 背景 174
9.5.2 主要痛点 175
9.5.3 Kylin带来的改变 175
9.6 某全球顶级银行卡组织 176
9.6.1 背景 176
9.6.2 Kylin的价值体现 177
第10章 扩展Apache Kylin 178
10.1 可扩展式架构 178
10.1.1 可扩展架构工作原理 178
10.1.2 三大主要接口 180
10.2 计算引擎扩展 183
10.2.1 EngineFactory 183
10.2.2 MRBatchCubingEngine2 184
10.2.3 BatchCubingJobBuilder2 185
10.2.4 IMRInput 187
10.2.5 IMROutput2 189
10.2.6 计算引擎扩展小结 190
10.3 数据源扩展 190
10.3.1 Hive数据源 191
10.3.2 JDBC数据源 192
10.4 存储扩展 194
10.5 聚合类型扩展 196
10.5.1 聚合的JSON定义 196
10.5.2 聚合类型工厂 197
10.5.3 聚合类型的实现(Measure-Type) 198
10.5.4 聚合类型扩展小结 202
10.6 维度编码扩展 202
10.6.1 维度编码的JSON定义 202
10.6.2 维度编码工厂(Dimension-EncodingFactory) 203
10.6.3 维度编码实现(Dimension-Encoding) 204
10.6.4 维度编码扩展小结 205
10.7 小结 205
第11章 Apache Kylin的安全与认证 206
11.1 身份验证 206
11.1.1 自定义验证 207
11.1.2 LDAP验证 209
11.1.3 单点登录 213
11.2 授权 214
11.2.1 新的访问权限控制 214
11.2.2 统一的项目级别访问控制 214
11.2.3 管理数据访问权限 216
11.3 小结 217
第12章 运维管理 218
12.1 监控和诊断 218
12.1.1 日志文件 218
12.1.2 任务报警 220
12.1.3 诊断工具 221
12.2 日常维护 222
12.2.1 基本运维 223
12.2.2 元数据备份 223
12.2.3 元数据恢复 224
12.2.4 系统升级 224
12.2.5 迁移 227
12.2.6 垃圾清理 228
12.3 获得社区帮助 229
12.3.1 邮件列表 229
12.3.2 JIRA 230
12.4 小结 230
第13章 在云上使用Kylin 231
13.1 云计算世界 231
13.2 为何要在云上使用Kylin 232
13.3 在亚马逊AWS上使用Kylin 232
13.3.1 准备AWS服务资源 233
13.3.2 AWS账户信息 234
13.3.3 创建Amazon EMR集群 235
13.3.4 安装Apache Kylin 237
13.4 在微软Azure使用Kylin 239
13.4.1 准备Azure服务资源 240
13.4.2 准备Azure账户信息 241
13.4.3 创建HD Insight集群 241
13.4.4 安装Apache Kylin 246
13.5 在阿里云使用Kylin 247
13.5.1 准备阿里云服务资源 248
13.5.2 准备阿里云账户信息 249
13.5.3 创建E-MapReduce集群 250
13.5.4 安装Apache Kylin 252
13.6 认识Kyligence Cloud 255
13.7 小结 256
第14章 参与开源 257
14.1 Apache Kylin开源历程 257
14.2 为什么要参与开源 258
14.3 Apache开源社区简介 258
14.3.1 简介 258
14.3.2 组织构成与运作模式 259
14.3.3 项目角色 259
14.3.4 孵化项目及顶级项目 260
14.4 如何贡献到开源社区 262
14.4.1 什么是贡献 262
14.4.2 如何贡献 262
14.5 礼仪与文化 262
14.6 如何参与Apache Kylin 263
14.6.1 如何成为Apache Contributor 264
14.6.2 如何成为Apache Committer 264
14.7 小结 264
第15章 Kylin的未来 265
15.1 全面拥抱Spark技术 265
15.2 实时流分析 266
15.3 更快的存储和查询 266
15.4 前端展现及与BI工具的整合 266
15.5 高级OLAP函数 267
15.6 展望 267
附录A 使用VM本地部署Kylin 268
附录B Azure HDInsight边缘节点模板部署代码 274
附录C 集群部署Apache Kylin 277
附录D 使用MySQL作为元数据存储 279
附录E 配置Apache Kylin 281
附录F 多级配置重写 284
附录G 常见问题与解决方案 287
前 言
第1章 Apache Kylin概述 1
1.1 背景和历史 1
1.2 Apache Kylin的使命 3
1.2.1 为什么要使用Apache Kylin 3
1.2.2 Apache Kylin怎样解决关键问题 4
1.3 Apache Kylin的工作原理 5
1.3.1 维度和度量简介 5
1.3.2 Cube和Cuboid 6
1.3.3 工作原理 7
1.4 Apache Kylin的技术架构 7
1.5 Apache Kylin的主要特点 9
1.5.1 标准SQL接口 9
1.5.2 支持超大数据集 10
1.5.3 亚秒级响应 10
1.5.4 可伸缩性和高吞吐率 10
1.5.5 BI及可视化工具集成 11
1.6 与其他开源产品的比较 11
1.7 小结 13
第2章 快速入门 14
2.1 核心概念 14
2.1.1 数据仓库、OLAP与BI 14
2.1.2 维度建模 15
2.1.3 事实表和维度表 16
2.1.4 维度和度量 16
2.1.5 Cube、Cuboid和Cube Segment 16
2.2 在Hive中准备数据 17
2.2.1 多维数据模型 17
2.2.2 维度表的设计 17
2.2.3 Hive表分区 18
2.2.4 了解维度的基数 18
2.2.5 样例数据 18
2.3 安装和启动Apache Kylin 19
2.3.1 环境准备 19
2.3.2 必要组件 19
2.3.3 启动Apache Kylin 19
2.4 设计Cube 19
2.4.1 导入Hive表定义 19
2.4.2 创建数据模型 21
2.4.3 创建Cube 23
2.5 构建Cube 32
2.5.1 全量构建和增量构建 34
2.5.2 历史数据刷新 35
2.5.3 合并 36
2.6 查询Cube 38
2.6.1 Apache Kylin查询介绍 38
2.6.2 查询下压 40
2.7 SQL参考 41
2.8 小结 41
第3章 Cube优化 42
3.1 Cuboid剪枝优化 42
3.1.1 维度的组合 42
3.1.2 检查Cuboid数量 43
3.1.3 检查Cube大小 45
3.1.4 空间与时间的平衡 46
3.2 剪枝优化工具 47
3.2.1 使用衍生维度 47
3.2.2 聚合组 49
3.2.3 必需维度 51
3.2.4 层级维度 51
3.2.5 联合维度 52
3.3 并发粒度优化 54
3.4 Rowkey优化 55
3.4.1 调整Rowkey顺序 55
3.4.2 选择合适的维度编码 56
3.4.3 按维度分片 57
3.5 Top_N度量优化 58
3.6 Cube Planner优化 61
3.7 其他优化 62
3.7.1 降低度量精度 62
3.7.2 及时清理无用Segment 63
3.8 小结 63
第4章 增量构建 64
4.1 为什么要增量构建 64
4.2 设计增量Cube 66
4.2.1 设计增量Cube的条件 66
4.2.2 增量Cube的创建 67
4.3 触发增量构建 69
4.3.1 Web GUI触发 69
4.3.2 构建相关的REST API 70
4.4 管理Cube碎片 76
4.4.1 合并Segment 76
4.4.2 自动合并 77
4.4.3 保留Segment 79
4.4.4 数据持续更新 79
4.5 小结 80
第5章 查询和可视化 81
5.1 Web GUI 81
5.1.1 查询 81
5.1.2 显示结果 82
5.2 REST API 84
5.2.1 查询认证 85
5.2.2 查询请求参数 85
5.2.3 查询返回结果 86
5.3 ODBC 87
5.4 JDBC 90
5.4.1 获得驱动包 90
5.4.2 认证 90
5.4.3 URL格式 90
5.4.4 获取元数据信息 91
5.5 Tableau集成 91
5.5.1 连接Kylin数据源 92
5.5.2 设计数据模型 93
5.5.3 “Live”连接 93
5.5.4 自定义SQL 94
5.5.5 可视化展现 94
5.5.6 发布到Tableau Server 95
5.6 Zeppelin集成 95
5.6.1 Zeppelin架构简介 95
5.6.2 KylinInterpreter的工作原理 96
5.6.3 如何使用Zeppelin访问Kylin 96
5.7 Superset 集成 98
5.7.1 下载Kylinpy 98
5.7.2 安装Superset 99
5.7.3 在Superset中添加Kylin Database 100
5.7.4 在Superset中添加Kylin Table 100
5.7.5 在Superset中创建图表 103
5.7.6 在Superset中通过SQL Lab探索Kylin 105
5.8 QlikView 集成 106
5.8.1 连接Kylin数据源 106
5.8.2 “Direct Query”连接 107
5.8.3 创建可视化 109
5.8.4 发布到QlikView Server 110
5.9 Qlik Sense集成 110
5.9.1 连接Kylin数据源 110
5.9.2 “Direct Query”连接 112
5.9.3 创建可视化 114
5.9.4 发布到Qlik Sense Hub 115
5.9.5 在Qlik Sense Hub中连接Kylin数据源 117
5.10 Redash集成 118
5.10.1 连接Kylin数据源 118
5.10.2 新建查询 119
5.10.3 新建仪表盘 121
5.11 MicroStrategy 集成 122
5.11.1 创建数据库实例 123
5.11.2 导入逻辑表 124
5.11.3 创建属性、事实和度量 124
5.11.4 创建报告 124
5.11.5 MicroStrategy连接Kylin最佳实践 126
5.12 小结 127
第6章 Cube Planner及仪表盘 128
6.1 Cube Planner 128
6.1.1 为什么要引入Cube Planner 128
6.1.2 Cube Planner 算法介绍 129
6.1.3 使用Cube Planner 131
6.2 System Cube 134
6.2.1 开启System Cube 134
6.2.2 构建和更新System Cube 135
6.3 仪表盘 135
6.4 小结 137
第7章 流式构建 138
7.1 为什么要进行流式构建 139
7.2 准备流式数据 139
7.2.1 数据格式 139
7.2.2 消息队列 140
7.2.3 创建Schema 141
7.3 设计流式Cube 144
7.3.1 创建Model 144
7.3.2 创建Cube 145
7.4 流式构建原理 147
7.5 触发流式构建 150
7.5.1 单次触发构建 151
7.5.2 自动化多次触发 152
7.5.3 初始化构建起点 152
7.5.4 其他操作 153
7.5.5 出错处理 153
7.6 小结 154
第8章 使用Spark 155
8.1 为什么要引入Apache Spark 155
8.2 Spark构建原理 156
8.3 使用Spark构建Cube 158
8.3.1 配置Spark引擎 158
8.3.2 开启Spark动态资源分配 161
8.3.3 出错处理和问题排查 162
8.4 使用Spark SQL创建中间平表 164
8.5 小结 164
第9章 应用案例分析 166
9.1 小米集团 166
9.1.1 背景 166
9.1.2 利用Apache Kylin构建定制化OLAP解决方案 167
9.1.3 Kylin在小米的三类主要应用场景 168
9.2 美团点评 169
9.2.1 美团点评的数据场景特点 169
9.2.2 接入Apache Kylin的解决方案 170
9.2.3 Kylin的优势 170
9.3 携程 171
9.3.1 背景 171
9.3.2 选择Kylin的原因 171
9.3.3 Kylin在携程的应用情况 172
9.4 4399小游戏 173
9.4.1 背景 173
9.4.2 Kylin 部署架构 173
9.4.3 Apache Kylin 在4399的价值 174
9.5 国内某Top 3保险公司 174
9.5.1 背景 174
9.5.2 主要痛点 175
9.5.3 Kylin带来的改变 175
9.6 某全球顶级银行卡组织 176
9.6.1 背景 176
9.6.2 Kylin的价值体现 177
第10章 扩展Apache Kylin 178
10.1 可扩展式架构 178
10.1.1 可扩展架构工作原理 178
10.1.2 三大主要接口 180
10.2 计算引擎扩展 183
10.2.1 EngineFactory 183
10.2.2 MRBatchCubingEngine2 184
10.2.3 BatchCubingJobBuilder2 185
10.2.4 IMRInput 187
10.2.5 IMROutput2 189
10.2.6 计算引擎扩展小结 190
10.3 数据源扩展 190
10.3.1 Hive数据源 191
10.3.2 JDBC数据源 192
10.4 存储扩展 194
10.5 聚合类型扩展 196
10.5.1 聚合的JSON定义 196
10.5.2 聚合类型工厂 197
10.5.3 聚合类型的实现(Measure-Type) 198
10.5.4 聚合类型扩展小结 202
10.6 维度编码扩展 202
10.6.1 维度编码的JSON定义 202
10.6.2 维度编码工厂(Dimension-EncodingFactory) 203
10.6.3 维度编码实现(Dimension-Encoding) 204
10.6.4 维度编码扩展小结 205
10.7 小结 205
第11章 Apache Kylin的安全与认证 206
11.1 身份验证 206
11.1.1 自定义验证 207
11.1.2 LDAP验证 209
11.1.3 单点登录 213
11.2 授权 214
11.2.1 新的访问权限控制 214
11.2.2 统一的项目级别访问控制 214
11.2.3 管理数据访问权限 216
11.3 小结 217
第12章 运维管理 218
12.1 监控和诊断 218
12.1.1 日志文件 218
12.1.2 任务报警 220
12.1.3 诊断工具 221
12.2 日常维护 222
12.2.1 基本运维 223
12.2.2 元数据备份 223
12.2.3 元数据恢复 224
12.2.4 系统升级 224
12.2.5 迁移 227
12.2.6 垃圾清理 228
12.3 获得社区帮助 229
12.3.1 邮件列表 229
12.3.2 JIRA 230
12.4 小结 230
第13章 在云上使用Kylin 231
13.1 云计算世界 231
13.2 为何要在云上使用Kylin 232
13.3 在亚马逊AWS上使用Kylin 232
13.3.1 准备AWS服务资源 233
13.3.2 AWS账户信息 234
13.3.3 创建Amazon EMR集群 235
13.3.4 安装Apache Kylin 237
13.4 在微软Azure使用Kylin 239
13.4.1 准备Azure服务资源 240
13.4.2 准备Azure账户信息 241
13.4.3 创建HD Insight集群 241
13.4.4 安装Apache Kylin 246
13.5 在阿里云使用Kylin 247
13.5.1 准备阿里云服务资源 248
13.5.2 准备阿里云账户信息 249
13.5.3 创建E-MapReduce集群 250
13.5.4 安装Apache Kylin 252
13.6 认识Kyligence Cloud 255
13.7 小结 256
第14章 参与开源 257
14.1 Apache Kylin开源历程 257
14.2 为什么要参与开源 258
14.3 Apache开源社区简介 258
14.3.1 简介 258
14.3.2 组织构成与运作模式 259
14.3.3 项目角色 259
14.3.4 孵化项目及顶级项目 260
14.4 如何贡献到开源社区 262
14.4.1 什么是贡献 262
14.4.2 如何贡献 262
14.5 礼仪与文化 262
14.6 如何参与Apache Kylin 263
14.6.1 如何成为Apache Contributor 264
14.6.2 如何成为Apache Committer 264
14.7 小结 264
第15章 Kylin的未来 265
15.1 全面拥抱Spark技术 265
15.2 实时流分析 266
15.3 更快的存储和查询 266
15.4 前端展现及与BI工具的整合 266
15.5 高级OLAP函数 267
15.6 展望 267
附录A 使用VM本地部署Kylin 268
附录B Azure HDInsight边缘节点模板部署代码 274
附录C 集群部署Apache Kylin 277
附录D 使用MySQL作为元数据存储 279
附录E 配置Apache Kylin 281
附录F 多级配置重写 284
附录G 常见问题与解决方案 287