clickhouse+superset搭建数据平台(四)-数据应用(报表可视化设计) - 灰信网(软件开发博客聚合)


本站和网页 https://www.freesion.com/article/9877592652/ 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

clickhouse+superset搭建数据平台(四)-数据应用(报表可视化设计) - 灰信网(软件开发博客聚合)
首页
联系我们
版权申明
隐私政策
搜索
clickhouse+superset搭建数据平台(四)-数据应用(报表可视化设计)
标签: 数据分析 可视化 数据库 python 大数据
经过前面的步骤,我们已经成功搭建好了数据库,将csv文件中的数据导入到clickhouse中,并将superset和clickhouse成功地连接起来了。现在我们就可以对我们的数据尝试提出一些实际业务问题,使用SQL查询出我们想要的数据结果,并将其可视化为报表形式保存在superset上。
我们不妨从以下几个问题入手:
⾏⻋⾥程最多的出租⻋Top 100是哪些?
出租⻋每⽇⾼峰期和低峰期(⼩时级别)是什么时候?
分析每台出租⻋的平均搭载时⻓是多少?
分析每日出租车数量趋势?
分析每日出租车订单趋势?
分析每日车费(fare)趋势?
不同距离长度的出租车订单分布如何?
由于SQL比较简单,不做多余解释,看代码就行。重点说明如何将SQL查询保存为数据报表(slice)的过程。
⾏⻋⾥程最多的出租⻋Top 100是哪些?
在SQL Editor中输入:
SELECT sum(trip_miles ) as trip_miles , taxi_id
FROM TAXI_TRIPS
GROUP BY taxi_id
order by trip_miles DESC
limit 100
点击Run Query,等待服务器返回结果。点击Save Query保存当前查询。
接下来我们将查询结果保存到superset。
点击Explore按钮,页面将跳转到数据切片的详细设置页面,
①数据源设置
点击数据源设置后,可以看到数据源对应的SQL,因为数据源的名称并不容易记住,我们首先将其修改为更直观的名称,点击Use Legacy DataSource Editor切换回以前的数据源旧编辑器模式(新的我没找到在哪里修改数据源名称),
修改后保存即可。
回到新版的旧编辑器,在Metrics标签页里,superset为我们自动生成了一个聚合指标count(*),表示记录条数,我们可以自定义生成其他的指标。比如我们可以生成一个出租车里程数的SUM聚合指标,并且将其名称标记为trip_miles。
这里有个坑,要是直接在刚才的可视化界面将Metrics设置为trip_miles,superset会提示一定要将这个量值聚合后才能用于图表构建,而构建后的图表指标名称就变成了SUM(trip_miles),但是我们见到的大多数图表并不会这样标注,通常会直接标注里程数(trip_miles),因此SUM(trip_miles)并不直观,为人们好理解。现在也没有太好的解决方案,只能暂时通过这种创建量值的方式让图表显示trip_miles。
②报表类型
superset支持了几乎所有常见的图表类型,如下图。
但值得一提的一点是,line chart在superset 0.34.0版本中支持x轴为时间/日期的数据框,其他x轴不为时间/日期类型的不能使用line chart,作者解释这样子设计的意思是x轴非时间类型的数据框可以用bar chart实现我们想要的效果。
因此这里我们选择bar chart。
回到设计界面,需要注意的是这里有另外一个坑,Time项目中Time Range被默认筛选到了Last Week,这个会导致SQL查询无结果,需要将其设定到No filter状态。
③聚合列
此处指定taxi_id作为聚合列。
④指标
此处是我们刚才创建的指标trip_miles。点击Run Query就可以看到设计好的图表。
实际上superset这样子的设计我感觉更使用于粒度中等的SQL返回结果,粒度中度意味着不把底层数据表全量返回,同时又可以对量值做不同类型的聚合计算,COUNT\SUM\MAX等等;但是这样子带来的问题是在写SQL的时候就得想好指标的聚合需要怎么设计,粒度不好把控。
接下来我们将其保存到Dashboard。点击左上角的Save,在Save as中填入图表名称,在Add to new dashboard中填入新建的仪表板名称。
根据选择的图表类型不同,图表设计界面可能有不同的Option,比如:
⑤排序依据
指定图表排序依据的列或者聚合(?)
⑥升降序
排序升降序(DESC\ASC)
以下问题同理,为了方便就不写具体过程,只写出对应的SQL,以供参考。
出租⻋每⽇⾼峰期和低峰期(⼩时级别)是什么时候?
SELECT
AVG(a.n_taxis) AS avg_n_taxis,
a.hour
from
SELECT
toDate(trip_start_timestamp) as date,
toHour(
toDateTime(trip_start_timestamp)
) as hour,
count(distinct taxi_id) as n_taxis
FROM
TAXI_TRIPS
group by
date,
hour
) a
group by
a.hour
分析每台出租⻋的平均搭载时⻓是多少?
SELECT
taxi_id,
avg(trip_seconds) / 60 as avg_trip_minutes
from
TAXI_TRIPS
GROUP BY
taxi_id
order by
avg_trip_minutes desc
limit 1000
分析每日出租车数量趋势?
SELECT
COUNT(DISTINCT taxi_id) as n_taxis,
toDate(trip_start_timestamp) as date
FROM
TAXI_TRIPS
GROUP BY
date
分析每日出租车订单趋势?
SELECT
COUNT(DISTINCT trip_id ) as n_trips,
toDate(trip_start_timestamp) as date
FROM
TAXI_TRIPS
GROUP BY
date
分析每日车费(fare)趋势?
SELECT
SUM(toFloat32OrZero(substring(fare, 2))) as fare,
toDate(trip_start_timestamp) as date
FROM
TAXI_TRIPS
GROUP BY
date
不同距离长度的出租车订单分布如何?
SELECT
CASE
WHEN trip_miles >= 0
and trip_miles < 5 THEN 5
WHEN trip_miles >= 5
and trip_miles < 10 THEN 10
WHEN trip_miles >= 10
and trip_miles < 50 THEN 50
WHEN trip_miles >= 50
and trip_miles < 100 THEN 100
WHEN trip_miles >= 100
and trip_miles < 500 THEN 500
WHEN trip_miles >= 500
and trip_miles < 1000 THEN 1000
ELSE 10000
END
) AS miles_tag,
COUNT(DISTINCT trip_id) as n_trips
FROM
TAXI_TRIPS
GROUP BY
miles_tag
版权声明:本文为m0_47467356原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_47467356/article/details/105844217
智能推荐
恢复不小心执行 rm -f 被删除的文件?
模拟场景 1. 删除 误删除服务器目录/root/selenium/Spider下的MySql.Data.dll文件: 2. 恢复 1.使用lsof命令查看当前是否有进程打开/root/selenium/Spider/MySql.Data.dll文件: 从上面可以看出,当前文件状态为已删除(deleted)。 2.查看是否存在恢复数据: /proc/13067/fd:进程操作的文件描述符目录。 8...
删除数组重复项
删除数组重复项 删除重复值 有一个整数数组, 去掉该数组中重复元素后排序打印, (相同的数字只保留一个, 禁止使用set和语言本身提供的函数) 输入: 第一行: 整数N 表示该数组的长度 第二行: 数组中每个元素的值An (0<N<10000, 0<An<1000) 输出: 去掉重复元素后的有序数组 样例输入: 11 1 3 4 2 6 2 6 2 8 2 6 样例输出: 1 2 3 4 6 8 ...
laravel框架接入图表Charts模块
laravel 图表Charts模版搭建 此功能用到了Charts模块 所以需要使用composer倒入相应的拓展包 开发环境申明 操作系统:Mac 开发环境:vagrant + Nginx -Tengine2.2 + MySQL 5.5 + PHP-7.1 集成环境:宝塔面板 搭建php+宝塔面板+vagrant+laravel+Mac+centos7.2+Composer开发环境 详细操作 打...
JAVA线程浅剖析
目录 什么是线程(百度百科) 操作系统(OS)线程状态 java创建线程的方法 JVM线程状态转换 线程数据结构 备注 什么是线程(百度百科) 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行...
过滤器过滤一个包内所有servlet
先看下文件的目录结构: 我们要做的就是用MyFirstFilter过滤servlet包内的所有servlet即DisplayHeader、HelloServlet、SecondServlet。 主要就是两个注意事项: 1: 这里一定要注意就是那个注释部分: 它原来的值是:@WebServlet(&ldquo;/HelloServlet&rdquo;),一定要改成上图所示的才可以 2.就是web.x...
猜你喜欢
【Write up】bugku--convert
下载附件1.txt,打开看到全是0、1 看到这么多0、1,第一想法就是进行进制转换,将二进制转成10进制或者16进制等,方便下一步操作,由于文件内容较多,在线工具没法转换,写个简单的python脚本跑一下吧: 转成16进制之后,删除开头的0x,然后在进行十六进制转ASCII码操作(可以直接用notepad++的插件) 转成ASCII码之后,看到开头Rar!,很明显的rar文件头,修改...
操作系统笔记之基础
1.进入操作系统 神秘的开机背景后面到底发生了什么? 打开电源,计算机就开始工作了,那计算机怎么工作? 冯。诺依曼存储程序思想:把程序和数据存放在计算机存储器中,计算机在程序的控制下一步一步执行。 设定一个程序指针PC指向指令,由PC指针从存储器中取出指令,交给运算器和控制器,程序指针PC自动指向下一个指令。 那么问题:打开电源以后,计算机执行的第一条指令是什么? x86pc,计算机刚打开时pc ...
Android从零开始:了解视图和视图组
除了少数情况之外,您构建的每个应用程序都具有某种形式的用户界面。 在Android上,这是通过使用View和ViewGroup对象来完成的。 在本文中,您将了解一些可用于显示内容的更常用的View组件,并向您介绍了它们的用法。 1.意见 View对象专门用于将内容绘制到Android设备的屏幕上。 虽然可以在Java代码中实例化View ,但是使用它们的最简单方法是通过XML布局文件。 当您在An...
解决mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
0x00前言 文章中的文字可能存在语法错误以及标点错误,请谅解; 如果在文章中发现代码错误或其它问题请告知,感谢! 0x01解决方案 1.系统信息: 操作系统:Red Hat 4.4.7-17 mysql版本信息:mysql-community-server-5.7.21 2.安装完mysql启动,但是报如下错误: 3.此时,进入etc目录打开my.cnf配置文件: 然后加入skip-grant-...
DPDK Programmer’s Guide(3)环境抽象层(EAL)
官方文档查看地址: http://doc.dpdk.org/guides/prog_guide/env_abstraction_layer.html PDF下载地址: https://www.intel.com/content/www/us/en/embedded/technology/packet-processing/dpdk/dpdk-programmers-guide.html 本篇难度系...
灰信网(软件开发博客聚合)
程序员专属的优秀博客文章阅读平台
相关文章
怎么搭建可视化BI数据平台(下)
数据仓库——可视化报表superset
PYTHON数据可视化(四)seaborn
(四)可视化IMU数据
django搭建数据可视化平台利用ajax前后端获取数据
Python之django-simple-captcha django简单验证码插件
uniapp省市区街道四级级联动选择器
Python+Paddlehub相片人像抠图精简源码实例
STL-vector
Inteli IDEA Maven创建Mybatis项目
热门文章
Dubbo/Dubbox的服务暴露(三)- 服务的注册
laravel框架中封装公共方法全局调用
【Rt-Thread】STM32输出PWM
操作系统(李治军) L12内核级线程的实现
课文果园机器人这篇课文什么的果子_温儒敏教授:对长课文、难课文教学的思考(文字+视频版)...
Python-Time库
Map集合之HashMap(二)
Web前端入门 HTML基础
kuangbin 简单搜索 - POJ 1321 (dfs模板题)
system 远程创建文件夹失败_macOS:使用Intellij IDEA远程连接Hadoop
推荐文章
sharding-jdbc系列之order by结果归并(八)
卜若的代码笔记-DJAngo系列-第七章:上传资源-后台的处理
String.intern()详解,关于String s2 = new String("ja") + new String("va"); s2.intern();
【达内课程】利用框架volley和gson展示百度音乐列表(上)
pyechart数据可视化11 双坐标轴丨2020年全球智能个人音频设备出货量及增长率
ThinkPHP 5如何接入支付宝支付功能
算法总结 - 爬楼梯问题逐步优化,斐波那契类似问题套路
利用Python与selenium自动化模拟登陆12306官网!
Android消息机制三剑客之Handler、Looper、Message源码分析(二)
Java 指定范围的链表反转
相关标签
数据分析与数据可视化篇
可视化
python
anaconda
大数据
mysql
工具
数据可视化
数据分析
KITTI_ROS
Copyright 2010-2022 - All Rights Reserved - www.freesion.com