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


此次实践过程全属个人学习,我选择了在window下安装Superset,并进行嵌入后台系统实践。对此进行实践过程总结,实践成果分享给大家,供大家参考,如果你有更好的想法,欢迎留言交流。建议安装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环境变量下。此步骤可选,直接安装的话跳到第四步。因为Superset需要安装的组件较多,最好是使用virtualenv独立一套python环境。  在开发Python应用程序的时候,系统安装的Python3只有一个版本。所有第三方的包都会被pip安装到Python3site-packages目录下。  如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。安装命令:
2.3 使用virtualenv

先在D盘建立d:pythonVir 目录。然后激活:激活之后的界面如下图,注意在命令行输入的左侧有(env)标记,这样我们的后续操作都会在env中生效,不会影响整体的pyhton环境。Superset中依赖的一些库需要使用microsoft visual c++ 2010编译。根据说明应该是也可以安装 Visual C++ 2015 Build Toolshttp://landinghub.visualstudio.com/visual-cpp-build-tools

这里是个大坑, 我之前直接安装superset一直安装不成功,报错(sasl.h 找不到)。解决办法是:通过 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文件进行下载即可。

安装方法:
1)前置环境准备完毕后,开始安装superset.执行成功界面:2)创建管理员账号:执行过程界面如下:3)初始化数据 (windows下,先进入到 Python安装目录(或者virtualEnv的虚拟目录)下,libsite-packagessupersetbin)执行命令:
4)加载例子(后续操作都需要在libsite-packagessupersetbin)5)初始化角色和权限6)启动服务,端口 8088, 使用 -p 更改端口号。Superset默认使用sqllite。支持以下数据库:MySQLpipinstallmysqlclientmysql://Postgrespipinstallpsycopg2postgresql+psycopg2://Prestopipinstallpyhivepresto://Oraclepipinstallcx_Oracleoracle://sqlite默认有了sqlite://Redshiftpipinstallsqlalchemy-redshiftpostgresql+psycopg2://MSSQLpipinstallpymssqlmssql://Impalapipinstallimpylaimpala://SparkSQLpipinstallpyhivejdbc+hive://Greenplumpipinstallpsycopg2postgresql+psycopg2://Athenapipinstall”PyAthenaJDBC>1.0.9″aws 香港云主机athena+jdbc://Verticapipinstallsqlalchemy-vertica-pythonvertica+vertica_python://ClickHousepipinstallsqlalchemy-clickhouseclickhouse://使用pip安装好数据库后,就可以在Web界面中,配置相关数据源了。  数据库的连接字符串格式参见:http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#database-urls
登录superset后,我们就可以配置自己本地数据源了,进行数据查询以及展示。
修改superset中的config.py配置文件,将PUBLIC_ROLE_LIKE_GAMMA改为True注释意思:授予公共角色与GAMMA角色相同的权限集。 如果想让匿名用户查看,可以设置这里,在仪表盘对特定数据集的授权显示,也在这里设置。避免iframe跨站访问问题。其中:can explore on Superset为导出图表 can explore json on Superset为导出图表json all database access on all_database_access访问所有数据库权限,也可以设置单个
效果如下:为什么需要重定向呢?这里主要是为了后台应用隐藏superset的图表链接,防止被扫描到后,恶意使用;只要在后台应用重新写一个具有权限控制的请求链接,重新定向到superset的图表链接,这样就能防止数据泄露出去。后台代码:那么,对于链接地址:/chart/getDemoDashboardUrl,在后台就可以进行权限管理。以上已经完全可以把superset中的图表嵌入到后台应用系统中了,但是怎么能够实现参数传递呢?现在,我在这里把实现过程整理出来,跟着试验样例看它怎么实现的。研究一下superset图表提供出去的链接地址,就可以发现,已json作为参数传递的。如下:其中,标注的就是过滤条件的参数配置,于是提取出来在代码中做相应的修改:修改后界面如下:输入条件,姓名:Amy,性别选择:girl,点击查询如下:9.结束语以上实践为预研superset可视化工具的过程整理,编写的样例都很简陋。如果实际应用到项目中去,按照上诉原理,重新设计一套可拓展,易使用的架构,将其打磨成可配置化的产品工具。这里先留下伏笔,暂不阐述,如果你有好的想法,欢迎留言交流。

相关推荐: CSS中motion path模块怎么用

这篇文章主要讲解了“CSS中motion path模块怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS中motion path模块怎么用”吧!说明1、利用这个规范规定的属性,我们可以控制元素按照特定的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/25 15:41
Next 07/25 15:41

相关推荐