在大数据时代(这个开头我已经看腻了 ),为了挖掘冗余数据的价值,数据分析需求日益增多,而分析结果的常见表现形式有数据分析报告和数据看板(大屏),与报告文档不同,数据看板是对动态可视化的高度凝练,具有实时性强、信息量大的特点,又因其酷炫的视觉效果,深受数据产品需求方的青睐。构建数据看板的工具有很多,比如 Python 生态的 pyecharts、plotly,或者 BI 软件的 FineBI、PowerBI 等等,甚至使用 EXCEL 的联动图表也能实现。而对于数据库管理人员,利用 Navicat 图表工具构建数据看板,也是一个简单有效的方式。
一、数据集说明
笔者以深圳市政府数据开放平台(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
拥堵。
下面,笔者以 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)
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
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
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
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 图表面板新建工作区。
打开工作区后,进行新建数据源
、新建图表
的操作,可能是一源一图或一源多图,可以根据执行查询的便利性来设计。
例如在数据源总表
中,可以不做上文的监测街道总数、累计监测总量、累计行驶长度那样的运算,而是直接查询得到了每一条记录,包括街道ID
和转换为千米制的行驶长度
。
拖拽制图
图表自带聚合功能,可以方便实现一些统计。例如累计监测总量也就是记录的总条数,选择值
类型的图表后,将总表任意字段拖入计数即可。而选择 行驶长度-总计
或BLOCKID-非重复计数
,即可得到累计行驶长度或监测街道总数。
整合看板
根据数据源制作好多个图表后,就可以打开仪表板
进行排布了。当图表数量多的情况下,还可以设计多个页面。
最后点击仪表板右上角的显示
即可全屏浏览,还具有一定的交互效果。
四、小结
在不需要复杂交互和酷炫样式的情况下,使用 Navicat 图表来制作数据看板还是十分便利的,操作简单,基本能满足数据人员自身日常的可视化监测需求。这里是水完文准备开饭的 Seon塞翁,下一篇见!
推荐阅读
超全!120个数据指标与术语。
5年前,榨干程序员老公1300万资产,逼其跳楼自杀的翟欣欣
甘特图,看这篇就够了
嫖娼被抓通告里藏着的秘密,大数据告诉你!
《年轻人加班报告》
新书上市
《Excel数据分析思维、技术与实践》
这本书不是讲解基础的 Excel 软件操作,而是立足于“Excel 数据分析”,精心挑选 Excel 中常用、实用的功能讲解数据分析的思路及其相关操作技术。本书沉淀了笔者多年 Excel 数据分析经验,希望能切切实实地帮助读者精进 Excel 数据分析技能,从有限的数据中分析出无限的价值。