apache商業智能系統superset使用報告

最近公司有bi的需求,安排我收集了阿里雲的quickbi、apache、airbnb的supersetd、和metabase系統的資料,我的以爲superset還不錯,就來了個簡單上手了html

supeprset是airbnb開源到apache的商業智能項目,目前正在apache裏孵化,之後可能成爲apache的頂級項目mysql

項目地址:github.com/apache/incu…git

bi數據顯示面板由數據圖表組成,數據圖表裏的數據來自數據庫裏的表,數據庫裏的表來自配置的數據源,關係以下所示 github

建立數據源

而後在添加數據源界面填上數據庫的名稱、鏈接參數 sql

單擊保存便可

可選:Expose in SQL Lab單選表示是否能夠在Sql Editor調試這個數據源,建議勾上docker

superset支持的完整的數據源列表參考:superset.incubator.apache.org/installatio…shell

經常使用的mysql snakeflow druid都支持數據庫

基於數據源建立數據表

數據源建好後,只是表示有可選的數據使用了,具體使用數據源中的那張表須要在superset中建立數據表來表示apache

而後選擇數據源和填寫須要操做的表 flask

最後保存就ok了

基於數據表建立圖表

在superset中有了數據表後,就能夠從這個數據表讀取數據生成圖表了 好比從下面這個mysql的word_freq表中生成圖表

操做以下

而後選擇圖表使用的數據表,和須要顯示成的效果,這裏案例就使用表格簡單的把數據顯示出來了

單擊"Create new chart"進行確認進入到表格編輯頁面
按照上圖操做後,單擊Run Query按鈕就能夠看到生成的數據表格了

這個superset能夠生成複雜的查詢

而後對這個圖表進行保存

就能夠在面板中使用這個圖表了

基於圖表建立bi面板

通常一個bi面板由多個圖表組成,能夠提早建立多個圖表,而後在bi面板中組合使用

而後進入到這個dashboard的編輯模式就能夠把圖表添加到這個dashboard了

分享面板能夠生成訪問這個dashboard的url,方便進行交流

用戶和權限管理

superset提供了基於角色的權限管理

能夠看到這個superset提供了一大堆內置的權限可使用,權限涉及到兩張表:ab_permission、ab_view_menu

superset使用flask內置的has_access, has_access_api裝飾實現權限檢查 在incubator-superset/superset/security.py中繼承了flask默認的權限處理,並在/incubator-superset/superset/init.py註冊成了默認的權限處理器

查看執行過的sql語句

能夠在"Manage" > "Queries"中查看到執行過的sql語句列表,詳情就是具體的sql語句了,顯示效果以下

能夠看到被執行的完整的sql語句

在sql editor中調試sql語句

目錄結構

能夠看到這個superset源碼的目錄結構是很是清晰的。

表結構

superset截至本文寫完共有51張表,部分效果以下

能夠看到這些表的命名仍是很是簡單、容易理解的

一些注意的點

鏈接mysql必須指定字符集,不然中文亂碼,好比mysql+mysqldb://root:root@127.0.0.1/word_freq?charset=utf8

source venv/bin/activate
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements-dev.txt

FLASK_ENV=development FLASK_APP=superset:app flask run -p 8098 --with-threads --reload --debugger --host=0.0.0.0
複製代碼

可使用docker啓動這個superset,參考:superset.incubator.apache.org/installatio…

參考資料

  1. airbnb.io/projects/su…
  2. github.com/apache/incu…
  3. www.jianshu.com/p/b02fcea7e…
相關文章
相關標籤/搜索