Apache Superset使用分享

8,850 阅读7分钟

Superset简介

Superset是一个受Apache软件基金会支持的处于孵化阶段的企业级数据可视化web项目。具有以下特点:

  • 内含丰富的数据图表样式
  • 支持多种数据源(Oracle、MySQL、Postgres, MariaDB等等)
  • 提供易用的界面来自定义可视化数据
  • 提供一个Web版SQL查询工具
  • 提供OpenID, LDAP, OAuth等多种认证方式,易于集成。

Superset的主要功能是将基础数据以直观的可视化图表形式渲染出来。本文档对数据源的配置、自定义可视化数据进行介绍。关于Superset的安装不在本文探讨范围内,官方文档中提供了基于docker的一键化安装教程。

为了形象的表明Superset能做什么,最直接的方式就是放图了。比如它能根据数据生成如下的图表,只需要配置好了数据源,不需要编写一行代码便可生成可视化图表。前端再也不用和Echart打交道,后端增删改查小王子也不要写代码了。

当然这只是最基础的,下面还有贼多炫酷的图表,恐怖的让人不禁瑟瑟发抖。本人目前公司才用到一些基本图表,暂时感觉数据可视化方面还是挺满足项目需求的。

数据源的配置

可视化数据的前提是必须有数据源为其提供基础数据。本节介绍如何配置可靠的数据源。Superset支持多种数据库充当数据源,如:Oracle、MySQL、Postgres, MariaDB等等。本节以Oracle为例。

请原谅我以下所有截图中都是使用的中文,有些地方翻译略显生硬。本来系统是使用的英文,奈何领导要求中文呀。

新增数据库

①点击数据源选择数据库,进入页面后点击右上角绿色的+号新增一个数据库

②填写数据库配置相关信息,点击测试连接,出现seems OK!表明数据库连接成功。

注:勾选“在SQL工具中公开”选项则表明允许在Superset提供的SQL查询工具中对该数据库进行操作,按需勾选。

新增数据表

①点击数据源选择数据表,进入页面后点击右上角的+号新增一个数据表

②下拉选择刚刚配置的数据库,并填写数据库中存在的某个表名,点击保存

③点击编辑表,在列列表中页面中为每个列勾选后续数据分析时会使用到的一些属性,

注:可分组和可过滤按需勾选,表示在后续分析数据时是否支持根据该列进行分组和过滤。时间字段的表示时间属性必须勾选上(一般Superset会时间列默认勾选)。

经过上述操作,我们便为后续的数据可视化操作提供了一个数据表充当数据源。

新增看板

数据源配置好后我们还需要新增一个看板用来保存我们之后生成的可视化图表。你可以把看板理解成一个文件夹,用来存储一系列相关的图表

①点击看板,进入页面后点击右上角的+号新增一个看板

②填写看板名并选择所属者,点击保存

完成上述操作后,我们便在系统内新增了一个“景区指标”看板来存储后续生成的可视化图表。

自定义可视化图表

现在所有准备工作都已经完成,可以正式开始生成可视化图表。为了事情的发展顺利,先给出上一节中新增数据表的结构信息:

仔细观察上表的字段,该表的每条记录表示某个景区某天某种出行方式出行的游客总人数。我们假设本次数据可视化的任务是将景区编号为201_1的景区前一周游客的出行方式渲染成可视化图表。

配置可视化图表

注意:尽管Superset提供了一个易用的配置界面来配置可视化图表,但可能还是需要用户在一定程度上熟悉简单的SQL语法。所以,如果你不熟悉SQL语法,那么下面的内容对你来说可能会略显吃力。

①选择需要分析的数据表

②配置图表(以饼图为例) 点击数据表后进入配置页面。注意,我们的目的是:将景区编号为201_1的景区前一周游客的出行方式渲染成可视化图表。 按如下步骤自定义配置参数: 步骤一:选择图表类型为饼图

步骤二:筛选前一周数据

步骤三:筛选景区编号为201_1的数据

步骤四:设置分组条件,此处根据出行方式进行分组

步骤五:配置分析的指标,此处为游客人数。(sum表示对每个分组的人数求和)

步骤六:设置行限制,此处可留空,如果说仅需显示出行方式排行前10的数据则可将行限制设置为10

步骤7:点击左上角运行查询按钮,查看数据渲染结果

保存可视化图表

通过上述步骤现在已经配置好了一个可视化图表。我们可以将其持久化保存。如图:将图表配置保存并将生成的可视化图表保存到第一步配置的“景区指标”看板中。

查看生成的可视化图表

点击这两个条目可查看刚刚保存的图表配置和生成的可视化图表。

常见问题

通过上述的几节已经完整的介绍了Superset配置可视化图表的操作步骤,本节列出一些困扰使用者的常见问题:

Q1:指标可以是某个字段名而非聚集函数吗?
A:这个具体由不同的图表类型决定,一般来说都是聚集函数。

Q2:允许多个表的联合查询吗?
A:Superset不能直接使用联合查询,只能从单个表查找数据。但是它提供的视图的概念,可以编写视图SQL,最终在视图上执行单表查询操作。视图的配置见下图:
1、点击编辑表

2、编写SQL语句,以SQL的结果集作为视图。

Q3:如何校验数据的正误?
A:Superset提供的数据分析是建立在SQL基础上的,在配置可视化图表阶段,点击右上方的列表按钮,可以查看到查询执行的实际SQL以及返回的原始数据结果。通过查看SQL和结果集来校验正误。

Q4:为何配置图表后点击运行查询无反应?
此种情况说明系统根据你的配置生成的查询SQL有问题。可根据Q3来排查问题所在,并且系统为用户提供Web版的SQL查询工具来操作数据库。

常见图表类型配置

上文中以饼图为例展示了可视化图表的配置,本节给出常见的柱状图以及时间折线图的配置方法。Superset允许众多的图表类型,其余类型需要用户自己去尝试。 由于篇幅问题,仅给出配置,详细步骤略去。

柱状图

目的:渲染201_1景区前一天的游客出行方式

时间折线图

目的:渲染201_1景区游客每种出行方式不同日期的对比