Superset——数据集:虚拟数据集

我之前写了一篇介绍Superset数据集的文章《Superset——数据集》,重点介绍了Superset如何连接数据库,并新建数据集。如果大家注意到数据列表中的“类型”列,会发现我们之前建立的数据集类型为“Physical“(物理表数据),这种数据集是针对数据库中的表格的。但是,在我们实际业务场景中,很多业务数据是根据关联关系,分多表存储的,那么针对多表的数据分析,我们应该怎么处理呢?这个时候就需要使用类型为“Virtual”的数据集了。

为了方便后面的介绍,我这里在数据库中增加了学校的课程表 course_schedule,表格结构如下:

course_schedule 表中的 class_id 和我们之前创建的 class 表中的 id 对应。

我们基于之前学习的《Superset——数据集》,首先来建立一个“课程表”的“Physical”类型的数据集。

但是,仅仅这样还是不够的,因为我们的"课程表"的测试数据中,“班级”使用的是 class_id,这样的数据显示在图表上,对阅读会造成困扰,那么我们如何将 class_id 显示为对应的编辑名称呢?

这个时候,我们就可以虚拟 sql 来代替数据集中“物理表”的概念。

  1. 点击上图中的“单击锁以进行更改“;

  2. 然后选择“虚拟(SQL)”,在底部的“SQL“输入框中,输入带有 left join 的sql语句,进行表的关联查询。这样,我们的数据集就有了 "class_name"——班级名称;

  3. 保存更改后,我们可以到“列“页面,知道我们 class_name 列,并给他设置一个中文标签“班级名称”,方便在图表中展示。

如果看不到 class_name 这个列,可以点击“从源同步列”按钮来刷新下“列”的列表

这个时候,我们就可以按照之前学习的《Superset——图表》来新建一个关于课程排班的图表了。

为了方便演示效果,我这里做了一个简单的各个班级课程的数量统计情况的条形图。

同时,我们也可以在数据集列表中,看到我们刚刚新建的数据集类型变为了“Virtual”。

Last Updated:
Contributors: 小5