iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
2

其實有點忘了當時是下什麼關鍵字,
總之是有學到 Business Intelligence 這個詞,
然後就找到了 Metabase,覺得操作介面看起來不錯就先裝起來玩。

Metabase 算是初次體驗就有很好感受的一個系統,官方文件寫的很詳細:

官網 Document 連結點入 > Installation Guides
https://ithelp.ithome.com.tw/upload/images/20181010/20111638DBWFLmRJfQ.png

點選 Running on Docker 連結,就可進到詳細教學
https://ithelp.ithome.com.tw/upload/images/20181010/20111638HO9LBvImTu.png

以 Linode 系統為 Ubuntu 16.04 為環境設定,首先更新 ubuntu 套件

sudo apt-get update

再來是安裝 docker

sudo apt install docker.io

就可以輕輕鬆鬆一行指令啟動 docker 來體驗 Metabase 了!

docker run -d -p 3000:3000 --name metabase metabase/metabase

以 Linode 的 IP 為例,進入 http://YOUR_IP:3000/ ,
就可以看到 Metabase 正在進行設定,大概會耗時五分鐘左右
https://ithelp.ithome.com.tw/upload/images/20181010/20111638TLp1DnogbV.png

第一次體驗已經是今年04月多的時候了,
這次滿訝異竟然安裝指引有了中文(不是繁體中文看了還是不太習慣),
雖然管理介面 http://YOUR_IP:3000/admin/settings/general
可以選擇語言,但敘述上是以瀏覽器為主
https://ithelp.ithome.com.tw/upload/images/20181010/20111638gjtFzfkDnd.png

