請啟用 JavaScript 來查看內容

[Metabase 系列] Metabase 簡介與安裝教學,BI 工具推薦

·

前言

最近因緣際會下,接觸到 Metabase 這項 BI (Business Intelligence) 工具,跟有名的 Tableau 和 Power BI 類似,雖然 Metabase 相對來說比較簡潔,但其實大部分常見的功能都有,重點它是免費的!!


Metabase 系列教學文章:

  1. Metabase 簡介與安裝教學,BI 工具推薦《本篇》
  2. 建立提問 (Question) 與各式圖表 (Chart) 教學
  3. 建立 Dashboard (資訊看板、儀表板) 教學
  4. Metabase API 使用教學,輕鬆串接自己的系統

本篇文章會先介紹 Metabase 的特點,再來手把手教學如何使用 Docker 的方法來安裝 Metabase。


* 本文使用 Metabase 版本為:v0.47.0


圖片來源:Metabase 官網
圖片來源:Metabase 官網


Metabase 簡介

Fast analytics with the friendly UX and integrated tooling to let your company explore data on their own.

Help your team answer their own questions about data in just 5 minutes—no SQL required.

Metabase 是一種 BI (Business Intelligence) 工具,可以繪製圖表、Dashboard,或者探索你的資料,提供 UI 圖形化的查詢 (關聯、篩選、聚合、排序…等等),方便從沒學習過 SQL 的人使用,上手快速,也較容易推廣到非程式專業的人員使用。

Metabase 擁有容易使用的操作、漂亮的 UI 畫面
Metabase 擁有容易使用的操作、漂亮的 UI 畫面

價格

Metabase 有分為三種方案:"開源"、"專業版"、"企業"。
並可以選擇部署在他們的 Server 上(不用自己管理),或自己建置在自己的 Server(當然就要自己管理)。
如果是"開源"並建置在自己的 Server 是完全免費的~

詳細比較在這:https://www.metabase.com/pricing/#compare
我覺得開源免費的方案其實就夠用了。

Metabase 價格方案
Metabase 價格方案

Metabase License:https://www.metabase.com/license/


提問(圖表) & 資訊看板(Dashboard)

網頁 UI 圖形化的查詢(關聯、篩選、聚合、排序…等等),方便從沒學習過 SQL 的人使用。
(當然它也提供自己寫 SQL 的方式)

雖然提供的圖表樣式沒有到非常多,但常見的樣式都有,其實一般用途有這些都足夠了。

提問(圖表)
提問(圖表)
提問(圖表) 編輯器
提問(圖表) 編輯器

當你做好多張圖表之後,可以使用 "資訊看板(Dashboard)" 將圖表放在同一個頁面中展示,並還可以加上篩選框、文本卡片加強。

資訊看板(Dashboard)
資訊看板(Dashboard)

資訊看板(Dashboard) 在全螢幕展示時,也可以切換為深色主題:

資訊看板(Dashboard) 深色主題
資訊看板(Dashboard) 深色主題


除了要登入才能觀看(編輯)提問、Dashboard,它也可以個別將其公開分享出來,不需要登入就可以查看,需要分享給其他人非常方便。

公開分享 提問、Dashboard
公開分享 提問、Dashboard

Database 資料庫

製作圖表 & Dashboard 的源頭就是資料來源,在 Metabase 官方提供以下幾種可以連接 Database 的種類:

或者由官方認證的合作夥伴:


可以看到比較有名的 DB 都有包含在裡面了。

而資料來源除了連接 DB,在最新的 0.47.0 版本也提供讓使用者自行上傳 CSV 檔案的方式。


登入方式

除了一般的 "email&密碼" 之外,也提供 "Google帳號登入"、"LDAP" 的方式,如果公司內部有在使用 LDAP/AD 驗證登入的話,那 Metabase 就可以也採用同樣 LDAP 的方式,員工就不需要還要註冊(記憶)另外一組帳密,還是挺方便的。

Metabase 登入方式
Metabase 登入方式

權限設定

可以針對 資料庫(甚至細到表格)、資料夾(集合) 去做權限的區分、控管。

Metabase 權限設定
Metabase 權限設定

API

還有一點我覺得很不錯的,因為 Metabase 前後端是透過 WebAPI 溝通(幾乎大部分你在網站上的操作,都可以呼叫 API 來完成),所以你假如會自己寫程式,或有專案想跟 Metabase 整合,就可以透過 WebAPI 跟 Metabase 互動。

Metabase API 使用教學:https://www.metabase.com/learn/administration/metabase-api
Metabase API 文件:https://www.metabase.com/docs/latest/api-documentation


