栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

一篇文章教会你 kylin

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一篇文章教会你 kylin

概述

Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供 Hadoop 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc.开发并贡献至开源社区。

只需要三步,即可实现超大数据集上亚秒级的查询

1、定义数据集上的一个雪花模型或星型模型

2、定义的模型上构建一个cube

3、使用SQL通过ODBC、JDBC 或 RESTFUL API 进行查询,仅需亚秒级响应时间即可获得查询结果

查询出的海量数据存储到Hbase

安装

这里涉及的环境太多了,为了方便用户测试,提供了docker镜像。镜像中包含测试表和数据以及

  • JDK 1.8
  • Hadoop 2.7.0
  • Hive 1.2.1
  • Hbase 1.1.2 (with Zookeeper)
  • Spark 2.3.1
  • Kafka 1.1.1
  • MySQL 5.1.73
安装docker

安装工具

sudo yum install -y yum-utils 

设置yum仓库地址

sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager 
     --add-repo 
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum缓存

sudo yum makecache fast

安装docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

检查安装状态

docker info

启动docker

systemctl start docker

查看docker状态

systemctl start docker

设置docker开机自启

systemctl enable docker

设置docker镜像加速

cat < /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF
安装kylin

拉取镜像

docker pull apachekylin/apache-kylin-standalone:3.1.0

启动容器

docker run -d 
-m 8G 
-p 7070:7070 
-p 8088:8088 
-p 50070:50070 
-p 8032:8032 
-p 8042:8042 
-p 16010:16010 
apachekylin/apache-kylin-standalone:3.1.0
  • Kylin 页面:http://:7070/kylin/login
  • HDFS NameNode 页面:http://:50070
  • YARN ResourceManager http://:8088
  • HBase 页面:http://:16010
使用 登录

username:ADMIN

passwor:KYLIN
启动了容器之后,会自动导入样例数据,里面含有10000条数据。链接里是字段说明以及表关系,所以千万千万千万不要再导入样例数据啦,启动时已经给你自动导入过了。
kylin样本数据介绍

导入数据源

创建model

1、new model

2、定义model的名字

3、定义雪花模型或星型模型中的事实表和维度表


4、选择维度【如果可以的话,能选上就全选上,免得日后缺失数据】


5、选择度量

6、如果是增量导入可以选择这个【表以及日期字段】还可以设置过滤条件

创建cube

我的数据都是瞎填的,不要模仿我

1、new cube

2、定义相关信息

3、选择维度

Derived意思是衍生数据、构建cube的时候不会包含它,可以通过层级聚合得到,若经常用到也可以选择normal

4、选择聚合指标

5、这一步为了增量构建cube设计的,分区表做日计算会产生一个cube segment,在hbase就是一张表,那天天查得多少张表,所以要做一个合并。

6、高级设置

Aggregation Groups:只会对组内的字段进行聚合,不同组的字段不会相互聚合,可以大量减少cube

Mandatory Dimensions:必选维度,就是相当于group by字段必有它

Hierarchy Dimensions :层级维度,如省市区,只会聚合出 省、省市、省市区

Joint Dimensions: 联合维度,把两个维度绑定在一起,不会拆开聚合,可以减少一半的cube

可以拖拽维度列去调整其在 rowkey 中位置; 位于rowkey前面的列,将可以用来大幅缩小查询的范围。通常建议将 mandantory 维度放在开头, 然后是在过滤 ( where 条件)中起到很大作用的维度;

encoding选择合适的编码格式

Mandatory Cuboids: 维度组合白名单。确保你想要构建的 cuboid 能被构建。

Cube Engine: cube 构建引擎。有两种:MapReduce 和 Spark。如果你的 cube 只有简单度量(SUM, MIN, MAX),建议使用 Spark。如果 cube 中有复杂类型度量(COUNT DISTINCT, TOP_N),建议使用 MapReduce。

Advanced Dictionaries: “Global Dictionary” 是用于精确计算 COUNT DISTINCT 的字典, 它会将一个非 integer的值转成 integer,以便于 bitmap 进行去重。

Advanced Snapshot Table: 为全局 lookup 表而设计,提供不同的存储类型。

Advanced ColumnFamily: 如果有超过一个的COUNT DISTINCT 或 TopN 度量, 你可以将它们放在更多列簇中,以优化与HBase 的I/O。

7、保存。如果最后出bug,说rowkey个数匹配不上,就查看第三步中的normal的个数和rowkey的个数

构建cube

1、点击build

2、点击左上角的moniter可以查看执行过程

数据查询


查询的数据没有构建,会根据之前设置的构建引擎去查询返回数据

rest接口
curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "startTime": 820454400000, "endTime": 821318400000, "buildType": "BUILD"}' http://192.168.10.20:7070/kylin/api/cubes/cube_test/build

日期和路径记得改 cube_test替换成你的cube名称

cube优化

衍生维度

join之后的维度表,如果设置成drived,则不参与cuboid计算

聚合组

把不同的维度划分为不同的主体

必选维度

每个预计算cuboid中必须包含必选维度,会成倍降低cuboid个数

层级维度

降低cuboid个数

联合维度

就相当于1:1,在预计算cuboid时,必须同时出现

输出压缩

输入压缩

rowkey优化

调整维度顺序和编码

这里只是教会基础使用,想要了解更多还是去官网看看吧

[Apache Kylin | 概述](https://kylin.apache.org/cn/docs31/index.html)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/946060.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号