如果有需要改成英文,還是需要去調瀏覽器的設定:把英文設定在中文前方
(Google Chrome 可在網址欄輸入chrome://settings/languages)
https://ithelp.ithome.com.tw/upload/images/20181010/201116381tiQ834hY2.png

按照設定步驟完成後會是到管理頁面,可以自行新增 Database,
除了我最在意的 MySQL,也有支援 Google Analytics、MongoDB、
Amazon Redshift、Google BigQuery、H2、Postgres、SQLite、SQL Server、
Druid、CrateDB、Oracle、Vertica、Presto、SparkSQL,
詳細支援列表可參考官方文件

或者也可以先體驗預設的 Sample 資料,
要回到平常的資料操作與圖表頁面,可以利用右上角的 Exit admin
或是網址可改回 http://YOUR_IP:3000/

主要核心在「Ask a question」,
有對非技術人員十分友善的 Custom UI 操作介面,
或是可直接以 Native query 使用 SQL 語法取得資料,
https://ithelp.ithome.com.tw/upload/images/20181010/20111638ZdljsgpYDk.png

可以很容易透過 Custom 的操作介面,Filter、Group出想要的資料,
然後可以利用 View 來決定要計算哪些統計值,
最後再透過 Visualization 決定資料呈現的方式。
Metabase 的 Visualization 提供主要是基本的圖表,清單可參考官方文件
https://ithelp.ithome.com.tw/upload/images/20181010/20111638Bj0TwmdtVn.png

雖然是設計給非技術人員使用的 Custom 介面,但還能以 SQL 檢視其搜尋條件,
如果需要做更進階的操作,可以再回到 Native query 做更客製化的需求。
https://ithelp.ithome.com.tw/upload/images/20181010/20111638q82a8Cbn7i.png

此次再體驗 Metabase 的時候,發現一個很貼心的 X-Rays 功能,
在匯入 Database 的時候,就先分析一輪裡面的 table 以及其 field,
可以讓人連 Query 都還不需要,就可以很快知道這些 data 能組出哪些 information。

https://ithelp.ithome.com.tw/upload/images/20181010/20111638rq288dbvsn.png

https://ithelp.ithome.com.tw/upload/images/20181010/20111638Wu6eyTfBkm.png

在一個團隊中,
每個人在意的 Question 可能不同,要看的 Visualization 也不太一樣,
Dashboard 的方便之處就是大家可以組出自己在乎的儀表板,
但又同時確保大家核心的資料源組出的 Question 是相同的。

此份報表也是建立在 Dashboard 上,可以依照自身喜好來重新排列組合這些 Question。
Metabase 一列可細到18格,不過一個圖表最小是2x2,但算是切割的滿細了。
https://ithelp.ithome.com.tw/upload/images/20181010/20111638VXcSBqxzJ0.png
ps. Question 也可以很容易建立互動操作的 Filter,在看報表的當下隨意選擇區間來看不同的操作結果,而不需重新回到 Question 上重拉資料


總結

[優點]

  • 在 Database 匯入的時候就會先自動判斷相關欄位的屬性
  • 有非常平易近人的 Query 介面
  • 產生 Visualization 也能依照資料欄位先行決定較好的視覺化方式
  • 自動對你的資料做 X-Rays 分析,產生你可能有興趣的分析報表
    這些十分貼心以及友善的設計,對非技術人員算是一個很棒的輔助服務

[缺點]

Metabase 的優點對於技術人員來說,某些時候成了缺點,
有些太過貼心,以至於可修改的彈性不足

  • 在 Database 匯入的時候會先把原有名稱轉譯
    eg. product_id => Product Id 在欄位很多的時候,習慣用原有名稱搜尋就會找不到自己想要的資訊,有時還滿惱人的
  • 原先 db 若是設定 tinyint(1) 會自動轉譯成 Boolean
    => 如果使用 Custom Query 就無法用原來的數字值來當成 Filter 條件,只有 True/False 選擇,但實務上會滿常使用 tinyint 來代替文字類別以增進搜尋效率
    (eg. 0:male, 1:female)
    此問題也被討論過,但目前似乎還是有同樣狀況
  • 語言設定會自動依照瀏覽器的語言來配置
    => 如果要換語言,無法從介面調整,只能去調整瀏覽器的配置

ps. 文章同步發表於 Medium


上一篇
前言
下一篇
Superset 安裝與體驗
系列文
[BI工具] 以Redash為資料視覺化方案之選擇與實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
老漢
iT邦新手 5 級 ‧ 2019-05-02 09:59:02

您好,

請問一下,如果要做到 "單一資料源,多人共用,每個人有自己的報表呈現面板"

這樣的話要:
建一個 docker, 所有人都連那一台 (可能有提供類似帳號管控的機制,存每個人的報表)

還是每個人都要自己 own docker?

抑或是您有知道更適合的 solution,煩請給予指教

感謝您

看更多先前的回應...收起先前的回應...
marsw iT邦新手 5 級 ‧ 2019-05-02 21:42:29 檢舉

https://ithelp.ithome.com.tw/articles/10201225
Metabase, Superset, Redash 都有帳號控管系統,都可以做得到喔!
我自己最常用的Redash就是同一台服務,然後開不同帳號,每個人都有自己的 Query & Dashboard,如果只希望給自己,Query & Dashboard 不要 Publish 就好

老漢 iT邦新手 5 級 ‧ 2019-05-06 16:54:05 檢舉

感謝您的回應,

想再請問您是怎麼做管控的呢?

因為個人目前評估,希望能夠直接將公司內部系統的帳號,直接跟這些 solution 對接,不知這是否可行(技術上、管理上)

metabase 似乎是要付錢才能做這塊,另外兩個還在看...

marsw iT邦新手 5 級 ‧ 2019-05-07 14:21:51 檢舉

我目前在用的是Redash,因為是要綁email帳號,就直接幫同事用他們的公司email註冊,然後發連結/寄信給他們自行設定密碼
Redash 官方文件有說到可以整合 LDAP/AD,可以參考看看
https://redash.io/help/open-source/admin-guide/ldap-authentication

Redash, Superset 因為是自架,這些管控功能都是免費的。

老漢 iT邦新手 5 級 ‧ 2019-05-07 15:48:03 檢舉

感謝您的回覆,受教了~

老漢 iT邦新手 5 級 ‧ 2019-05-08 10:41:40 檢舉

抱歉再次叨擾,
想請教一下,這樣的 solution 能否做到 "資料的權限管控"?

因為所有 user 的資料都是存在一起的 (可以理解成都放在同一個table),但實際上每個 user只能看自己的資料

還是說,有甚麼適合的關鍵字可以找到這方面的資訊? (不然一直麻煩你也不好意思...

marsw iT邦新手 5 級 ‧ 2019-05-11 14:51:56 檢舉

因為你的需求細節我並沒有很了解,加上每個系統的設定不同,
建議是自己看個別的官方文件,
或是安裝起來試玩,會比較理解他們的方法
有些可以直接設定,或是利用一些組合技看看是否能達成自己希望的效果

我要留言

立即登入留言