Apache Kylin简介

Apache Kylin

概述

kylin是一个多维度分析处理(MOLAP)系统,用java语言编写。它能提供交互式SQL秒级内巨大的Hive表分析查询。

简单的来说Kylin的核心思想就是预计算,即对多维分析可能用到的度量进行预计算,将计算好的结果封装成Cube,存于hbase中,供查询时直接访问。把高复杂度的聚合运算、多表连接等操作转换成对预计算结果的查询,这决定了Kylin能够拥有很好的快速查询和高并发能力。

之后Kylin就可以将标准的SQL查询,转换成对HBase的Scan,快速查到结果返回给请求方。

理论基础是:以空间换时间,需要大量的存储空间(原数据量的10+倍),因此压缩在Kylin的使用过程中尤为重要。

 

环境

一、软件要求

  • Hadoop: 2.7+
  • Hive: 0.13 - 1.2.1+
  • HBase: 1.1+
  • Spark (可选) 2.1.1+
  • Kafka (可选) 0.10.0+
  • JDK: 1.7+
  • OS: Linux only, CentOS 6.5+ or Ubuntu 16.0.4+

在 Hortonworks HDP 2.2 - 2.6, Cloudera CDH 5.7 - 5.11, AWS EMR 5.7 - 5.10, Azure HDInsight 3.5 - 3.6 上测试通过

 

二、硬件要求

运行 Kylin 的服务器的最低的配置为 4 core CPU, 16 GB memory 和 100 GB disk。 对于高负载的场景,建议使用 24 core CPU, 64 GB memory 或更高的配置

部署

一、下载

wget http://www-us.apache.org/dist/kylin/apache-kylin-2.3.1/apache-kylin-2.3.1-hbase1x-bin.tar.gz

 

二、解压并配置环境变量

tar -zxvf apache-kylin-2.3.1-hbase1x-bin.tar.gz

cd apache-kylin-2.3.1-bin

export KYLIN_HOME=`pwd`

 

三、检查

确保用户有权限在 shell 中运行 hadoop, hive 和 hbase cmd

$KYLIN_HOME/bin/check-env.sh

 

四、启动

1. 通过kylin.sh start 启动kylin,运行时日志$KYLIN_HOME/logs/kylin.log;

$KYLIN_HOME/bin/kylin.sh start

2. Kylin 启动后可以通过浏览器 http://hostname:7070/kylin 查看。初始用户名和密码是 ADMIN/KYLIN;

3. 运行 $KYLIN_HOME/bin/kylin.sh stop 脚本,停止 Kylin。

4. 运行官方样例sample.sh来创建一个cube (注意:用户必须有hdfs的权限)

       

样例运行成功界面;根据提示可以重启kylin或者重新加载元数据来看到创建的cube;登陆到kylin的web界面(启动成功时有地址提示);用户名/密码:ADMIN/KYLIN;登陆后进行重新加载元数据的操作:

完成后可以在web界面中build这个cube来触发它:

需要输入一个分区的截至时间,这个字段是sales表中的日期字段,官方样例的表中这个字段的范围是(2012-01-01~2014-01-01)选择之后submit即可;

可以看到cube在构建过程的这个job任务的每一步的详细执行动作:

至此,kylin就可以正常使用了。

 

Kylin Cube构建详解

  • 创建项目

 

  • 同步hive表

  • 创建Model

 

1. 填写Model的基本信息:名字,描述

2.1 选择一张事实表(就是要分析的表)

2.2.1 选择维度表(比如时间维度表,地区维度表)

2.2.2 选择与主表的关联方式以及关联条件

3. 选择维度(如年月日维度,国家维度)

4. 选择计算的指标(如价格)

5.1 选择分区字段(暂时只支持日期字段)

5.2 选择过滤方式,过滤掉脏数据

这个过程就是将分析表与维度表关联成一张宽表,并做一些基本的过滤

 

  • 创建Cube

1.1  选择基于哪一个Model来构建Cube

1.2  Cube名字

1.3  Cube执行后邮件通知设置

2. 选择维度(这个字段就是group by的字段)

3. 选择对指标的计算方式(sum,avg等聚合函数)

4.1 自动合并的阈值

4.2 保留cube的阈值(单位是天,设置为0永久保存)

4.3 分区开始时间默认值设置

5.1 聚合的字段

5.2 存入Hbase表中的rowkey设计(默认是以维度组合后的字典编码)

5.3 高级字典设置(看官方的文档应该是在count_distinct时候用到的,对这个还没有研究)

6. Cube构建时的参数设置。如Hbase压缩格式设置等

最后保存。至此一个完整的cube构建完成,可以通过bulid触发来执行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值