官方文檔:http://superset.apache.org/
一、環境准備
安裝python3即3.4以上版本
二、python創建一個虛擬環境用來作為superset的容器
-pip3 install virtualenv
創建虛擬環境:
-(1)virtualenv env_supersetobj(創建虛擬環境)
-(2)virtualenv env_supersetobj(創建純凈環境)
-(3)virtualenv --system-site-packages env_supersetobj(創建環境,繼承原安裝的模塊)
激活該虛擬環境:
-windows進到目錄里,的Script文件夾輸入:activate
-linux:soruse env1/Script/activate
退出虛擬環境:
-deactivate
在pycharm中使用虛擬環境
-files--settings--Project--Project Interpreter--add選擇虛擬環境路徑下的python.exe即可
三、安裝VS2015
Superset中依賴的一些庫需要使用microsoft visual c++ 2010編譯。
根據說明應該是也可以安裝 Visual C++ 2015 Build Tools:
http://landinghub.visualstudio.com/visual-cpp-build-tools
四、依賴包安裝失敗
這里是個大坑, 我之前直接安裝superset一直安裝不成功,報錯,和pandas的版本有關
解決辦法是:通過 http://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl 下載對應的版本
比如咱們安裝的python 是3.6版本,系統是64位,就下載sasl-0.2.1-cp36-cp36m-win_amd64.whl。
另外,安裝過程中出現“ Failed building wheel for xxx”的解決辦法如下:
出現原因:缺失相應的whl文件。
解決辦法:下載並安裝對應的whl文件。
例如,出現“ Failed building wheel for python_geohash”則下載相應python版本的python_geohash文件。
比如Python3.6版本,則找到python_geohash-0.8.5-cp36-cp36m-win_amd64.whl文件進行下載即可。
pip install F:\python_geohash-0.8.5-cp36-cp36m-win32.whl
五、安裝superset
1.安裝
pip install superset
2.創建管理員賬號
fabmanager create-admin --app superset
3.初始化數據庫
先進入到 Python安裝目錄(或者virtualEnv的虛擬目錄)下,lib\site-packages\superset\bin下
python superset db upgrade
4.加載例子
后續操作都需要在lib\site-packages\superset\bin下
python superset load_examples
5.初始化角色和權限
python superset init
6.啟動服務
端口 8088, 使用 -p 更改端口號
python superset runserver -d
六、配置數據源
Superset默認使用sqllite。支持以下數據庫:
MySQL |
mysql:// |
|
Postgres |
pip install psycopg2 |
postgresql+psycopg2:// |
Presto |
pip install pyhive |
presto:// |
Oracle |
pip install cx_Oracle |
oracle:// |
sqlite |
默認有了 |
sqlite:// |
Redshift |
pip install sqlalchemy-redshift |
postgresql+psycopg2:// |
MSSQL |
pip install pymssql |
mssql:// |
Impala |
pip install impyla |
impala:// |
SparkSQL |
pip install pyhive |
jdbc+hive:// |
Greenplum |
pip install psycopg2 |
postgresql+psycopg2:// |
Athena |
pip install "PyAthenaJDBC>1.0.9" |
awsathena+jdbc:// |
Vertica |
pip install sqlalchemy-vertica-python |
vertica+vertica_python:// |
ClickHouse |
pip install sqlalchemy-clickhouse |
clickhouse:// |
使用pip安裝好數據庫后,就可以在Web界面中,配置相關數據源了。
數據庫的連接字符串格式參見:http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#database-urls
七、選擇charts
選擇數據源之后添加數據源下的數據表。
然后配置圖表,可選樣式顏色等等。通過看板可以將多個圖表集合。
八、嵌入后台應用
1.修改配置文件
修改superset中的config.py配置文件,將PUBLIC_ROLE_LIKE_GAMMA改為True。
注釋意思:
授予公共角色與GAMMA角色相同的權限集。
如果想讓匿名用戶查看,可以設置這里,在儀表盤對特定數據集的授權顯示,也在這里設置。
2.去掉X-Frame-Options限制避免iframe跨站訪問問題
九、安全
安全->角色列表
權限釋義:
can explore on Superset為導出圖表
can explore json on Superset為導出圖表json
all database access on all_database_access訪問所有數據庫權限,也可以設置單個
十、獲取並使用iframe展示html
1.配置好之后從superset右上角 “</>” 按鈕獲得url地址
2.然后在所要展示的頁面中
<iframe width="600" height="400" seamless frameBorder="0" scrolling="no" src="xxxxxxxxxxxx" > </iframe>
3.重定向superset圖表URL
為什么需要重定向呢?這里主要是為了后台應用隱藏superset的圖表鏈接,防止被掃描到后,惡意使用;只要在后台應用重新寫一個具有權限控制的請求鏈接,重新定向到superset的圖表鏈接,這樣就能防止數據泄露出去。
4.動態傳參交互
superset圖表提供出去的鏈接地址,是以json作為參數傳遞的。
如:
form_data={"datasource":"3__table","viz_type":"line","slice_id":63,"granularity_sqla":"ds","time_grain_sqla":null,"since":"100 years ago","until":"now","metrics":[{"aggregate":"SUM","column":{"column_name":"num_california","expression":"CASE WHEN state = 'CA' THEN num ELSE 0 END"},"expressionType":"SIMPLE","label":"SUM(num_california)"}],"adhoc_filters":[{"expressionType":"SIMPLE","subject":"gender","operator":"==","comparator":"boy","clause":"WHERE","sqlExpression":null,"fromFormData":true,"filterOptionName":"filter_gtzm93u9ocq_9sy5vd5ocfg"},{"expressionType":"SIMPLE","subject":"name","operator":"LIKE","comparator":"Aaron","clause":"WHERE","sqlExpression":null,"fromFormData":true,"filterOptionName":"filter_6cgdixdoh3_5wrgyuorwoa"}],"groupby":["name"],"limit":"10","timeseries_limit_metric":{"aggregate":"SUM","column":{"column_name":"num_california","expression":"CASE WHEN state = 'CA' THEN num ELSE 0 END"},"expressionType":"SIMPLE","label":"SUM(num_california)"},"order_desc":true,"contribution":false,"row_limit":50000,"color_scheme":"bnbColors","show_brush":"auto","show_legend":true,"rich_tooltip":true,"show_markers":false,"line_interpolation":"linear","x_axis_label":"","bottom_margin":"auto","x_ticks_layout":"auto","x_axis_format":"smart_date","x_axis_showminmax":false,"y_axis_label":"","left_margin":"auto","y_axis_showminmax":false,"y_log_scale":false,"y_axis_format":".3s","y_axis_bounds":[null,null],"rolling_type":"None","time_compare":[],"num_period_compare":"","period_ratio_type":"growth","resample_how":null,"resample_rule":null,"resample_fillmethod":null,"annotation_layers":[],"compare_lag":"10","compare_suffix":"o10Y","markup_type":"markdown","metric":"sum__num","where":"","url_params":{}}