Superset 实现可视化报表发布

?

文章目录

  • Superset介绍
  • Superset安装
  • Superset配置
  • Superset命令
  • 编译汉化文件
  • 发布公开看板
    • 添加数据库
    • 添加数据集
    • 添加图表
    • 添加看板
    • 设置刷新时间
    • 初始化Public角色
    • 为public权限新增数据查看权限
    • 公开看板
  • 系统集成刊本示例
    • 移除数据接口CSRF验证

?


想要看更加舒服的排版、更加准时的推送
关注公众号“不太灵光的程序员”
干货推送,微信随时解答你的疑问 ????????????

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 实现可视化报表发布
能到这里基础环境就搭建完了

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文件重新编译后就可以了
Superset 实现可视化报表发布

发布公开看板

添加数据库->添加数据集->添加图表->添加看板->发布看板

添加数据库

Superset 实现可视化报表发布

添加数据集

Superset 实现可视化报表发布

添加图表

Superset 实现可视化报表发布

添加看板

Superset 实现可视化报表发布

设置刷新时间

Superset 实现可视化报表发布
但是此时我们推出登录后访问发布的看板,还是提示登录,我查看下权限配置,可以看到public的权限列表中是空的,下面给public设置权限,当然一个一个向里面添加也是可以的,我们通过修改配置文件来做。
Superset 实现可视化报表发布

初始化Public角色

在配置文件中添加,然后重新初始化角色和权限

为匿名用户赋予Gamma用户的权限
PUBLIC_ROLE_LIKE_GAMMA = True
superset init

Superset 实现可视化报表发布

为public权限新增数据查看权限

public权限新增 all datasource access on all_datasource_access 权限

公开看板

Superset 实现可视化报表发布

系统集成刊本示例
<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>

Superset 实现可视化报表发布

移除数据接口CSRF验证

在配置文件中添加,然后重启服务

移除数据接口CSRF验证
WTF_CSRF_EXEMPT_LIST = [“superset.views.core.log”, “superset.charts.api.data”, “superset.views.core.explore_json”]

Superset 实现可视化报表发布

?

?

Superset 实现可视化报表发布

上一篇:block _forwarding指针


下一篇:LeetCode 22. 括号生成