使用MetaBase快速開發(fā)運(yùn)營數(shù)據(jù)可視化需求

MetaBase是一款數(shù)據(jù)可視化平臺

在沒有數(shù)據(jù)可視化平臺的時候障涯,我們往往需要從需求到審批卧土,再到安排開發(fā)人員和排期惫皱,最終交付。流程繁瑣尤莺,參與的人員也多旅敷,往往需要幾天甚至幾周的時間!

使用 Metabase 可以大大節(jié)省成本颤霎,簡單易上手媳谁,Metabase 把數(shù)據(jù)分析常用的查詢通過一個個易于操作的界面呈現(xiàn),非常適合不懂SQL的業(yè)務(wù)人員使用友酱,只需要點(diǎn)幾下鼠標(biāo)晴音,就可以快速得出一個直觀的可視化結(jié)果。

所以MetaBase上運(yùn)營人員是可以直接查看數(shù)據(jù)表缔杉,篩選數(shù)據(jù)并組合成自己想要的報表锤躁。但往往他們會提出需求并希望直接獲得數(shù)據(jù)結(jié)果。所以文章重點(diǎn)會放在技術(shù)人員直接提供數(shù)據(jù)結(jié)果到Metabase的討論上或详。

Metabase數(shù)據(jù)源支持很多系羞,本篇文章基于MySql數(shù)據(jù)庫

讓我們先從創(chuàng)建一個簡單數(shù)據(jù)查詢開始,點(diǎn)擊右上角創(chuàng)建SQL查詢

image

SQL查詢的頁面分為三個區(qū)域

1.SQL編輯區(qū)域:主要用來技術(shù)人員編寫數(shù)據(jù)庫查詢代碼

