博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
巧用Superset大数据分析平台搞定各类图表
阅读量:5943 次
发布时间:2019-06-19

本文共 2924 字,大约阅读时间需要 9 分钟。

前言

其实大数据图表展示的这类平台有很多,Superset是其中之一,最近有个需求对各类图表展示的开发较多,索性将工作量交给这个平台。

介绍

Superset的中文翻译是快船,而Superset其实是一个自助式数据分析工具,它的主要目标是简化我们的数据探索分析操作,它的强大之处在于整个过程一气呵成,几乎不用片刻的等待。

部署

docker方式(推荐)

docker pull amancevice/caraveldocker run --name caravel -d -p 8088:8088 amancevice/caraveldocker exec -it caravel demo#系统会提示设置管理员复制代码

具体效果如下

[root@localhost ~]# docker exec -it ac94ec4d9469 demoUsername [admin]: adminUser first name [admin]: adminUser last name [user]: aEmail [admin@fab.org]: aPassword: Repeat for confirmation:******此处省略几百行复制代码

centos系统

yum makecachesudo easy_install -i http://pypi.douban.com/simple/ pipsudo easy_install pipsudo yum install gcc libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel复制代码
#安装Superset pip install superset #创建管理员用户名和密码 fabmanager create-admin --app superset #初始化Superset superset db upgrade #装载初始化样例数据 superset load_examples #创建默认角色和权限 superset init #启动Superset superset runserver复制代码

数据库依赖

数据库 命令 链接方式
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 redshift+psycopg2://
MSSQL pip install pymssql mssql://
Impala pip install impyla impala://
SparkSQL pip install pyhive jdbc+hive://

改造(docker环境)

因为默认是有权限控制的,即使分享出去的图表也需要登录用户才能看到,那如何做到不登陆用户也能查看图表呢,于是改造之路就开始了。

方法一:改源码

刚开始没找到方法,不得不从从源码入手解开权限,

/superset/views/core.py文件922行删掉 @has_access_api注解

@log_this    @has_access_api    @expose("/explore_json/
/
/") def explore_json(self, datasource_type, datasource_id): try: viz_obj = self.get_viz( datasource_type=datasource_type,复制代码

1006行删掉 @has_access_api注解

@log_this    @has_access    @expose("/explore/
/
/") def explore(self, datasource_type, datasource_id): form_data = self.get_form_data()复制代码

在1017行加入

viz_obj.datasource.("all_datasource_access")复制代码

增加库的访问权限,可能还有些地方要改,该方法改了源码,侵入性强,不推荐。

方法二:改配置(推荐)

/superset/config.py第127行

# ---------------------------------------------------# Roles config# ---------------------------------------------------# Grant public role the same set of permissions as for the GAMMA role.# This is useful if one wants to enable anonymous users to view# dashboards. Explicit grant on specific datasets is still required.PUBLIC_ROLE_LIKE_GAMMA = False复制代码

PUBLIC_ROLE_LIKE_GAMMA改为True,

注释意思
授予公共角色与GAMMA角色相同的权限集。
如果想让匿名用户查看,可以设置这里
在仪表盘对特定数据集的授权显示,也在这里设置。

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

Public    [can explore on Superset, all database access on all_database_access, can explore json on Superset]复制代码

其中

can explore on Superset为导出图表
can explore json on Superset为导出图表json
all database access on all_database_access访问所有数据库权限,也可以设置单个

iframe嵌入

选择某个切片,点右上角</>,复制出iframe
复制代码

将iframe放入任意html内即可打开。

更多样式

总结

借助superset可以帮助我们可视化进行数据库分析,支持导出导入sql语句,支持各种数据库,在图表展现方面是个不错的框架。

转载地址:http://bgwxx.baihongyu.com/

你可能感兴趣的文章
Numpy中的random模块中的seed方法的作用
查看>>
史上最全的数据库面试题,不看绝对后悔
查看>>
Chrome百度不显示中文字体
查看>>
用java数组模拟登录和注册功能
查看>>
javaScript实现归并排序
查看>>
关于jsb中js与c++的相互调用
查看>>
串结构练习——字符串匹配
查看>>
CF Round #426 (Div. 2) The Useless Toy 思维 水题
查看>>
UVA 122 Trees on the level 二叉树 广搜
查看>>
POJ-2251 Dungeon Master
查看>>
tortoisesvn的安装
查看>>
大S变"汪太"!与汪小菲注册结婚
查看>>
我是怎么使用最短路径算法解决动态联动问题的
查看>>
URAL 1353 Milliard Vasya's Function DP
查看>>
速读《构建之法:现代软件工程》提问
查看>>
Android onclicklistener中使用外部类变量时为什么需要final修饰【转】
查看>>
django中聚合aggregate和annotate GROUP BY的使用方法
查看>>
TFS简介
查看>>
docker管理平台 shipyard安装
查看>>
安装django
查看>>