更多功能

其他還有 "導出成 csv、xlsx、json"、"快取查詢結果"、"設定警告提醒"、"透視(X-RAY)"、"連接Slack"…等等功能,有興趣的可以自行摸索,或等待我之後文章分享。


安裝 Metabase

Metabase 有好幾種安裝方式(官方網站都有教學文章),我這邊就以最簡單的 Docker 方法來示範。

官方安裝文件:https://www.metabase.com/docs/latest/installation-and-operation/start


Docker Run

首先確認電腦有安裝 Docker (網路上有許多文章可以參考,這邊就不贅述了)。

並且執行以下指令來 "下載 image"、"啟動 container",簡簡單單就將 Metabase 跑起來了。

1
2
3
4
5
# 從 Docker Hub 上下載 metabase image
docker pull metabase/metabase:latest

# 將 image 建立並啟動 container
docker run -d -p 3000:3000 --name metabase metabase/metabase
安裝 Metabase,使用 docker run
安裝 Metabase,使用 docker run

(下方還有說明使用 Docker Compose 的作法)


啟動後,接下來要做一些初始化設定。

打開瀏覽器至 http://localhost:3000,會出現這個歡迎畫面 (雖然是簡體中文,但下一步我們可以改語言)。

Metabase 安裝後,初始歡迎畫面
Metabase 安裝後,初始歡迎畫面

這邊設定預設語言。

Metabase 安裝後,初始設定畫面 (選擇語言)
Metabase 安裝後,初始設定畫面 (選擇語言)

接下來是一些其他設定,這些在之後都可以進入管理員後台修改。

DB 可以先不用新增,Metabase 有預設的 Sample 資料可以讓我們體驗。

Metabase 安裝後,初始設定畫面
Metabase 安裝後,初始設定畫面

完成後會進到首頁,到這邊就算安裝&初始化完成。

Metabase 首頁
Metabase 首頁

從右上角的設定按鈕,可以進入管理員後台做一些系統方面的設定,包含帳號管理、全線管理、資料庫設定……

Metabase 右上角設定
Metabase 右上角設定
Metabase 管理員設定
Metabase 管理員設定


Docker Compose

除了使用 docker run,我們也可以改使用 Docker Compose 的方式來啟動,並且把 Metabase 本身的 DB 改至另外的 PostgreSQL。

* Metabase 本身的 DB 預設是使用附帶的嵌入式 H2,但對於正式生產環境建議使用另外的 DB,目前支援 PostgreSQL、MySQL、MariaDB。(官方說明)


以下是 docker-compose.yml 的範例,請依照自己的需求再做修改:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
version: '3'

services:
  metabase:
    image: metabase/metabase:latest
    container_name: metabase
    restart: always
    # volumes:
    #   - ./metabase/plugins:/plugins
    ports:
      - 3000:3000
    environment:
      MB_DB_TYPE: postgres
      MB_DB_HOST: postgres
      MB_DB_PORT: 5432
      MB_DB_DBNAME: metabase
      MB_DB_USER: admin
      MB_DB_PASS: password
    networks:
      - metanet
    depends_on:
      - postgres
  postgres:
    image: postgres:latest
    container_name: postgres
    # ports:
    #   - 30003:5432
    restart: always
    volumes:
      - ./postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: metabase
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: password
    networks:
      - metanet

networks:
  metanet:
    driver: bridge

建好我們 mount 出來的資料夾(如上範例是 ./postgres),並在 docker-compose.yml 的路徑下執行指令啟動:

1
2
3
4
5
# Create and start containers
docker-compose up -d

# Stop and remove containers, networks
docker-compose down
Metabase 管理員設定
Metabase 管理員設定

後續初始化的內容與上方一樣。


結語

Metabase 系列」後續的文章我預計會陸續介紹 "提問(圖表)"、"資訊看板(Dashboard)"、"權限" 等等功能。

如果對於 Metabase 有興趣的讀者,記得『IT空間』FB 粉專要追蹤起來,才不會錯過最新的發文通知哦~🔔




參考:
Metabase 官方網站
Metabase 官方文件
Metabase 官方 GitHub


仰慕對手是無法超越他們的,我們是來超越的,是來登上第一的,
今天就好,把那些仰慕捨棄掉吧,只要想著勝利就好。

—— 大谷翔平 (MLB 棒球選手)


🔻 如果覺得喜歡,歡迎在下方獎勵我 5 個讚~
分享

Jia
作者
Jia
軟體工程師 - Software Engineer