可视化数据平台 superset :安装和使用

什么是 superset

Superset 是 Airbnb 开源的大数据可视化平台,其特性包括:

  • backend 支持几乎所有主流的数据库
  • 支持复杂的权限控制和管理(OpenId, OAuth 等),满足企业内部不同部门人员对数据的权限要求
  • 丰富的可视化展示,支持自定义创建 dashboard,可分享
  • 可扩展、细粒度的数据库权限控制,满足不同层级人员对数据库权限的要求
  • 数据的展示完全可控,可自定义展示字段、聚合数据、数据源等
  • 深度集成 Druid.io

Superset 目前由 Apache 孵化,地址是 github.com/apache/incubator-superset

superset 解决什么问题

由 superset 的特性不难看出 superset 要解决的问题:

  • 满足企业内部不同部门对数据的要求:老板、运营、产品、商务
  • 细粒度的权限划分和控制,可满足不同层级的人员的不同权限
  • 支持各种主流数据库,hbase、mysql、postgres等
  • 不同数据不同维度的可视化
  • 自定义数据的展示和可视化

下载安装

Superset 由 Python 构建,可使用 pip 安装 pip install superset,详细信息请参考官方文档 https://superset.incubator.apache.org
, 在此我们重点介绍一下 superset 的使用。

使用 superset

添加数据源

Superset 自带权限管理,在使用之前首先按照官方文档的要求新建超级用户,首次登录使用创建的超级用户即可,之后可以按照自己的需求划分组和用户,权限划分在安全菜单中。

打开 superset 可以看到其菜单分步如下:

superset 支持国际化,可在右上角切换自己熟悉的语言,这里我们以中文为例。

在数据源—>数据库列表中添加需要使用的数据库如下:

SQLAlchemy URI 选项是我们需要填写的数据库连接,superset 使用 mysql 时默认使用 mysqlclient 做驱动连接数据库,而且还提供了 sqlalchemy 的文档连接,mysql://scott:tiger@localhost/foo ,需要注意的如果 passwd 中包含特殊字符,需要进行转义进行 urlquote

填写成功之后点击测试,如果弹窗显示 Ok 表示连接建立成功,此时可以看到数据库的 tables 会在表单下方出现,点击保存。

如果添加数据库保存报 No module named MySQLdb ,安装 pip install mysql-python

数据库配置成功之后开始配置需要使用的 table,在数据源—>数据表添加需要使用的 table 如下:

保存之后回到 table 页,编辑刚才添加的 table,切换到列列表视图,可以看到 table 中包含的所有的列:

在此可以配置需要查询的字段、聚合字段等。

探索数据

table 配置完成就可以使用 superset 进行数据查询和展示了,在 table 页直接点击 table,进入 table explore 页:

在左侧选项栏依次是:

  • 数据源和图表类型
  • 查询时间
  • group by 语句
  • SQL 过滤条件

Time 可选 since 和 until ,表示开始和结束区间,如果图表类型支持自定义信息,还会有图表展示的配置。

配置完成之后点击左上角的 Run query 即可查看结果。

点击左上角 save 可以保存当前的结果为一个 slice,slice 在 superset 中就是一个数据结果集的展示,多个 slice 可以组成一个 dashboard,可以根据不同人员对数据的不同需求建立不同的 dashboard。

常见问题

配置数据库报错

如果配置数据库报点击连接测试无法从 url 获取 password 的错误,UI 上对应的是 object None type 错误,直接跳过保存即可。

csv 导出中文乱码

superset 的导出是可以进行配置的,创建 superset_config.py 改写其 csv 导出的编码

1
2
3
4
5
CSV_EXPORT = {
'encoding': 'utf_8_sig',
}

SQLALCHEMY_DATABASE_URI = 'mysql://root:@127.0.0.1/superset?charset=utf8'

superset_config.py 必须放置在 PYTHONPATH,也就是 Python os.environ 可以获得的地方

总结

Superset 正在逐步应用到生产环境中,后续会我会根据团队的使用情况继续介绍更多 superset 的使用。

三月沙 wechat
扫描关注 wecatch 的公众号