Superset 安裝與體驗

Mars Weng
MarsW-Redash
Published in
6 min readOct 11, 2018

由於 Metabase 在技術需求上有不夠彈性的原因,
因此就轉往聽聞滿多人使用的 Superset,
加上又是 Apache 的孵化專案,應該會還不錯。

但安裝過程上就不像 Metabase 那麼順利,
就算按照官方文件步驟,還是會碰到不少狀況,
但基本上靠著 Google 大神也都能解決,也記錄一下安裝過程:

以 Linode 系統為 Ubuntu 16.04 為環境設定,

1. 更新 ubuntu 套件

sudo apt-get update

2. 安裝 virtualenv 與 python 相關環境
Superset 是基於 Python 開發的,
因此不同 Python 的版本會有不同的安裝方式
這邊是以 Ubuntu 16.04 ,預設是python2.7x

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-devsudo apt-get install build-essential libssl-dev libffi-dev python3.5-dev python-pip libsasl2-dev libldap2-devsudo apt-get install libmysqlclient-devpip install virtualenv

3. 建立名為 venv 的虛擬環境(virtualenv)

virtualenv venv

4. 進入 virtualenv
要有出現 (venv) root@localhost:~# 之類的代表是在 virtualenv 之中

. ./venv/bin/activate

5. 安裝 Superset

pip install "markdown<3.0.0" superset

基本上到這部就算是安裝成功,但這次還是遇到了些問題,
多安裝 python3 的 flask-appbuilder 才解決

sudo apt-get install python3-pip
pip3 install flask-appbuilder

6. 設定管理者帳戶

fabmanager create-admin --app superset

7. 設定db

superset db upgrade

8. 建立測試資料集
注意可用memory要夠,
不然會出現 ValueError: Could not reserve memory block

superset load_examples

9. 權限控管初始化

superset init

10. 啟動 Superset

superset runserver

到此基本上就能成功以 http://YOUR_IP:8088/ , 進入 Superset
如果遇到 mysql 連線相關問題,可多安裝:

sudo apt-get install python-mysqldb 
pip install mysqlclient

Datasource 的部分有 csv、Druid,
而 Database 是以 「SQLAlchemy URI」來串接,
大部分 SQL 相關的 source 都能支援:Postgresql、MySQL、Oracle、Microsoft SQL Server、SQLite;
但也代表著其他類型的 Datasource像是 GA、MongoDB 就無法了。

而在 Superset 要撈出資料可在 SQL Lab,
直接利用 SQL 語法處理,再進行視覺化

SQL 撈取資料
產生圖表前先選擇需要的 dimension 以及 運算方式
圖表主要介面 (註1)

可以發現 Superset 有許多技術人員喜歡的功能:

  • 匯出成 json, csv
  • 嵌入語法
  • 不只有常用的統計值Sum , Avg,也可以自訂SQL

從圖註1點下「 Visualization Type 」
可以看到 Superset 最為人所知~
有超多的視覺化圖表可使用(甚至還有 3D 的)

註2

至於 Dashboard 部分,
同樣也是可以把各種圖表排列組合成自己想要的樣式

這點也可看到 Superset 有非常彈性的設計,
除了平常的 Row, Column 排版,還有 Tab 的功能
(Tab 同樣也能支援 Row, Column….)

總結

[優點]

  • 豐富的圖表可供選擇
  • 有很高的彈性可以讓技術人員調整設定

[缺點]

  • Datasource只支援SQL系列
  • 缺乏 UX 體驗
    可以從 SQL Lab -> Visualization 或 Chart -> Add a new record 來增加圖表,然而 SQL Lab -> Visualization 在勾選哪些欄位要進到圖表的步驟,可選擇的圖表很少(圖註1),但下一步進到 Visualization 的時候(圖註2)卻又是全圖表。
  • 圖表多有 Time 的設定限制
    但像是 Box Plot 這種是想看到數據分散的情況的圖表,不見得資料源會有時間的維度,等於因此受限制。

此為系列文章,傳送門在此

--

--