很多業(yè)務都需要進行運營數據統(tǒng)計,如統(tǒng)計用戶數、調用量等等。相較于傳統(tǒng)方式,在擁抱云計算的大潮下,如何借助騰訊云上PAAS產品無服務云函數SCF(Serverless CloudFunction),云數據庫(MySQL),以及結合報表可視化工具"小馬BI"(https://xiaoma.tencent.com/#/),來快速開發(fā)我們的運營報表呢?
效果展示、架構介紹
運營日報的整體架構如下:
簡單概括下,就是通過云函數的定時觸發(fā)器,每天定時從源數據庫(或API接口等)獲取數據并處理,之后存到目標數據庫。小馬BI從目標數據庫拉取數據進行展示。so easy!
報表效果如下:
第一步、申請注冊騰訊云賬號
在騰訊云(https://cloud.tencent.com/)上,申請注冊一個騰訊云賬號。
第二步、購買云MYSQL(非必需)
在騰訊云數據庫控制臺購買一個數據庫,用于存儲我們處理后的數據。
(理論上,目標數據庫只要位于小馬BI能訪問到的服務器上就行。如果你不想把數據存在云數據庫中,您可跳過此步。)
第三步、創(chuàng)建云函數
在騰訊云云函數控制臺新建云函數。(如若您的MYSQL數據庫配置了VPC,請確保云函數與其位于同一VPC內)。
第四步、開發(fā)
接下來就是具體的代碼開發(fā),云函數只是幫我集成了各個語言(如Node Python等)的運行時。
代碼的開發(fā)與正常開發(fā)別無二致。
在此不再贅述??梢詤⒖糞CF快速入門(https://cloud.tencent.com/document/product/583/9179)。
4.1存量項目遷移
云函數通過指定的函數入口來進行調用。
所以現有項目,只需要入口執(zhí)行代碼改為函數,并在控制臺配置相應的函數入口,即可實現無縫遷移。
第五步、部署
代碼開發(fā)完以后,可以通過手動、命令行工具(https://cloud.tencent.com/document/product/583/33445)等方式上傳。
配置定時觸發(fā)器,每天8點執(zhí)行就可以了。
可以通過控制臺比較方便地查看日報每天的執(zhí)行日志:
第六步、配置告警(非必需)
日報執(zhí)行出錯,作為開發(fā)人員我們很希望第一時間接收到通知,以便排查。
6.1通過云監(jiān)控來配置告警
6.2通過企業(yè)微信機器人
可以通過代碼改造,全局捕獲錯誤,將函數執(zhí)行成功或失敗的推送給企業(yè)微信機器的回調地址。
效果如下:
第七步、配置小馬BI
處理后的數據存入云數據庫以后,在小馬BI上配置數據庫地址為云上數據庫(或您的目標數據庫)的地址。
之后拖拽組件生成圖表就OK了。更多配置細節(jié),可參考小馬BI幫助手冊。
寫在最后
運營報表上云相較于之前,有以下優(yōu)勢:
1、更方便的重跑日報。當天日報出錯。需要重跑的話,只需要通過在控制臺點擊按鈕就能完成,無需登機器。
2、更方便的查看日志。原先查日志都需要登錄服務器,現在通過控制臺界面就能完成。
3、部署更方便。原先想更改文件,需要通過rz/sz的方式把文件傳到機器上,現在結合云函數的命令行工具,可以很方便地進行部署。
4、更方便地監(jiān)控與提醒。日報出錯,通過微信機器人、云監(jiān)控的告警功能來更方便的提醒。
結合小馬BI的可視化、推送能力,我們可以很方便、快速地完成運營報表開發(fā)。