國慶假期發生了兩件小事,其一是我默默度過 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
實現,也有很顯著的好處:
我更清楚原始數據已採集了哪些,哪些指標是我能夠定義和統計的,哪些是須要工程師進一步支持的。
一些相對簡單的、對業務有幫助的數據監控/統計,我能直接實現。無需整理描述需求-和工程師溝通-工程師理解後實現-我再驗收這樣複雜的過程。
做爲需求的發起者,我那些不成熟的需求,本身動手過程當中迭代起來也會很是效率。
固然這些想法是須要和工程師、上級溝通清楚的,這樣纔不至於產生誤解吖。若是個人筆記對你有幫助,那就點贊或留言告訴我吧!