国庆假期发生了两件小事,其一是我默默度过 35
周岁生日,其二是玩了下grafana
`并在节后第一天被工程师 M 称赞:至关专业。python
grafana
呢?数月前我提交了一份数据后台需求给工程师 M,他选用和部署了 grafana
这个第三方开源的工具,仅用两三天就完成了这份需求。这效率至关快,令我对 M 和 grafana
印象深入。但我仍不知足,M提交的成品全部数据都图形化的而我更想要表格样式的数据。为了进一步整合其它数据进行统计分析,我还需手动导出数据,并写了复杂的 python
脚本用 pandas
作统计分析,每周至少运行一次。我经常冒出新的数据需求,它们并不大,但走一遍需求评审、排期开发验收的流程,彷佛还挺麻烦的。mysql
这些都还只算铺垫,真正的导火索是国庆假期前的 sprint
总结会上说起咱们几个产品的数据将整合到 grafana
统一实现。 CTO 曾对我说起若是我懂些 sql 语句,能够本身写。——哈?我懂点 sql 语句的吖,这不刚整理了一份笔记《【总结】python如何与mysql实现交互及经常使用sql语句》嘛。我处于 “sql 不过如此,放马过来啊”的大无畏状态-_-||
sql
国庆假期来了,那就玩玩儿看呗。数据库
grafana
?M以前为了开发个人需求,已经完成了 grafana
的部署,并设置好了数据源
。此次他专门建立了一个练习用的 dashboard
并开通编辑权限给我。特别说明,个人编辑权限仅有数据源的查询权,没有增删改的权限,这对数据源是安全的。另外,M 已有的实现也让初次上手的我能够照葫芦画瓢。这些是 我比彻底零准备的 grafana 新手占便宜的地方。安全
我并不想把 M 已经开发的需求从新实现一遍,我想要实现本身的数据需求。——想要什么数据,以什么样式呈现,我脑子里的需求俯拾便是。markdown
学习过程具体分为三个部分:工具
grafana
在 dashboard 上如何添加、编辑图表等模块,就是了解这个工具如何使用。A 部分,搜了两篇 grafana 如何使用
之类的文章,大概浏览下便可。老是照着别人整理的步骤图循序渐进,学习体验很差。大部分时候,我都是直接鼓捣。这种开源的可视化的工具,本身尝试一下就能快速熟悉起来。post
B 部分,当个伸手党,让工程师帮忙把全部表格 describe 导出也 OK 的;M给个人是一份表格的类定义文件。经过 A 部分的探索,我很快发现,在 dashboard 上建立一个模块,若是选择折线图类型,sql 语句编辑区能够任人挑选表格名称,这样有哪些数据表格就清楚了;若是选择表格类型,并使用select * from table_name limit 50
,就能呈现该表的部分数据,这样该表格有哪些字段也就清楚了。性能
C 部分,我把 M 以前实现的 sql
语句单独拷贝到 jupyter notebook
里,本身拆解为更基础的知识点,而后一点点熟悉了解。一个小技巧是,对于新手来讲 sql 语句的易读至关重要,能直接下降复杂度。因此我采用 markdown
语法以下,语法呈现就很清晰了: 学习
以上三个部分无需按顺序进行。本身对哪一个模块更感兴趣,就先开始哪一个;过程当中也可交叉轮换进行。接下来就是经过实现本身的数据需求,反复重复巩固并深刻 以上 3 个部分,直至产生令本身满意的产出。为此投入的时间开销24~48H
足够啦,彻底不耽误假期陪家人、睡懒觉、看电影。
最后须要强调一下,我很清楚本身并不想要取代工程师完成数据后台的开发。好比:
一些复杂需求,我本身写sql
,很难,学起来也慢。这些我会陆续收集罗列出来,走排期,请工程师帮忙,不会本身硬钻进去。
即使最终我完成了很是多的图表,但实际上我只考虑实现,不考虑性能(也暂无能力考虑),因此即使是我写出来的功能,也须要工程师把关和优化。
即使如此,我直接接触数据源并动手用 grafana
实现,也有很显著的好处:
我更清楚原始数据已采集了哪些,哪些指标是我能够定义和统计的,哪些是须要工程师进一步支持的。
一些相对简单的、对业务有帮助的数据监控/统计,我能直接实现。无需整理描述需求-和工程师沟通-工程师理解后实现-我再验收这样复杂的过程。
做为需求的发起者,我那些不成熟的需求,本身动手过程当中迭代起来也会很是效率。
固然这些想法是须要和工程师、上级沟通清楚的,这样才不至于产生误解吖。若是个人笔记对你有帮助,那就点赞或留言告诉我吧!