如何将Superset嵌入后台系统实践

.1. 前言

        此次实践过程全属个人学习,我选择了在window下安装Superset,并进行嵌入后台系统实践。对此进行实践过程总结,实践成果分享给大家,供大家参考,如果你有更好的想法,欢迎留言交流。

2.环境准备

2.1 安装python

        建议安装Python 3.4以上版本。Python 2.7 版本在windows 上存在各种编码问题。https://www.python.org/downloads/release/python-350/ 

        下载Windows x86-64 executable installer。直接使用exe的安装包即可,安装过程中选中增加到环境变量。

         检查:CMD下 分别运行python -V  和 pip-V。如果找不到命令,则需要添加python的安装目录到path环境变量下。

2.3 安装 virtualenv

        此步骤可选,直接安装的话跳到第四步。因为Superset需要安装的组件较多,最好是使用virtualenv独立一套python环境。

        在开发Python应用程序的时候,系统安装的Python3只有一个版本。所有第三方的包都会被pip安装到Python3的site-packages目录下。

  如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

         这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

安装命令:

pip install virtualenv


2.3 使用virtualenv

先在D盘建立d:\pythonVir 目录。

然后激活:

cd d:\pythonVir

virtualenv env//等待初始化完成...

//激活:

env\Scripts\activate


         激活之后的界面如下图,注意在命令行输入的左侧有(env)标记,这样我们的后续操作都会在env中生效,不会影响整体的pyhton环境。

2.4 安装VS2015

        Superset中依赖的一些库需要使用microsoft visual c++ 2010编译。

        根据说明应该是也可以安装Visual C++ 2015 Build Tools:  http://landinghub.visualstudio.com/visual-cpp-build-tools

2.5 安装sasl

        这里是个大坑,我之前直接安装superset一直安装不成功,报错(sasl.h 找不到)。

        解决办法是:通过http://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl下载对应的版本。

        比如咱们安装的python是3.6版本,系统是64位,就下载sasl-0.2.1-cp36-cp36m-win_amd64.whl。

如何将Superset嵌入后台系统实践_第1张图片

        另外,安装过程中出现“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文件进行下载即可。

如何将Superset嵌入后台系统实践_第2张图片

        安装方法:

        pip install F:\python_geohash-0.8.5-cp36-cp36m-win32.whl


3.安装Superset

        1)前置环境准备完毕后,开始安装superset.

pip install superset


执行成功界面:

如何将Superset嵌入后台系统实践_第3张图片

2)创建管理员账号:

        fabmanager create-admin --app superset


        执行过程界面如下:

如何将Superset嵌入后台系统实践_第4张图片

3)初始化数据库(windows下,先进入到 Python安装目录(或者virtualEnv的虚拟目录)下,lib\site-packages\superset\bin下)

执行命令:

Python  superset db upgrade


如何将Superset嵌入后台系统实践_第5张图片

4)加载例子(后续操作都需要在lib\site-packages\superset\bin下)

Python superset load_examples


5) 初始化角色和权限

Python superset init


6)启动服务,端口8088,使用 -p 更改端口号。

Python superset runserver -d


4.配置数据源

        Superset默认使用sqllite。支持以下数据库:

如何将Superset嵌入后台系统实践_第6张图片

        使用pip安装好数据库后,就可以在Web界面中,配置相关数据源了。

  数据库的连接字符串格式参见:

        http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#database-urls

5.登录试用

        登录superset后,我们就可以配置自己本地数据源了,进行数据查询以及展示。


如何将Superset嵌入后台系统实践_第7张图片

6.嵌入后台应用

6.1 修改配置文件

    修改superset中的config.py配置文件,将PUBLIC_ROLE_LIKE_GAMMA改为True。

    注释意思:

    授予公共角色与GAMMA角色相同的权限集。

    如果想让匿名用户查看,可以设置这里,在仪表盘对特定数据集的授权显示,也在这里设置。


如何将Superset嵌入后台系统实践_第8张图片

6.2 去掉X-Frame-Options限制


如何将Superset嵌入后台系统实践_第9张图片

        避免iframe跨站访问问题。

6.3 加入数据库权限这里加入所有数据库权限


如何将Superset嵌入后台系统实践_第10张图片

其中:

can explore on Superset为导出图表

can explore json on Superset为导出图表json

all database access on all_database_access访问所有数据库权限,也可以设置单个

6.4 iframe嵌入


如何将Superset嵌入后台系统实践_第11张图片

效果如下:


如何将Superset嵌入后台系统实践_第12张图片

你可能感兴趣的:(如何将Superset嵌入后台系统实践)