想要看更加舒服的排版、更加准时的推送
关注公众号“不太灵光的程序员”
干货推送,微信随时解答你的疑问 😃😃😃
Superset介绍
Apache Superset是一个现代的,可用于企业的商业智能Web应用程序。它快速,轻巧,直观,并带有各种选项,使所有技能组的用户都可以轻松浏览和可视化其数据,从简单的饼图到高度详细的deck.gl地理空间图。
- 直观的界面,用于可视化数据集和制作交互式仪表板
- 多种精美的可视化展示您的数据
- 无代码可视化构建器,用于提取和呈现数据集
- 世界一流的SQL IDE,用于准备数据以进行可视化,其中包括丰富的元数据浏览器
- 轻量级的语义层,使数据分析人员能够快速定义自定义维度和指标
- 对大多数说SQL的数据库提供开箱即用的支持
- 无缝的内存中异步缓存和查询
- 一种可扩展的安全模型,允许配置关于谁可以访问哪些产品功能和数据集的非常复杂的规则
- 与主要的身份验证后端(数据库,OpenID,LDAP,OAuth,REMOTE_USER等)集成
- 添加自定义可视化插件的功能
- 用于程序化定制的API
- 云原生架构,专为规模而设计
Superset是云原生的,旨在提供高可用性。它被设计为可扩展到大型分布式环境,并且在容器内可以很好地工作。虽然您可以在适中的设置下或仅在笔记本电脑上轻松测试Superset驱动器,但扩展平台几乎没有任何限制。
- 网络服务器(Gunicorn,Nginx,Apache),
- 元数据数据库引擎(MySQL,Postgres,MariaDB等),
- 消息队列(Redis,RabbitMQ,SQS等),
- 结果后端(S3,Redis,Memcached等),
- 缓存层(Memcached,Redis等),
Superset还可以与NewRelic,StatsD和DataDog等服务良好配合,并能够针对大多数流行的数据库技术运行分析工作负载。
目前,Superset已在许多公司大规模运行。例如,Superset在Kubernetes内的Airbnb生产环境中运行,每天为600多个活跃用户提供服务,每天查看超过10万张图表。
Superset安装
Superset需要python3.6、3.7版本的Python环境,Windows服务3.8时有依赖会安装不上。
安装命令:
pip3.7 install apache-superset
能到这里基础环境就搭建完了
Superset配置
下面我们只讲下Superset汉化配置、数据库配置、分享免登录配置。
可以创建一个文件superset_config.py并将其添加到中 PYTHONPATH也可以找到项目路径下的config.py直接修改。
# 查询数据的默认返回条数限制
ROW_LIMIT = 5000
# 服务端数据库连接,更换后需要重新初始化数据库
SQLALCHEMY_DATABASE_URI = 'sqlite:path/to/superset.db'
# 默认中文
BABEL_DEFAULT_LOCALE = "zh"
LANGUAGES = {
"en": {
"flag": "us", "name": "English"},
"zh": {
"flag": "cn", "name": "Chinese"},
}
Superset命令
# 初始化数据库
superset db upgrade
# 初始化角色和权限
superset init
# 创建管理员账号
superset fab create-admin
# 服务启动
superset run
顺序执行上面的命令,让新的配置生效
接下来还需要完善几个操作
编译汉化文件
下载poedit 编译po文件
找到\site-packages\superset\translations\zh\LC_MESSAGES目录,编译messages.po文件,生成messages.mo保存在当前目录。
重新启动服务发现系统已经汉化了,如果需要自定义汉化内容,可以自行修改po文件重新编译后就可以了
发布公开看板
添加数据库->添加数据集->添加图表->添加看板->发布看板
添加数据库
添加数据集
添加图表
添加看板
设置刷新时间
但是此时我们推出登录后访问发布的看板,还是提示登录,我查看下权限配置,可以看到public的权限列表中是空的,下面给public设置权限,当然一个一个向里面添加也是可以的,我们通过修改配置文件来做。
初始化Public角色
在配置文件中添加,然后重新初始化角色和权限
为匿名用户赋予Gamma用户的权限
PUBLIC_ROLE_LIKE_GAMMA = True
superset init
为public权限新增数据查看权限
public权限新增 all datasource access on all_datasource_access 权限
公开看板
系统集成刊本示例
<html>
<head>
<title>dashboard</title>
<style type="text/css">
.dashboard {
width: 100%;
margin: 0 auto;
}
.dashboard iframe {
width: 100%;
height: 900px;
border: 0;
scrolling: "no";
margin-top: -150px;
}
</style>
</head>
<body>
<div class="dashboard">
<iframe src="http://127.0.0.1:5000/r/4"></iframe>
</div>
</body>
</html>
移除数据接口CSRF验证
在配置文件中添加,然后重启服务
移除数据接口CSRF验证
WTF_CSRF_EXEMPT_LIST = [“superset.views.core.log”, “superset.charts.api.data”, “superset.views.core.explore_json”]
有疑问关注 不太灵光的程序员 交流讨论
转载:https://blog.csdn.net/qq_23934063/article/details/117226809