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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MiningAlgorithms

Python3刷题系列(二)

中文版:https://leetcode-cn.com/problems/3sum/

14020
来自专栏实时计算

机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables)

机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables)

11040
来自专栏架构师进阶

基础服务系列-Centos7 安装Node.js10

wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz

10220
来自专栏三言两语

Python的函数式编程

9430
来自专栏实时计算

Spark官方文档翻译(一)~Overview

http://spark.apache.org/docs/latest/index.html

13230
来自专栏自然语言处理(NLP)论文速递

《Python入门03》对于Python列表和元组你了解多少?

上一节中,主要介绍了python的变量和python的基本类型。那么本节将首先介绍序列的基本操作,然后具体python的列表和元组。

9540
来自专栏架构师进阶

基础服务系列-Centos7 安装Python3.7

Python 3.7.0 is the newest major release of the Python language, and it contain...

8920
来自专栏MiningAlgorithms

Python3爬虫实战(一):新闻标题及其URL

本文以'链节点'网站为例,实现新闻标题及其URL批量获取,并以字典的形式存入本地。

24520
来自专栏MiningAlgorithms

Data Structures and Algorithms Basics(006):Link list

5910
来自专栏实时计算

NoteBook学习(一)-------- Zeppelin VS Jupyter

提供了基于浏览器的交互式分析环境,数据科学家可以使用Python、Scala或者R进行交互式的开发,来设计分析模型,可视化展现分析结果。Notebooks也使得...

17530

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励