背景描述
日常业务中,在服务器上搭建superset作为数据展示。经过一段时间业务发展,数据集和看板数量都有长足的增长,因此需要对数据集的使用情况做一个初步统计。
一方面可以用于评估需求可靠性,另一方面也便于统计长时间没有查看过的数据集,方便后续下掉相关任务,节省资源。
主要统计指标
数据集使用情况
最后一次访问时间
相关数据集不同时间窗口内的使用次数
不同账号的访问记录
如何监控
大致思路是通过日志中查询数据的日志,关联上对应的图表,图表在关联上对应的数据池。
搭建方式参考尚硅谷superset视频文档,默认内置数据库为SQLite,语法与psql有些不同
关键表及字段说明
数据集查询SQL
SELECT
a.dttm,
a.user_id,
a.slice_id,
a.duration_ms,
b.datasource_id,
b.slice_name,
c.table_name,
d.last_name || d.first_name AS username
FROM
logs a
JOIN
slices b ON a.slice_id=b.id
JOIN
tables c ON b.datasource_id=c.id
JOIN
ab_user d ON a.user_id=d.id
WHERE
a.action='ChartRestApi.data' AND
a.dttm > date('now', '-3 day', '-8 hour');
根据需求调整
补充说明
我这里主要是在sqlite里执行sql,将执行结果存成CSV,在将CSV文件load到mysql中,最后通过superset连接mysql读到相关数据,形成图表展示。