2.SQL變量區(qū)域:如果在代碼中使用SQL變量霸琴,則自動彈出這個區(qū)域椒振,方便對參數(shù)命名(SQL變量如何使用文檔:https://www.metabase.com/docs/v0.43/users-guide/13-sql-parameters.html)。

  1. 數(shù)據(jù)展示區(qū)域:在SQL編輯完成后梧乘,點(diǎn)擊區(qū)域內(nèi)右下角查詢按鈕澎迎,即可查詢數(shù)據(jù)并進(jìn)行展示。數(shù)據(jù)默認(rèn)格式為表格形式选调。表頭名稱默認(rèn)為SQL語句中的字段名稱(所以在SQL中可以重命名字段)
示例圖1

對于數(shù)據(jù)想進(jìn)行圖形化展示夹供,可以點(diǎn)擊上圖左下角的視覺化按鈕

示例圖2

選擇適用業(yè)務(wù)的圖形,我選擇扇形圖仁堪,那么就要對于扇形圖的維度罩引,衡量標(biāo)準(zhǔn)選擇對應(yīng)的字段。效果圖:

示例圖3

點(diǎn)擊已完成枝笨,并進(jìn)行保存后,就可提供給運(yùn)營使用揭蜒。

對于單個簡單業(yè)務(wù)我們就可以通過以上方式提供數(shù)據(jù)横浑,Metabase還提供“儀表盤”看板來進(jìn)行數(shù)據(jù)合集展示。用一個頁面看板宏粤,把各種單個SQL查詢數(shù)據(jù)歸類一起進(jìn)行數(shù)據(jù)展示诽凌。

儀表盤的使用可以參考官方文檔:https://www.metabase.com/docs/latest/dashboards/start

示例圖4

需要提到的一點(diǎn):我們可以在儀表盤添加過濾器窄瘟,然后指定某個模塊選擇對應(yīng)查詢參數(shù)。這樣保存后欺冀,我們填寫手機(jī)號后树绩,就可查詢針對單個用戶的數(shù)據(jù)面板

示例圖5
示例圖6

利用儀表盤我們還可以創(chuàng)建:交易數(shù)據(jù)看板,訂單數(shù)據(jù)看板隐轩,財務(wù)報表等等饺饭,把各種單個數(shù)據(jù)匯總到一個儀表盤,方便數(shù)據(jù)閱讀职车。(一定要注意不能出現(xiàn)慢SQL瘫俊,不然有可能會導(dǎo)致數(shù)據(jù)庫負(fù)載過高)

在使用Metabase中,常常我們會需要以月為維度的圖形化數(shù)據(jù)悴灵。但在編寫SQL上我們總會遇到某個時間點(diǎn)沒有數(shù)據(jù)的情況扛芽,對于月緯度數(shù)據(jù),為了防止當(dāng)月某日有缺失數(shù)據(jù)积瞒,有個小技巧川尖,我們可以創(chuàng)建一張表記錄日期,然后在SQL查詢中以日期表為主表茫孔,關(guān)聯(lián)查詢業(yè)務(wù)表叮喳。

例如要查詢雙月環(huán)比交易金額線圖:

示例圖7

線圖所對應(yīng)的基礎(chǔ)數(shù)據(jù)是這樣:

示例圖8

要到達(dá)上圖效果,參考代碼:

select func.monthDay '日期', ifnull(currentMonth.amount, null) '本月交易金額', ifnull(beforeMonth.amount, null) '上月交易金額'
from (
         select type, value monthDay
         from date_statistics_function
         where type = 'day'
           # 默認(rèn)為當(dāng)前月份最大天數(shù)
           and value <= day(last_day(current_date()))
         order by value) func
         left join (
    select date_format(date_day, '%d') date, sum(amount) amount from transaction_user_day_info ca
    where ca.date_day >= date_add(curdate(), interval - day(curdate()) + 1 day)
    group by date
) currentMonth
                   on currentMonth.date = func.monthDay
         left join (
    select date_format(date_day, '%d') date, sum(amount) amount from transaction_user_day_info ca
    where ca.date_day >= date_add(curdate() - day(curdate()) + 1, interval -1 month)
      and ca.date_day < date_add(curdate(), interval - day(curdate()) + 1 day)
    group by date
) beforeMonth
                   on beforeMonth.date = func.monthDay
order by `日期`;

date_statistics_function表會存儲0~23小時银酬,1~31日嘲更,hour表示小時,day表示日揩瞪,用來支撐上面的SQL查詢赋朦。好處就在于如果某小時或某日在業(yè)務(wù)數(shù)據(jù)表中沒有數(shù)據(jù),那么可以對當(dāng)日/小時數(shù)據(jù)補(bǔ)0李破,不會缺失數(shù)據(jù)宠哄。

示例圖9

對于近幾個月,近幾日數(shù)據(jù)查詢也有參考代碼

-- 最近一年日期
select date_format(date_add(date_sub(curdate(), interval 1 year), interval dt.seqNo month), '%Y-%m') '最近一年'
from (
         select row_number() over () seqNo
         from date_statistics_function
         limit 12) dt;
-- 最近30日-日期
select date_add(date_sub(curdate(), interval 30 day), interval dt.seqNo day) '最近30日'
from (
         select row_number() over () seqNo
         from date_statistics_function
         limit 30) dt;

有了Metabase我們可以快速實現(xiàn)運(yùn)營數(shù)據(jù)需求嗤攻,并在短時間內(nèi)完成交付毛嫉。

類似Metabase BI平臺還有很多,例如Superset妇菱、DataEase承粤、MetaBase以及阿里云QuickBI。

無論使用哪種平臺闯团,數(shù)據(jù)的安全性是我們首要考慮的問題辛臊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市房交,隨后出現(xiàn)的幾起案子彻舰,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刃唤,死亡現(xiàn)場離奇詭異隔心,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)尚胞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門硬霍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辐真,你說我怎么就攤上這事须尚。” “怎么了侍咱?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵耐床,是天一觀的道長。 經(jīng)常有香客問我楔脯,道長撩轰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任昧廷,我火速辦了婚禮堪嫂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘木柬。我一直安慰自己皆串,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布眉枕。 她就那樣靜靜地躺著恶复,像睡著了一般。 火紅的嫁衣襯著肌膚如雪速挑。 梳的紋絲不亂的頭發(fā)上谤牡,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機(jī)與錄音姥宝,去河邊找鬼翅萤。 笑死,一個胖子當(dāng)著我的面吹牛腊满,可吹牛的內(nèi)容都是我干的套么。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼碳蛋,長吁一口氣:“原來是場噩夢啊……” “哼胚泌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起疮蹦,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茸炒,沒想到半個月后愕乎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阵苇,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年感论,在試婚紗的時候發(fā)現(xiàn)自己被綠了绅项。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡比肄,死狀恐怖快耿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情芳绩,我是刑警寧澤掀亥,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站妥色,受9級特大地震影響搪花,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嘹害,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一撮竿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧笔呀,春花似錦幢踏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至枯跑,卻和暖如春惨驶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敛助。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工粗卜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纳击。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓续扔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親焕数。 傳聞我的和親對象是個殘疾皇子纱昧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容