kylin的安装可以看我之前的博客
进入web界面
通过浏览器 http://host1:7070/kylin 进行访问。
初始用户名和密码是 ADMIN/KYLIN。
创建项目
登陆kylin后,点击左上角的+号来创建Project:
同步hive表
点击Model->Data Source->Load Table From Tree,
Kylin会读取到Hive数据源中的表并以树状方式显示出来,你可以选择自己要使用的表,然后点击sync进行将其加载到kylin。
创建Model
1.new Model
2model信息
3.选择事实表,以及维度表
4.添加Lookup Table时需要设置与事实表的JOIN条件。
5。然后点击Next到下一步添加Dimension(维度)
6.点击Next下一步添加Measure(度量)
7.点击Next下一步跳转到设置时间分区列和过滤条件页面,时间分区列用于增量构建时选择时间范围,如果不设置时间分区列则代表该model下的cube都是全量构建。过滤条件会在打 平表 时用于where条件。
平表意思是(维度和度量组成的中间表)会在生成cube的时候有截图
创建Cube
1.先要选择该Cube是 属于哪个 Model的。定义cube信息
-
点击Next到下一步添加Dimension,Lookup Table的维度可以设置为Normal(普通维度)或者Derived(衍生维度)两种类型,默认设置为衍生维度,衍生维度代表该列可以从所属维度表的主键中衍生出来,所以实际上只有主键列会被Cube加入计算。
我这里选择的都是事实表的维度
-
选择度量
点击Next到下一步,点击+Measure来添加需要预计算的度量。Kylin会默认创建一个Count(1)的度量。Kylin支持SUM、MIN、MAX、COUNT、COUNT_DISTINCT、TOP_N、EXTENDED_COLUMN、PERCENTILE八种度量。请为COUNT_DISTINCT和TOP_N选择合适的返回类型,这关系到Cube的大小。添加完成之后点击ok,该Measure将会显示在Measures列表中。
4.其他
- 创建完成
查看cube信息
SQL
查看到创建完成cube的sql。该sql体现了 平表的逻辑。
Planner
注意在Kylin中每一种维度的组合 都管它叫做 Cuboid 。下图一共有 4095 个 ,图表展示。最下面是各个维度
4095 = 2的12次方-1 (2^12)-1
构建Cube
1.上一个步骤创建好的Cube只有定义,而没有计算好的数据,它的状态是‘DISABLED’,是不可以查询的。要想让Cube有数据,还需要对它进行构建。
2.Cube的构建方式通常有两种:全量构建和增量构建。
3.点击要构建的Cube的Actions列下的Action展开,选择Build,如果Cube所属Model中没有设置时间分区列,则默认全量构建,直接提交构建任务。
4.如果设置了时间分区列,则会出现如下页面,在这里你要选择构建数据的起止时间,然后点击Submit
5.然后你可以在Monitor页面观察构建任务的状态。Kylin会在页面上显示每一个步骤的运行状态、输出日志以及MapReduce任务。可以在${KYLIN_HOME}/logs/kylin.log中查看更详细的日志信息。
6.任务构建完成后,Cube状态会变成READY,并且可以看到Segment的信息。
查询Cube
Cube构建完成后,在Insight页面的Tables列表下面可以看到构建完成的Cube的table,并可以对其进行查询.查询语句击中Cube后会返回存储在Hbase中的预计算结果。
了解Kyliin构建Cube的过程
1.创建临时的Hive平表(从Hive读取数据)。说白了就是将 事实表,维度表的 维度和度量全部查询出来的结果作为一张平表。(也就是我们此次构建用到的所有数据结合起来)
2.计算各维度的不同值,并收集各Cuboid的统计数据。
3.创建并保存字典。
4.保存Cuboid统计信息。
5.创建HTable。
6.计算Cube(一轮或若干轮MapReduce)。
7.将Cube的计算结果转成HFile。
8.加载HFile到HBase。
9.更新Cube元数据。
10.垃圾回收