Apache Kylin是一个领先的大数据开源OLAP引擎,能够对数万亿条记录进行亚秒级延迟地查询。2014年由eBay创建并开源,2015年毕业于Apache软件基金会顶级项目。Kylin作为大数据的关键分析应用程序,目前已被全球数千家组织采用。Kylin主要具有以下优势:
- 高性能,万亿级数据下亚秒级查询时延
- 统一的大数据仓库架构
- 与BI工具无缝集成
- 全面的Enterprise-Ready就绪能力
Kylin5是目前Apache Kylin的最新版本,目前应该处于公测阶段,还不是stable版本。该版本相较于之前的版本有着革命性的变革。我对比了一下目前最新的Kylin5与企业版本的Kyligence,总结下来就是目前的Kylin5是Kyligence剥去了Intelligence之后的保留最原始Apache Kylin那部分功能的删减版。话不多说,接下来带各位初体验一把最新的Kylin5的新特性。
部署和启动
本人偷了个懒,直接就使用了docker去安装Kylin5,官方文档提供了多种安装方式,具可以参考官方提供的文档https://kylin.apache.org/5.0/docs/quickstart/deploy_kylin。docker部署kylin5的命令如下:
docker pull apachekylin/apache-kylin-standalone:5.0.0
这个镜像拉取的过程可能比较漫长,大小大概是4G左右,因此建议使用国内的docker镜像仓库进行拉取,速度可能会快点。下载完成之后,我们可以使用docker images
命令确认一些是否拉取完成。
>> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
neo4j 5-community f6f56e3bbddc 3 weeks ago 541MB
clickhouse/clickhouse-server latest 8fdcf86e6769 5 weeks ago 890MB
apachekylin/apache-kylin-standalone 5.0.0 71e8c2c79ceb 3 months ago 3.96GB
mysql 8.0.29 7e7e458be53c 6 months ago 444MB
镜像拉取完成之后能,我们就可以通过启动命令来启动一个Kylin5的容器了,启动命令如下:
docker run -d \
-m 8G \
-p 7070:7070 \
-p 8088:8088 \
-p 8032:8032 \
-p 8042:8042 \
-p 2181:2181 \
-p 10000:10000 \
apachekylin/apache-kylin-standalone:5.0.0
这个时候我们就发现,Kylin5我们起起来啦。
然后通过http://localhost:7070/kylin就可以访问Kylin的操作管理页面了。第一次进入的时候需要进行用户名和密码的登录,初始账密为ADMIN/KYLIN。
Login
登录进去之后我们看到的就是Kylin5的首页。
kylin5
Kylin5右侧提供的功能主要包括:
- Query:主要提供insight和history两种功能。通过insight可以方面查看每条sql的查询过程,查询结果,效率,以及是否命中索引,是否下压到hive等。history主要是展示当前Kylin对外提供的所有SQL查询的历史列表,包括sql内容,查询时间,是否命中索引等
- Data Assert:主要用于数据资产管理,包括新增数据源,目前开源版本只支持hive,企业版还支持Kafka,这个暂时不说。然后就是对数据表的一些元数据的管理,包括实际数据的采样等。还要就是管理Kylin的核心——模型。Kylin只有构建过模型和索引之后,才能实现对外提供压秒级的数据查询性能,否则会被下压至hive、impala等OLAP引擎进行即席查询。
- Monitor:主要用于监控模型和索引的构建,展示构建模型和索引的Job的状态、时间、存储占用等信息。
- Setting:对项目进行设置,包括基础设置,下压设置以及segments设置等。
添加数据源
在query和DataAssert中都可以去添加新的数据源,目前开源版本只支持hive,商业版本是除了支持hive导入还支持对接Kafka进行实时数据源的接入。
add source我们可以在界面上查看hive库这些表的基本元数据信息,也可以通过sample样本来查看若干条数据记录的真是情况。
Load Tables Data SourceQuery
Query提供了两个基本功能,insight和history,insight用于对某条sql的查询效果和结果进行分析。history展示了当前Kylin服务对外接受到的SQL查询历史。在企业版Kyligence中,针对每条查询历史,Kyligence会给出相应的模型优化建议,这个是目前开源版本里所没有的。
SQL Query history建模
当数据源接入之后,就可以针对当前接入的数据表进行建模。Kylin5摒弃了前面构建cube的概念,取而代之的是Kyligence中index的概念,也就说建模的最终目的就是为了构建索引。前面我们说过,在Kyligence的商业版本中,会根据SQL查询的历史给出索引构建的建议。建模的过程主要就是选择事实表和维度表,确定维度和指标信息,然后根据要求构建相应的索引,以达到预计算的目的。
add model modeling当事实表和维度表确定之后,根据索要建立的索引要求,Kylin后端就开始跑Job去构建索引,通过monitor我们可以查看这些后台任务的实时状态,对这些Job进行相应的调整。
build model monitor以上关于Kylin5进行了一个简单的介绍,个人感觉呢,Kylin5就是Kyligence拿掉了智能推荐那部分功能之后的删减版,因为Kyligence的企业版本可以根据用户的SQL查询历史给出模型和index的构建建议,从而省去了用户自主建模时对业务不清晰导致的模型不完善问题。好了以上就是关于Kylin5的简单介绍,个人感觉后期开源的Kylin会逐渐朝着商业版Kyligence的目前去发展,希望Kylin越来越好。
参考
网友评论