在近期的Apache Kylin Innovation Meetup 上,Kyligence的技术合伙人兼生态合做技术总监李栋,与你们分享了Kylin的最新数据源开发功能。从Apache Kylin v1.6版本开始,Apache Kylin增长了对Kafka数据源的支持,打开了流式OLAP分析的大门。同时,随着愈来愈多的企业用户指望把传统数仓、数据库的数据也接入Apache Kylin作分析,从Apache Kylin v2.1版本开始支持JDBC数据源,知足用户对SQL on Hadoop、RDBMS等数据源中的数据进行OLAP分析探索的需求。html
点击可播放完整视频
数据库
可是,JDBC数据源各不相同,想要深度实现某种数据源的对接,须要开发者投入大量精力对数据源作适配。所以Apache Kylin v2.6推出了Data Source SDK的功能,能够帮助开发者快速开发JDBC数据源的适配,实现新数据源的对接。apache
这套SDK是用于帮助开发者提升开发效率而生的,开发者能够使用这套Data Source SDK为某种数据源开发一个Adaptor,从而实现Apache Kylin从数据源中同步表、构建Cube、查询下压的需求。下图中黄色菱形块所示即为Data Source SDK提供的扩展接口。
架构
首先,拿元数据同步来说,标准的JDBC接口就实现了获取数据库、表、列的API。但不一样数据库的实现方式可能不一样,以及某些开发者不但愿把系统库、系统表暴露给分析师,这些需求均可以在Adaptor中实现。
框架
JDBC数据源构建的过程以下图所示,依赖sqoop在数据源中执行打平表的任务,而后把数据传送到Hadoop集群,而后经过一系列MapReduce或Spark任务执行后续构建任务。Adaptor在构建过程的主要做用是,将Apache Kylin产生的打平表SQL语句转化为数据源可支持的SQL方言。
函数
在查询下压也是相似。Apache Kylin支持将没法命中Cube的查询路由到数据源引擎中执行,而后把结果返回给用户。Adaptor在查询下压中的过程也是实现SQL方言转换,把用户输入的SQL语句从Apache Kylin的SQL方言转换为底层数据源引擎的SQL方言。
oop
以下图所示,Data Source SDK实际为一组函数接口的集合,开发者只需按照数据源的特性,开发响应接口的实现便可。
测试
默认的,Data Source SDK中自带了一个默认实现,基于这套默认实现,开发者仅经过添加一个XML格式的配置转换模板,便可完成某个数据源Adaptor的开发。
以下图所示,就是一个数据源的配置转换模板,模板中定义了对于特定SQL语法的配置、函数表达式和数据类型的表达方式。开发者只需按照这些配置项,根据数据源特性填写相应的配置,便可快速开发出一个新的数据源。若是有没有被该模板覆盖的需求,开发者依然能够重写接口函数,对默认实现进行扩展。
大数据
有了Data Source SDK的功能以后,Apache Kylin能够支持更加普遍的数据源,为企业进行大数据平台架构优化也带来了更多可能。
之前,报表等数据分析应用须要按场景对接多种底层技术,如多维分析对接Apache Kylin,灵活分析对接SQL on Hadoop;
如今,企业能够把Apache Kylin架构为统一的大数据OLAP平台,为BI应用提供统一的数据出口,简化系统架构和开发难度。
优化
如上图右侧所示,咱们使用Tableau报表作了测试:一样的报表在查询下压和访问Cube两种模式下执行,均能正常渲染,且无需修改报表内容,同时得到14倍的效率提高,能够有效帮助企业用户实现数据分析从传统技术向大数据平台的迁移。
本文仅对Data Source SDK的功能、框架作了简要介绍,若是您想了解更加深刻的技术细节,请参考如下连接:
kylin.apache.org/development…
kylin.apache.org/blog/2019/0…
联系咱们:
info@kyligence.io