Superset 安裝與體驗
由於 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 語法處理,再進行視覺化
可以發現 Superset 有許多技術人員喜歡的功能:
- 匯出成 json, csv
- 嵌入語法
- 不只有常用的統計值Sum , Avg,也可以自訂SQL
從圖註1點下「 Visualization Type 」
可以看到 Superset 最為人所知~
有超多的視覺化圖表可使用(甚至還有 3D 的)
至於 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 這種是想看到數據分散的情況的圖表,不見得資料源會有時間的維度,等於因此受限制。
此為系列文章,傳送門在此