数据分析之二:Kylin环境构建,维度、度量的概念
xsobi 2024-11-24 00:29 18 浏览
我们常做重复的事情,重复的事情做多了,成就了当下的我们!
统计某个页面的访问次数,其上按钮的点击次数,按照分钟、小时、日、周、月、年汇总;统计某个商品的销售件数,按日、周、月、年汇总;统计服务的调用次数,失败次数,平均耗时,最大耗时,最小耗时,也按照分钟、小时、日、周、月、年汇总;...... 进而我们会去输出设备的可用性指标、输出员工的代码提交频次、输出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;
相关推荐
- 在 Linux 系统中安装 Redis 的详细步骤
-
以下是在Linux系统中安装Redis的详细步骤,支持通过包管理器安装(简单快捷)和源码编译安装(获取最新版本)两种方式:方法1:使用包管理器安装(推荐新手)适用于Ubuntu/De...
- 在Linux系统上安装Redis集群的详细步骤
-
以下是在Linux系统上安装Redis集群的详细步骤,基于Redis6.x+版本,采用三主三从(6个节点)的典型配置模式:1.安装前准备环境要求系统:Ubuntu/CentOS等主流Linux发行...
- Linux入门使用教程
-
Linux入门一、初始化配置CentOS初始化安装在开始熟悉Linux操作命令之前,我们必须先搭建好Linux操作系统环境,我们这里选用的是Linux的发行版本CentOS7,在安装好CentOS操作...
- 06新手学习:Linux入门级命令教程
-
1、开启终端问题:什么是终端(Terminal)答:Linux操作系统中用于输入命令的位置打开后,效果如下图所示:2、Linux命令格式什么是Linux的命令?答:就是指在Linux终端(命令行)...
- 【笔记】windows10安装linux双系统教程(可能是现今最简单方法)
-
这周测试成功了大牛漂移菌教的树莓派系统镜像的压缩方法(【树莓派】小空间树莓派镜像系统备份方法img镜像文件压缩方法),虚拟机下备份镜像不太方便,无论是存储空间还是读卡操作都不方便。所以打算装个linu...
- 网络安全工程师:小白是如何让Kali Linux操作系统从U盘成功启动
-
一、背景介绍作为一名渗透测试工作人员(或者小白),在我们的日常工作或者学习中,我们不可能时时刻刻将自己的个人电脑(安装好KaliLinux的个人主机)带在身边,当我们没有带自己的个人电脑而需要进行渗...
- Linux配置ip地址的两种方法
-
Linux配置ip地址的两种方法,实验环境为centos7.6方法1:nmcli工具配置(centos7以下版本不支持该方法)第一步,通过nmcliconnection查看网卡名称[root@lo...
- Linux man 命令使用教程
-
简介man=manual(手册)命令用来查看Linux系统命令、函数、配置文件、系统调用等的官方文档。几乎所有标准程序和工具都有对应的man手册。基本语法man[options][s...
- Linux程序安装与管理指南
-
在Linux系统中,安装和管理程序主要通过包管理器和手动编译安装两种主要方式实现。以下是详细的操作指南,涵盖常见发行版(如Ubuntu/Debian、CentOS/RHEL、Fedora等)的用法。一...
- 零基础保姆级教程!手把手教你免费玩转Linux安装+学习环境搭建!
-
前期准备安装VMware虚拟机首先你要安装VMware虚拟机,如果你还不知道VMware是什么可以去看我的VMware相关教程,里面有详细解答检查V-CPU虚拟化是否开启当我们在虚拟机安装系统的...
- 网络安全工程师:小白如何使用Kali Linux生成木马后门并实现免沙
-
1.背景介绍msfvenom是msfpayload和msfencode的结合体,可利用msfvenom生成木马程序,并在目标机上执行,在本地监听上线,在黑客圈子,这款工具略有名气。本次教程是Msfve...
- Linux详解系列一:如何安装系统及客户端工具的使用
-
Linux是一种开放源码的操作系统,和Windows不同的是,由于其具有开源,稳定性强,安全,多用户操作等特点,它的使用场景非常广泛,比如企业中所使用的服务器中的操作系统,以及移动端的Andr...
- 4种方案供你选,微软发布《如何下载和安装Linux》教程
-
IT之家10月14日消息,微软近日发布了一个教程指南《如何下载和安装Linux》,介绍了使用WSL、本地安装、本地虚拟机和云端虚拟机4种方案。该指南重点介绍了用户在PC上运行Li...
- 嵌入式Linux开发教程:Linux Shell
-
本章重点介绍Linux的常用操作和命令。在介绍命令之前,先对Linux的Shell进行了简单介绍,然后按照大多数用户的使用习惯,对各种操作和相关命令进行了分类介绍。对相关命令的介绍都力求通俗易懂,都给...
- Linux基础手把手教学:使用22.04系统
-
Linux基础手把手教学:使用Ubuntu22.04系统。1.这节来讲一下下边的目录结构,因为只有清楚了解linux下边的目录结构,才能很方便地进行操作。linux下边的目录结构较为简单...
- 一周热门
- 最近发表
- 标签列表
-
- 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)