最近搭了一个数据监测看板。

54eae9b0212df74c4718baa355314247.gif

在大数据时代(这个开头我已经看腻了 ),为了挖掘冗余数据的价值,数据分析需求日益增多,而分析结果的常见表现形式有数据分析报告和数据看板(大屏),与报告文档不同,数据看板是对动态可视化的高度凝练,具有实时性强、信息量大的特点,又因其酷炫的视觉效果,深受数据产品需求方的青睐。构建数据看板的工具有很多,比如 Python 生态的 pyecharts、plotly,或者 BI 软件的 FineBI、PowerBI 等等,甚至使用 EXCEL 的联动图表也能实现。而对于数据库管理人员,利用 Navicat 图表工具构建数据看板,也是一个简单有效的方式。

aabee5229c77d064baef93b17fdadbe6.png

一、数据集说明

笔者以深圳市政府数据开放平台(https://opendata.sz.gov.cn/)上的一份街道实时数据的数据集为例,该数据集包括 7 个字段。

字段名 含义
TIME1 起始时间
PERIOD 时间片
BLOCKID 街道ID
EXPONENT 交通指数
GOLEN 通过样本总行驶长度
GOTIME 通过样本总行程时间
SPEED 平均行程车速

起始时间为记录的开始时间,每个时间片为 5 分钟,例如时间片 1 就表示从起始时间开始的第一个 5 分钟, 2 表示第 2 个 5 分钟,以此类推。交通指数反映一个街道在一个时间片内的拥堵情况,值越大越拥堵,划分五个等级,0-1 畅通,2-3 基本畅通,4-5 缓行,6-7 较拥堵,8-10 拥堵。

6ac19e835a881736404b5584cee5a6cb.png

下面,笔者以 SQLite 数据库进行演示。

二、统计查询需求

为了数据看板的充实性,我们可以多设计一些监测需求,比如:

1、监测街道总数

SELECT COUNT(DISTINCT BLOCKID) AS '街道总数' FROM Traffic

75

2、累计监测总量

SELECT COUNT(*) FROM Traffic

10000

3、累计监测时长

SELECT MAX(CAST(PERIOD AS decimal))*5/60 AS '累计监测时长(h)' FROM Traffic

11

4、累计行驶长度

SELECT SUM(GOLEN)/1000 AS '累计行驶长度(km)' FROM Traffic

2137966

5、总体平均交通指数趋势

-- 每五分钟的平均交通指数
SELECT PERIOD, ROUND(AVG(EXPONENT), 2) AS '平均交通指数' FROM Traffic
GROUP BY PERIOD
ORDER BY CAST(PERIOD AS decimal)
f664249f60069820762ea9d80e378f49.png

6、近两小时总体平均交通指数对比

SELECT ROUND(AVG(EXPONENT), 2) AS '交通指数', '近一小时' FROM Traffic
WHERE (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)-12 < CAST(PERIOD AS decimal) 
 AND PERIOD <= (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)
UNION ALL
SELECT ROUND(AVG(EXPONENT), 2), '上一小时' FROM Traffic
WHERE (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)-24 < CAST(PERIOD AS decimal) 
 AND PERIOD <= (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)-12
da349a4068d36ad6e89ccc1e791ebc4d.png

7、近两小时总体行驶长度对比

SELECT SUM(GOLEN)/1000 AS '行驶长度', '近一小时' FROM Traffic
WHERE (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)-12 < CAST(PERIOD AS decimal) 
 AND PERIOD <= (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)
UNION ALL
SELECT SUM(GOLEN)/1000, '上一小时' FROM Traffic
WHERE (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)-24 < CAST(PERIOD AS decimal) 
 AND PERIOD <= (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)-12
00e8cd11fe220e8f9bba43f0f9e1d439.png

8、各街道最新交通指数

SELECT BLOCKID, CAST(EXPONENT AS decimal) FROM Traffic
WHERE PERIOD = (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)
ORDER BY CAST(EXPONENT AS decimal) DESC
cfc2ffe158717f287b71ec8f69971cd9.png

9、各街道最新平均车速

SELECT BLOCKID, SPEED AS '平均车速' FROM Traffic
WHERE PERIOD = (SELECT MAX(CAST(PERIOD AS decimal)) FROM Traffic)
ORDER BY CAST(SPEED AS decimal) DESC

三、数据监测看板

数据源准备

需要展示的数据准备好之后,就可以把它们和图表绑定起来了。首先在 Navicat 图表面板新建工作区。

48fa2b4e1a0de4aa41db404bb0a9f73c.png

打开工作区后,进行新建数据源新建图表的操作,可能是一源一图或一源多图,可以根据执行查询的便利性来设计。

d1adfb6266afeb6380ff569348dd8a70.png

例如在数据源总表中,可以不做上文的监测街道总数、累计监测总量、累计行驶长度那样的运算,而是直接查询得到了每一条记录,包括街道ID和转换为千米制的行驶长度

710eba5f95273b41725f6306b38a918d.png

拖拽制图

图表自带聚合功能,可以方便实现一些统计。例如累计监测总量也就是记录的总条数,选择类型的图表后,将总表任意字段拖入计数即可。c2d68a3cb369415cf5f952ca2382beb2.png而选择 行驶长度-总计BLOCKID-非重复计数,即可得到累计行驶长度监测街道总数

c66787e916f212b2f73470ede01bd7f0.png

整合看板

根据数据源制作好多个图表后,就可以打开仪表板进行排布了。当图表数量多的情况下,还可以设计多个页面。

f520e0ad04d02f157354163d73234d22.png

最后点击仪表板右上角的显示即可全屏浏览,还具有一定的交互效果。

897e5cc8beecd64d555c8d7ad3b994bb.gif

四、小结

在不需要复杂交互和酷炫样式的情况下,使用 Navicat 图表来制作数据看板还是十分便利的,操作简单,基本能满足数据人员自身日常的可视化监测需求。这里是水完文准备开饭的 Seon塞翁,下一篇见!

推荐阅读

新书上市

《Excel数据分析思维、技术与实践》

这本书不是讲解基础的 Excel 软件操作,而是立足于“Excel 数据分析”,精心挑选 Excel 中常用、实用的功能讲解数据分析的思路及其相关操作技术。本书沉淀了笔者多年 Excel 数据分析经验,希望能切切实实地帮助读者精进 Excel 数据分析技能,从有限的数据中分析出无限的价值。

4c8e98a1696ea294d096b3931ea829b1.gif

猜你喜欢

转载自blog.csdn.net/zhuxiao5/article/details/130097054