最近在公司做一個(gè)數(shù)據(jù)可視化相關(guān)的項(xiàng)目,使用了Airbnb開源維護(hù)的企業(yè)級(jí)BI數(shù)據(jù)平臺(tái)superset,相較于tableau這種收費(fèi)的商業(yè)軟件,Superset是開源維護(hù)的,同時(shí)圖表的種類和顏值普遍偏高。以下效果圖:



以及另外幾十種圖表格式

話不多說,開始搭建吧。
1.前期準(zhǔn)備
Linux服務(wù)器CentOS7(Windows系統(tǒng)的不作概述 一般缺少的whl文件在 此網(wǎng)站
可以下載
python3.+版本(此處我使用的是3.6.2版本)
yum安裝 163鏡像
2.安裝環(huán)境
2.1 安裝python3.6.2
2.2.安裝編譯環(huán)境
sudo yum install gcc gcc-c++ libffi-devel openssl-devel libsasl2-devel openldap-devel
2.3 更新pip及工具 使用python3下載
####pip3 install --upgrade setuptools pip
2.4 安裝virtualenv虛擬環(huán)境
pip3 install virtualenv
2.5 進(jìn)入虛擬環(huán)境
. ./venv/bin/activate
2.6 使用豆瓣鏡像源安裝superset
pip3 install superset -i https://pypi.douban.com/simple
問題描述1:
ImportError: No module named flask_compress/ext/XXX
這是因?yàn)閟uperset默認(rèn)的flask版本要>1.0同時(shí)又不能太高,其他組件同理,一般都是版本過低或者過高
卸載原有的flask并且安裝1.0版本的flask
pip3 uninstall flask
pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com flask==1.0
問題描述2:
Was unable to import superset Error:No module named '_sqlite3'
這是系統(tǒng)默認(rèn)的python解釋器版本2.7與3.6沖突 網(wǎng)上也有解決方案修改默認(rèn)的解釋器版本或者對(duì)當(dāng)前編譯環(huán)境加入sqlite3模塊
2.7 創(chuàng)建管理員用戶名和密碼
fabmanager create-admin --app superset
問題描述:No module named '_sqlite3'
解決方案同上 其實(shí)是上一步出了問題
2.8 初始化Superset數(shù)據(jù)庫
superset db upgrade
2.9 裝載官方提供的系統(tǒng)案例
superset load_examples
2.10 初始化
superset init
2.10 啟動(dòng)superset
superset run -p 8088 --with-threads --reload --debugger
3.啟動(dòng)superset,連接mysql數(shù)據(jù)源,根據(jù)表創(chuàng)建Charts
在瀏覽器輸入IP:8888或者IP:8888/login/
出現(xiàn)如下界面

3.1 登陸
右上角選擇中文,輸入剛才的用戶名和密碼
3.2 安裝連接mysql數(shù)據(jù)源的數(shù)據(jù)庫依賴
pip install mysqlclient
3.3 連接數(shù)據(jù)源

點(diǎn)擊增加過濾條件旁邊的+號(hào)

連接數(shù)據(jù)庫

連接數(shù)據(jù)表,點(diǎn)擊右上角的增加過濾條件

選擇數(shù)據(jù)庫 輸入表名

點(diǎn)擊數(shù)據(jù)表 進(jìn)入根據(jù)表創(chuàng)建Charts的界面 以餅狀圖為例:
選擇數(shù)據(jù)源 圖標(biāo)類型 時(shí)間區(qū)間 指標(biāo)數(shù)值 分組依據(jù)(這里是性別)

執(zhí)行Query: 點(diǎn)擊Save保存

到這里,BI數(shù)據(jù)平臺(tái)生成圖標(biāo)已經(jīng)完成了。以下是將圖標(biāo)引入自己的項(xiàng)目
4.將生成的餅狀圖變?yōu)閔tml,嵌入自己項(xiàng)目
修改superset中的config.py配置文件
將PUBLIC_ROLE_LIKE_GAMMA改為True
支持圖表跨域

在Charts中找到剛才保存的圖標(biāo) 點(diǎn)擊右上尖括號(hào) 復(fù)制iframe的代碼

嵌入我們自己項(xiàng)目中的iframe標(biāo)簽中即可。
嵌入圖表Demo網(wǎng)址瀏覽:http://www.songlei.online:8777