superset定制化配置修改总结
目录
前言
配置总结
1、需要想用iframe引入dashboard时, URL 参数可用于修改仪表板的呈现方式,standalone=0
2、如果对页面样式有调整,可以在修改dashboard的css属性
3、Superset联动过滤器配置展示
4、控制筛选器条(Filter Bar)水平布局的配置项
5、开放Superset提供的REST API swagger
6、CSV文件导出乱码问题
7、如何将Superset图表通过iframe嵌入Html网页
往期回顾
前言
Apache Superset作为一个功能强大的开源数据探索和可视化平台,提供了丰富的配置选项来定制化用户体验。下面是superset一些定制化配置,希望能帮到大家!
Superset官方文档:https://superset.apache.org/docs/intro
配置总结
1、需要想用iframe引入dashboard时, URL 参数可用于修改仪表板的呈现方式,standalone=0
属性 | 枚举 | 描述 |
standalone | 0 | 仪表盘正常显示 |
1 | 顶部导航已隐藏 | |
2 | 顶部导航 + 标题被隐藏 | |
3 | 顶部导航 + 标题 + 顶级标签被隐藏 | |
show_filters | 0 | 渲染没有过滤栏的仪表板 |
1 | (默认):如果启用了本机过滤器,则使用过滤栏呈现仪表板 | |
expand_filters | 0 | 呈现带有折叠过滤栏的仪表板 |
1 | 呈现带有扩展过滤栏的仪表板 |
例如:当运行本地开发版本时,以下操作将禁用顶部导航并删除过滤栏: http://localhost:8088/superset/dashboard/my-dashboard/?standalone=1&show_filters=0
2、如果对页面样式有调整,可以在修改dashboard的css属性
3、Superset联动过滤器配置展示
修改配置文件superset_config.py 使得superset可以联动查询
FEATURE_FLAGS = {"DASHBOARD_NATIVE_FILTERS": True,"DASHBOARD_NATIVE_FILTERS_SET": True,"DASHBOARD_CROSS_FILTERS": True, "HORIZONTAL_FILTER_BAR": True // 是否支持横向过滤器展示}
可选择左侧栏展示或者横向展示,效果如下
4、控制筛选器条(Filter Bar)水平布局的配置项
默认情况下,Superset的筛选器条是垂直排列的,即筛选器以列的形式堆叠在仪表板或图表的左侧或右侧。而当配置项 HORIZONTAL_FILTER_BAR
被启用时,筛选器条将以水平的方式显示在仪表板的顶部或底部,以更好地适应特定的布局需求和用户偏好。
配置前样式
修改配置 superset_config.py
FEATURE_FLAGS = {"HORIZONTAL_FILTER_BAR": True,
}
配置后
5、开放Superset提供的REST API swagger
修改配置文件superset_config.py
FAB_API_SWAGGER_UI = True
在路由/swagger/v1中启用 。
6、CSV文件导出乱码问题
修改配置文件superset_config.py
CSV_EXPORT = {"encoding": "utf-8-sig"}
7、如何将Superset图表通过iframe嵌入Html网页
首先,superset在导航栏有Embed code,这个iframe代码就是自己制作的图表:
以下是iframe设置的一些参数:
属性 | 描述 |
width | iframe的宽度 |
height | iframe的高度 |
name | iframe的名称 |
frameborder | 是否显示边框,0(不显示) 、1(显示) |
src | iframe的地址(页面/图片) |
scrolling | 是否在iframe中显示滚动条,属性值(yes ,no,auto) |
vspace | 设置或获取对象的水平边距 |
hspace | 设置或获取对象的垂直边距 |
然后将我们的iframe代码插入Html,以下案例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>如何将Superset图表通过iframe嵌入Html网页</title>
<body><iframewidth="100%"height="2000"seamlessframeBorder="0"scrolling="no"src="http://10.7.14.6:9000/superset/dashboard/09d97c0d-ee02-40e8-ba38-4bc5ec583a86/?standalone=2&permalink_key=Mr9v6pzJQ7l"
>
</iframe>
</body></html>
但是我们发现,展示出来页面显示需要跨域以及需要登录,那么对于游客怎么能看到我们给分享的图表信息呢? 那么我们就要解决跨域以及免登陆问题
superset是默认进入图表的用户为public类型,因此我们需要游客访问的public类型有图表的访问权限。官方给了解决方案,按以下几个步骤。
如有配置有变动请参考官方文档:Security Configurations | Superset
1.修改superset_config.py配置文件,将PUBLIC_ROLE_LIKE 设置为Gamma。
PUBLIC_ROLE_LIKE = "Gamma"
讲给予public与gamma相同权限级,以后就可以在角色列表添加权限了。
2.去掉X-Frame-Options限制
HTTP_HEADERS = {}
讲给予public与gamma相同权限级,以后就可以在角色列表添加权限了。
3. WTF_CSRF_ENABLED设置为False
WTF_CSRF_ENABLED = False
4.添加Public角色权限
加入权限
权限的具体解释说明,参考官方文档:superset/RESOURCES/STANDARD_ROLES.md at master · apache/superset · GitHub
效果如下
成功嵌入,YYDS! 欢迎在评论区交流。
如果文章对你有所帮助,❤️关注+点赞❤️鼓励一下!博主会持续更新。。。。
往期回顾
CSS多栏布局-两栏布局和三栏布局
border边框影响布局解决方案
css 设置字体渐变色和阴影
css 重置样式表(Normalize.css)
css实现元素居中的6种方法
Angular8升级至Angular13遇到的问题
前端vscode必备插件(强烈推荐)
Webpack性能优化
vite构建如何兼容低版本浏览器
前端性能优化9大策略(面试一网打尽)!
vue3.x使用prerender-spa-plugin预渲染达到SEO优化
vite构建打包性能优化
vue3.x使用prerender-spa-plugin预渲染达到SEO优化
ES6实用的技巧和方法有哪些?
css超出部分显示省略号
vue3使用i18n 实现国际化
vue3中使用prismjs或者highlight.js实现代码高亮
什么是 XSS 攻击?什么是 CSRF?什么是点击劫持?如何防御