Apache Kylin权威指南导读-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

Apache Kylin权威指南导读

简介:

前  言

“麒麟出没,必有祥瑞。”

——中国古谚语

“于我而言,与Apache Kylin团队一起合作使Kylin通过孵化成为顶级项目是非常激动人心的,诚然,Kylin在技术方面非常振奋人心,但同样令人兴奋的是Kylin代表了亚洲国家,特别是中国,在开源社区中越来越高的参与度。”

——Ted Dunning Apache孵化项目副总裁,MapR首席应用架构师

今天,随着移动互联网、物联网、AI等技术的快速兴起,数据成为了所有这些技术背后最重要,也是最有价值的“资产”。如何从数据中获得有价值的信息?这个问题驱动了相关技术的发展,从最初的基于文件的检索、分析程序,到数据仓库理念的诞生,再到基于数据库的商业智能分析。而现在,这一问题已经变成了如何从海量的超大规模数据中快速获取有价值的信息,新的时代、新的挑战、新的技术必然应运而生。

在数据分析领域,大部分的技术都诞生在国外,特别是美国,从最初的数据库,到以Hadoop为首的大数据技术,再到今天各种DL(Deep Learning)、AI,等等。但我国拥有着世界上独一无二的“大”数据,最多的人口、最多的移动设备、最活跃的应用市场、最复杂的网络环境等,应对这些挑战,我们需要有自己的核心技术,特别是在基础领域的突破和研发方面。今天,以Apache Kylin为首的各种来自中国的先进技术不断涌现,甚至在很多方面都大大超越了国外的其他技术,这一点也彰显了中国的技术实力。

自Hadoop选取大象伊始,上百个项目,以动物居之者为多,而其中唯有Apache Kylin(麒麟)来自中国,在众多项目中分外突出。在全球最大的开源基金会——Apache软件基金会(Apache Software Foundation,ASF)的160多个顶级项目中,Apache Kylin是唯一一个来自中国的顶级开源项目,与Apache Hadoop、Apache Spark、Apache Kafka、Apache Tomcat、Apache Struts、Apache Maven等顶级项目一起以The Apache Way构建了开源大数据领域的国际社区,并拓展了生态系统。

大数据与传统技术最大的区别就在于数据的体量对查询带来的巨大挑战。从最早使用大数据技术来做批量处理,到现在越来越多地需要大数据平台也能够如传统数据仓库技术一样支持交互式分析。随着数据量的不断膨胀,数据平民化的不断推进,低延迟、高并发地在Hadoop之上提供标准SQL查询的能力成为必须要攻破的技术难题。而Apache Kylin的诞生正是基于这个背景,并成功地完成了很多人认为不可能实现的突破。Apache Kylin最初诞生于eBay中国研发中心(坐落于上海浦东新区的德国中心),在2013年9月底,eBay中国研发中心的技术人员开始对此进行POC并组建团队,经过一年的艰苦开发和测试,于2014年9月30日使其正式上线,并在第二天(2014年10月1日)正式开源。

在这个过程中,使用何种技术,如何进行架构,如何突破那些看似无法完成的挑战,整个开发团队和用户一起经历了一段艰难的历程。今天呈现出的Apache Kylin已经经历了上千亿乃至上万亿规模数据量的分析请求,以及上百家公司的实际生产环境的检验,成为各个公司大数据分析平台不可替代的重要部分。本书将从Apache Kylin的架构和设计、各个模块的使用、与第三方的整合、二次开发及开源实践等方面进行讲解,为各位读者呈现最核心的设计理念和哲学、算法和技术等。

Apache Kylin社区的发展不易,自2014年10月开源到今天已有两年,从最初的几个人发展到今天的几十个贡献者,国内外上百家公司在正式使用,连续两年获得InfoWorld Bossie Awards最佳开源大数据工具奖。来自核心团队、贡献者、用户、导师、基金会等的帮助和无私的奉献铸就了这个活跃的社区,也使得Apache Kylin得以在越来越多的场景下发挥作用。现在,由Apache Kylin核心团队撰写了本书,相信能更好地将相关的理论、设计、技术、架构等展现给各位朋友,希望能够让更多的朋友更加充分地理解Kylin的优点和使用的场景,更多地挖掘出Kylin的潜力。同时也希望本书能够鼓励并吸引更多的人参与Kylin项目和开源项目,影响更多人贡献更多的项目和技术到开源世界来。


目  录

推荐序一

推荐序二

推荐序三

推荐序四

前 言

第1章 Apache Kylin概述  

1.1 背景和历史  

1.2 Apache Kylin的使命  

1.3 Apache Kylin的工作原理  

1.4 Apache Kylin的技术架构  

1.5 Apache Kylin的主要特点  

1.6 与其他开源产品比较  

1.7 小结  

第2章 快速入门  

2.1 核心概念  

2.2 在Hive中准备数据  

2.3 设计Cube  

2.4 构建Cube 

2.5 查询Cube  

2.6 SQL参考  

2.7 小结  

第3章 增量构建  

3.1 为什么要增量构建  

3.2 设计增量Cube  

3.3 触发增量构建  

3.4 管理Cube碎片

3.5 小结  

第4章 流式构建  

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: