数据分析之二:Kylin环境构建,维度、度量的概念
xsobi 2024-11-24 00:29 16 浏览
我们常做重复的事情,重复的事情做多了,成就了当下的我们!
统计某个页面的访问次数,其上按钮的点击次数,按照分钟、小时、日、周、月、年汇总;统计某个商品的销售件数,按日、周、月、年汇总;统计服务的调用次数,失败次数,平均耗时,最大耗时,最小耗时,也按照分钟、小时、日、周、月、年汇总;...... 进而我们会去输出设备的可用性指标、输出员工的代码提交频次、输出BUG率等等
从日志、队列、数据库去抓取数据,使用Map-Reduce的思想,分层运算,渐次汇总; 安排一两个人来开发,再让产品或运营来描述需求,让相关的技术负责人来讲解数据的来龙去脉.....
Kylin
Kylin是这样一个产品,使用空间换时间的概念,对需要经常执行的统计进行预先运算,并存放下来,以此来加速数据的访问。其清晰定义了维度、度量,简单来理解维度就是如何对数据分类(时间区间、类别等),度量就是对应分类下的统计值(最大、最小、平均、求和、计数);可清晰用一个select cat,type,dayofyear,sum(price) from tabel1 group by cat,type,dayofyear来类比。度量就是price,维度就是cat,type,dayofyear。
Kylin将数据表分为事实表和维度表,分别表述实际发生的每一个事件,以及用来对这些事件进行分类的维度。其提供的示例数据表中典型的有KYLIN_SALES为事实表,
维度表如下:
安装
环境如下
<@:~>uname -a
Linux VM_0_2_centos 3.10.0-1160.6.1.el7.x86_64 #1 SMP Tue Nov 17 13:59:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
<@:~>free -m
total used free shared buff/cache available
Mem: 7820 4931 957 1 1931 2589
Swap: 0 0 0
<@:~>cat /proc/meminfo
MemTotal: 8008644 kB
使用docker安装kylin体验环境:
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给出的数据,直接使用hive查询要花20秒,基于kylin查询只要0.2秒。
hive> select part_dt,count(1) from kylin_sales group by part_dt limit 2;
Query ID = root_20220115120506_6601f25e-7ead-49f7-a78f-96c2246df66d
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 1
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapreduce.job.reduces=<number>
Starting Job = job_1642243053002_0019, Tracking URL = http://69277e2e84c9:8088/proxy/application_1642243053002_0019/
Kill Command = /home/admin/hadoop-2.7.0/bin/hadoop job -kill job_1642243053002_0019
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
2022-01-15 12:05:11,993 Stage-1 map = 0%, reduce = 0%
2022-01-15 12:05:17,150 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 1.83 sec
2022-01-15 12:05:22,324 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 4.21 sec
MapReduce Total cumulative CPU time: 4 seconds 210 msec
Ended Job = job_1642243053002_0019
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 4.21 sec HDFS Read: 807423 HDFS Write: 28 SUCCESS
Total MapReduce CPU Time Spent: 4 seconds 210 msec
OK
2012-01-01 12
2012-01-02 17
Time taken: 16.512 seconds, Fetched: 2 row(s)
再来一个,按照周来汇总数据;kylin要0.18s,hive要25s。
select KYLIN_CAL_DT.week_beg_dt,count(1),sum(kylin_sales.price)
from kylin_sales as kylin_sales
INNER JOIN KYLIN_CAL_DT as KYLIN_CAL_DT
ON kylin_sales.PART_DT = KYLIN_CAL_DT.CAL_DT
group by KYLIN_CAL_DT.week_beg_dt limit 2;
集成Superset
在superset运行环境中按照kylin客户端,并重启superset。
pip install kylinpy
然后就可以在superset里面访问此数据源了
superset使用kylin大多数都是要用组合查询,所以添加表基本没啥意义,基于sqllab构建sql后再可视化最佳【这里要把superset改为支持动态sql template】
小坑
hive启动会报错,需修改hive的启动脚本【/home/admin/apache-hive-1.2.1-bin/bin/hive】
hive
show database;
use kylin4;
show tables;
相关推荐
- 分享一个实用脚本—centos7系统巡检
-
概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本...
- Go 语言 Web 框架 Echo 系列:基础篇—搭建 Echo 开发环境
-
工欲善其事必先利其器。我们先搞定Echo环境。Go开发环境这个系列基于Go1.14.4,Linux系统。安装Go的方式有很多,可以在这里https://studygolang.com/...
- 连Shell的基本输出都不会,还写什么脚本?echo和printf命令总结
-
在Linux系统中使用echo命令和printf命令都可以实现信息的输出功能,下面我们分别看这两个命令的应用案例。echo...
- 在Linux中改变echo输出颜色的方法
-
技术背景在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变...
- Spring框架中applicationContext.xml和spring - servlet.xml的区别
-
技术背景在Spring框架里,...
- Tomcat服务器配置与优化:让Java应用飞得更高更远
-
Tomcat服务器配置与优化:让Java应用飞得更高更远Tomcat作为一款轻量级且功能强大的开源JavaServlet容器,无疑是许多中小型项目的首选服务器。然而,Tomcat的性能和稳定性并非天...
- 分享 5 个正则表达式的实际应用场景案例
-
转载说明:原创不易,未经授权,谢绝任何形式的转载在计算机编程的广泛领域中,某些技术具有改变我们如何处理和提取文本内容中信息的能力。在这些强大工具中,正则表达式成为每个开发者工具库中基本且不可或缺的组成...
- 最简洁详细的SSM框架整合(ssm框架详细介绍)
-
创建项目和SSM框架整合思路一、创建项目因为后面会配置springMVC,所以用IDEA的web骨架创建一个maven项目。创建项目目录如下,同时,项目需要的包和文件已手动创建好了:项目目录上图中,a...
- 使用JSP 2避免JSP文件中的Java代码
-
技术背景在早期的JSP开发中,使用脚本片段(...
- 微信安卓测试版8.0.28开发者更新内容公布
-
IT之家9月7日消息,微信安卓平台迎来了8.0.28测试版更新,相比上一次更新安装包体积有所减小,文件详细信息如下:微信安卓内测版8.0.28(ARM64)安装包文件大小254MB...
- 疯传阿里内网的SpringMVC笔记,被一个离职员工泄露,手慢无
-
一、简介1.介绍SpringMVC是实现MVC的轻量级Web框架,底层封装了servlet2.特点...
- 学习笔记之Struts2—工作原理图(struts1工作原理)
-
本文以Struts2的官方工作原理图作为主线讲解(参考部分书籍与视频)1.初始概念struts2是web.xml进行配置的一个过滤器,当web项目启动的时候,这个过滤器就会生效。2.web.xml&l...
- Spring MVC工作流程及请求处理机制全解
-
SpringMVC工作流程及请求处理机制全解作为一个Java开发者,你一定对Spring框架有所耳闻。今天我们就来详细聊聊SpringMVC,这是Spring家族中最常用的Web层框架之一。Spr...
- 在Javaweb中实现发送简单邮件(java实现邮件收发)
-
前言当我们在一个网站中进行注册账户成功后,通常会收到一封来自该网站的邮件。邮件中显示我们刚刚申请的账户和密码以及一些其他的广告信息。在上一篇中用Java实现了发送qq邮件的功能,今天我们来实现一个这样...
- 一周热门
- 最近发表
-
- 249个Linux Shell脚本经典案例,拿来即用(附PDF)
- 分享一个实用脚本—centos7系统巡检
- Go 语言 Web 框架 Echo 系列:基础篇—搭建 Echo 开发环境
- 连Shell的基本输出都不会,还写什么脚本?echo和printf命令总结
- 在Linux中改变echo输出颜色的方法
- Spring框架中applicationContext.xml和spring - servlet.xml的区别
- Tomcat服务器配置与优化:让Java应用飞得更高更远
- 分享 5 个正则表达式的实际应用场景案例
- 最简洁详细的SSM框架整合(ssm框架详细介绍)
- 使用JSP 2避免JSP文件中的Java代码
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- dedecms模版 (53)
- c 视频教程下载 (33)
- listview排序 (33)
- characterencodingfilter (33)
- getmonth (34)
- label换行 (33)
- android studio 3 0 (34)
- html转js (35)
- 索引的作用 (33)
- checkedlistbox (34)
- xmlhttp (35)
- mysql更改密码 (34)
- 权限777 (33)
- htmlposition (33)
- 学校网站模板 (34)
- textarea换行 (34)
- 轮播 (34)
- asp net三层架构 (38)
- bash (34)