推荐序
前 言
第1章 Apache Kylin概述1
1.1 背景和历史1
1.2 Apache Kylin的使命3
1.2.1 为什么要使用Apache Kylin3
1.2.2 Apache Kylin怎样解决关键问题4
1.3 Apache Kylin的工作原理5
1.3.1 维度和度量简介5
1.3.2 Cube和Cuboid6
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与BI14
2.1.2 维度建模15
2.1.3 事实表和维度表16
2.1.4 维度和度量16
2.1.5 Cube、Cuboid和Cube Segment16
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 Kylin19
2.3.1 环境准备19
2.3.2 必要组件19
2.3.3 启动Apache Kylin19
2.4 设计Cube 19
2.4.1 导入Hive表定义19
2.4.2 创建数据模型21
2.4.3 创建Cube23
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 及时清理无用Segment63
3.8 小结63
第4章 增量构建64
4.1 为什么要增量构建64
4.2 设计增量Cube66
4.2.1 设计增量Cube的条件66
4.2.2 增量Cube的创建67
4.3 触发增量构建69
4.3.1 Web GUI触发69
4.3.2 构建相关的REST API70
4.4 管理Cube碎片76
4.4.1 合并Segment76
4.4.2 自动合并77
4.4.3 保留Segment79
4.4.4 数据持续更新79
4.5 小结80
第5章 查询和可视化81
5.1 Web GUI81
5.1.1 查询81
5.1.2 显示结果82
5.2 REST API84
5.2.1 查询认证85
5.2.2 查询请求参数85
5.2.3 查询返回结果86
5.3 ODBC87
5.4 JDBC90
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 自定义SQL94
5.5.5 可视化展现94
5.5.6 发布到Tableau Server95
5.6 Zeppelin集成95
5.6.1 Zeppelin架构简介95
5.6.2 KylinInterpreter的工作原理96
5.6.3 如何使用Zeppelin访问Kylin96
5.7 Superset 集成98
5.7.1 下载Kylinpy98
5.7.2 安装Superset99
5.7.3 在Superset中添加Kylin Database100
5.7.4 在Superset中添加Kylin Table100
5.7.5 在Superset中创建图表103
5.7.6 在Superset中通过SQL Lab探索Kylin105
5.8 QlikView 集成106
5.8.1 连接Kylin数据源106
5.8.2 “Direct Query”连接107
5.8.3 创建可视化109
5.8.4 发布到QlikView Server110
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 Hub115
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 Planner128
6.1.1 为什么要引入Cube Planner128
6.1.2 Cube Planner 算法介绍129
6.1.3 使用Cube Planner131
6.2 System Cube134
6.2.1 开启System Cube134
6.2.2 构建和更新System Cube135
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 创建Schema141
7.3 设计流式Cube144
7.3.1 创建Model144
7.3.2 创建Cube145
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章 使用Spark155
8.1 为什么要引入Apache Spark155
8.2 Spark构建原理156
8.3 使用Spark构建Cube158
8.3.1 配置Spark引擎1