win10下apache superset的使用

官方文檔: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

pip install mysqlclient

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":{}}

 

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章