具体描述
Apache Kylin是Hadoop大数据平台上的一个开源OLAP引擎,将大数据的查询速度和并发性能提升至原来的百倍以上,为超大规模数据集上的交互式大数据分析打开了大门。本书由Apache Kylin核心开发团队编写,系统地介绍了Apache Kylin安装、入门、可视化、模型调优、运维、二次开发等各个方面,是关于Apache Kylin的权威指南。
第1章和第2章是基本概念和快速入门,为初学者打下坚实基础。第3章和第4章介绍增量构建和进阶的流式构建,应对数据的持续增长。第5章展示丰富的查询接口和其上的可视化能力。第6章则重点讲解了Cube模型和调优,它们是用好Apache Kylin,提升百倍性能的关键。第7章通过一系列有行业特点的具体案例分析,贯穿之前的所有概念,温故知新。第8章介绍可扩展架构和二次开发接口,适合开发者。第9章则介绍企业级功能、用户的认证和授权相关知识。第10章着重于安装和企业级部署、运维管理等内容。第11章和第12章分别说明如何参与和贡献到开源,以及Apache Kylin的未来。
作者简介
本书由李扬为首的麒麟技术团队撰写。团队是Apache Kylin的主创团队。李扬是大数据架构师和工程师,专注大数据分析技术。他是Apache Kylin管理委员会成员,也是Kyligence Inc.(一家专业提供大数据商务智能服务的创业公司)创始人之一。李扬是Apache Kylin主创团队的架构师和技术负责人,在eBay期间从2014年开始开发Kylin项目。之前,李扬在IBM工作8年,在摩根士丹利工作2年。在IBM期间,他是“杰出技术贡献奖”的获奖者,曾担任InfoSphere BigInsights的技术负责人,负责Hadoop开源产品架构。在摩根士丹利期间,李扬担任副总裁,负责全球监管报表基础架构。
目录信息
推荐序一
推荐序二
推荐序三
推荐序四
前 言
第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 5
1.3.3 工作原理 6
1.4 Apache Kylin的技术架构 7
1.5 Apache Kylin的主要特点 9
1.5.1 标准SQL接口 9
1.5.2 支持超大数据集 9
1.5.3 亚秒级响应 10
1.5.4 可伸缩性和高吞吐率 10
1.5.5 BI及可视化工具集成 11
1.6 与其他开源产品比较 11
1.7 小结 12
第2章 快速入门 13
2.1 核心概念 13
2.1.1 数据仓库、OLAP与BI 13
2.1.2 维度和度量 14
2.1.3 事实表和维度表 14
2.1.4 Cube、Cuboid和Cube Segment 15
2.2 在Hive中准备数据 15
2.2.1 星形模型 15
2.2.2 维度表的设计 16
2.2.3 Hive表分区 16
2.2.4 了解维度的基数 17
2.2.5 Sample Data 17
2.3 设计Cube 17
2.3.1 导入Hive表定义 18
2.3.2 创建数据模型 18
2.3.3 创建Cube 21
2.4 构建Cube 25
2.4.1 全量构建和增量构建 27
2.4.2 历史数据刷新 28
2.4.3 合并 29
2.5 查询Cube 30
2.6 SQL参考 31
2.7 小结 32
第3章 增量构建 33
3.1 为什么要增量构建 33
3.2 设计增量Cube 35
3.2.1 设计增量Cube的前提 35
3.2.2 增量Cube的创建 36
3.3 触发增量构建 37
3.3.1 Web GUI触发 37
3.3.2 构建相关的Rest API 39
3.4 管理Cube碎片 45
3.4.1 合并Segment 46
3.4.2 自动合并 47
3.4.3 保留Segment 48
3.4.4 数据持续更新 49
3.5 小结 50
第4章 流式构建 51
4.1 为什么要流式构建 51
4.2 准备流式数据 52
4.2.1 数据格式 52
4.2.2 消息队列 53
4.2.3 创建Schema 53
4.3 设计流式Cube 56
4.3.1 创建Model 56
4.3.2 创建Cube 57
4.4 流式构建原理 59
4.5 触发流式构建 61
4.5.1 单次触发 61
4.5.2 自动化多次触发 61
4.5.3 出错处理 62
4.6 小结 63
第5章 查询和可视化 64
5.1 Web GUI 64
5.1.1 查询 64
5.1.2 显示结果 65
5.2 Rest API 67
5.2.1 查询认证 67
5.2.2 查询请求参数 67
5.2.3 查询返回结果 68
5.3 ODBC 69
5.4 JDBC 71
5.4.1 获得驱动包 71
5.4.2 认证 71
5.4.3 URL格式 71
5.4.4 获取元数据信息 72
5.5 通过Tableau访问Kylin 72
5.5.1 连接Kylin数据源 73
5.5.2 设计数据模型 73
5.5.3 通过Live方式连接 73
5.5.4 自定义SQL 75
5.5.5 可视化 75
5.5.6 发布到Tableau Server 76
5.6 Zeppelin集成 77
5.6.1 Zeppelin架构简介 77
5.6.2 KylinInterpreter的工作原理 77
5.6.3 如何使用Zeppelin访问Kylin 78
5.7 小结 80
第6章 Cube优化 81
6.1 Cuboid剪枝优化 81
6.1.1 维度的诅咒 81
6.1.2 检查Cuboid数量 82
6.1.3 检查Cube大小 83
6.1.4 空间与时间的平衡 84
6.2 剪枝优化的工具 85
6.2.1 使用衍生维度 85
6.2.2 使用聚合组 87
6.3 并发粒度优化 89
6.4 Rowkeys优化 90
6.4.1 编码 90
6.4.2 按维度分片 91
6.4.3 调整Rowkeys顺序 92
6.5 其他优化 93
6.5.1 降低度量精度 93
6.5.2 及时清理无用的Segment 94
6.6 小结 94
第7章 应用案例分析 95
7.1 基本多维分析 95
7.1.1 数据集 95
7.1.2 数据导入 97
7.1.3 创建数据模型 99
7.1.4 创建Cube 102
7.1.5 构建Cube 108
7.1.6 SQL查询 110
7.2 流式分析 112
7.2.1 Kafka数据源 112
7.2.2 创建数据表 113
7.2.3 创建数据模型 115
7.2.4 创建Cube 117
7.2.5 构建Cube 118
7.2.6 SQL查询 119
7.3 小结 119
第8章 扩展Apache Kylin 120
8.1 可扩展式架构 120
8.1.1 工作原理 121
8.1.2 三大主要接口 122
8.2 计算引擎扩展 124
8.2.1 EngineFactory 124
8.2.2 MRBatchCubingEngine2 125
8.2.3 BatchCubingJobBuilder2 126
8.2.4 IMRInput 128
8.2.5 IMROutput2 129
8.3 数据源扩展 130
8.4 存储扩展 132
8.5 聚合类型扩展 134
8.5.1 聚合的JSON定义 134
8.5.2 聚合类型工厂 135
8.5.3 聚合类型的实现 136
8.6 维度编码扩展 140
8.6.1 维度编码的JSON定义 140
8.6.2 维度编码工厂 141
8.6.3 维度编码的实现 142
8.7 小结 143
第9章 Apache Kylin的企业级功能 144
9.1 身份验证 144
9.1.1 自定义验证 145
9.1.2 LDAP验证 146
9.1.3 单点登录 150
9.2 授权 151
9.3 小结 153
第10章 运维管理 154
10.1 安装和配置 154
10.1.1 必备条件 154
10.1.2 快速启动Apache Kylin 157
10.1.3 配置Apache Kylin 160
10.1.4 企业部署 162
10.2 监控和诊断 165
10.2.1 日志 165
10.2.2 任务报警 167
10.2.3 诊断工具 169
10.3 日常维护 170
10.3.1 基本运维 170
10.3.2 元数据备份 170
10.3.3 元数据恢复 171
10.3.4 系统升级 172
10.3.5 垃圾清理 174
10.4 常见问题和修复 175
10.5 获得社区帮助 176
10.5.1 邮件列表 177
10.5.2 JIRA 177
10.6 小结 177
第11章 参与开源 178
11.1 Apache Kylin的开源历程 178
11.2 为什么参与开源 179
11.3 Apache开源社区简介 179
11.3.1 简介 179
11.3.2 组织构成与运作模式 180
11.3.3 项目角色 181
11.3.4 孵化项目及顶级项目 182
11.4 如何贡献到开源社区 183
11.4.1 什么是贡献 183
11.4.2 如何贡献 183
11.5 礼仪与文化 184
11.6 如何参与Apache Kylin 185
11.7 小结 185
第12章 Apache Kylin的未来 186
12.1 大规模流式构建 186
12.2 拥抱Spark技术栈 187
12.3 更快的存储和查询 187
12.4 前端展现及与BI工具的整合 187
12.5 高级OLAP函数 188
12.6 展望 188
· · · · · · (收起)
读后感
Apache Kylin从开源就备受重视,正是因为它填补了大数据Hadoop生态圈的一个技术空白-OLAP on Hadoop,满足了海量数据集上的快速数据分析需求,SQL接口也符合业界主流规范,因此很快被各互联网公司、金融、电信等行业采用。 第一次接触Kylin还是2015年的meetup上,被Kylin精准的...
Apache Kylin作为国内第一个Apache顶级大数据项目,它的出现既是意料之外,又是意料之中。意料之处是国内IT界一直缺少有份量的开源项目,更别说大数据方向。意料之中是随着中央政府大数据行动纲要的指引,和国内互联网企业大数据应用的标杆作用,国内IT界对大数据技术的相关研究...
Apache Kylin作为国内第一个Apache顶级大数据项目,它的出现既是意料之外,又是意料之中。意料之处是国内IT界一直缺少有份量的开源项目,更别说大数据方向。意料之中是随着中央政府大数据行动纲要的指引,和国内互联网企业大数据应用的标杆作用,国内IT界对大数据技术的相关研究...
Apache Kylin作为国内第一个Apache顶级大数据项目,它的出现既是意料之外,又是意料之中。意料之处是国内IT界一直缺少有份量的开源项目,更别说大数据方向。意料之中是随着中央政府大数据行动纲要的指引,和国内互联网企业大数据应用的标杆作用,国内IT界对大数据技术的相关研究...
Apache Kylin从开源就备受重视,正是因为它填补了大数据Hadoop生态圈的一个技术空白-OLAP on Hadoop,满足了海量数据集上的快速数据分析需求,SQL接口也符合业界主流规范,因此很快被各互联网公司、金融、电信等行业采用。 第一次接触Kylin还是2015年的meetup上,被Kylin精准的...
用户评价
这本书的排版和装帧简直让人爱不释手,那种沉甸甸的纸质感,配合上恰到好处的字体大小和行间距,阅读起来无比舒适。我本来以为这是一本枯燥的技术手册,没想到作者在文字的编排上下了如此大的功夫。每一次翻页,都能感受到那种对细节的执着。书中的插图和图表设计得非常精美,色彩搭配既专业又不失活力,即便是初次接触这类复杂概念的读者,也能迅速抓住重点。特别是那些流程图和架构示意图,逻辑清晰到令人赞叹,仿佛作者是手把手在教你搭建整个体系。而且,这本书的装订质量也十分可靠,即使经常翻阅,书脊依然保持着良好的状态,这对于我这种喜欢把书本摊开放在桌面上对照学习的人来说,简直太重要了。我甚至会因为它的外观设计,更愿意花时间去阅读它,这在技术书籍中是很少见的体验。它不仅仅是一本工具书,更像是一件工艺品,值得珍藏。
说实话,我之前对这领域了解得比较零散,网上搜集到的资料东拼西凑,总感觉像是在沙地上盖楼,地基不稳。这本书的结构设计简直是教科书级别的优秀。它从最基础的数据模型概念讲起,层层递进,逻辑链条衔接得天衣无缝,完全没有突兀感。作者似乎深知初学者会卡在哪里,总能在最恰当的时机抛出关键性的解释或者类比。我尤其欣赏它对“为什么”的追问,而不是仅仅停留在“是什么”。比如,它会详细解释为什么采用某种特定的数据存储方式,而不是另一种,这背后的考量和历史演进被阐述得非常透彻。这种由浅入深的引导,极大地增强了我的学习信心,原本觉得高不可攀的技术点,在作者的梳理下,变得清晰、可消化。这套知识体系的构建,让我对整个领域的认知框架都得到了重塑和巩固。
我最近在忙一个关于大数据架构优化的项目,手头上的资料五花八门,但真正能系统性梳理出全貌的却凤毛麟角。直到我开始接触这本书的讲解,那种豁然开朗的感觉无法用言语形容。它不像某些教材那样,只罗列概念,而是深入剖析了背后的设计哲学和权衡取舍。作者显然是深谙此道的实战派,他没有停留在理论层面,而是大量引用了实际案例中遇到的坑与解决方案,这些经验之谈比任何官方文档都来得实在。比如,在讨论到某个特定性能调优的场景时,书中提供的几种不同思路的对比分析,直接帮我避免了一个可能耗费数周的试错过程。这种“少走弯路”的价值,对于任何追求效率的工程师来说,都是无价的。阅读过程中,我经常需要停下来,思考书中提出的观点与我当前工作场景的契合度,这种深度的互动让我感觉这本书是活的,在不断地与我的实践进行对话。
这本书的语言风格极其沉稳、严谨,但又不失一种学者特有的幽默感。我发现自己并不是在“啃”技术书,而是在与一位经验丰富、知识渊博的导师进行一场深入的交流。作者的叙事节奏把握得很好,紧张和放松的交替,使得长时间阅读也不会产生强烈的疲劳感。他很善于运用比喻来解释复杂的分布式计算问题,那些精妙的比喻常常让人会心一笑,并且瞬间理解了原本晦涩难懂的原理。这种行文上的高水准,极大地提升了阅读体验。它不像有些技术文档那样冷冰冰的,而是充满了温度和人性化的关怀,让人感受到作者对读者学习过程的尊重。在处理那些需要高度集中注意力的章节时,这种平稳且富有节奏感的语言,起到了很好的辅助作用,确保了信息的有效接收。
对我个人而言,最大的收获在于它对于实践操作的指导性。很多书籍在理论阐述完毕后,就戛然而止,留给读者大量的猜测和试验。然而,这本书的每一章末尾,几乎都附带有详尽的“实战演练”或“配置优化清单”。这些清单不是简单的命令堆砌,而是基于真实生产环境的调优建议,细致到了每一个参数背后的影响。例如,在讲解部署流程时,它甚至考虑到了不同操作系统环境下的细微差异和潜在陷阱,并给出了具体的规避措施。这表明作者不仅仅是停留在代码层面,而是将整个生命周期都纳入了考量。这种高度的实操性和前瞻性,使得这本书成为了我工作台边不可或缺的参考手册,每当需要快速定位或验证某个功能时,我都能迅速从书中找到可靠的答案和验证路径,极大地提高了我的工作效率。
基本读完了,整体来说帮助还是很大的。会当工具书在细翻
非常值得一读,比看文档效率高好多,不过只覆盖到1.6版,2.x又有巨大加强。作为kylin入门,必读。
作为一本人门书还是不错的
作为一本人门书还是不错的
作为一本人门书还是不错的