数据集

本章节中,我们将在 Apache Superset 中创建一个数据库连接和一个数据集。

创建数据库连接

Superset 启动后,我们可以为仪表板创建一个数据库连接。在前面的步骤中,我们在 docker-compose-non-dev.yml 文件配置了 Superset 容器,其中创建了 jmix_database 服务用于启动 PostgreSQL。这个数据库在 Jmix 应用程序中用到,现在我们需要在 Superset 中配置该数据库的连接。

在 Superset 的配置中点击 Database Connections

settings databsase connections

创建一个新的数据库连接。在打开的对话框中,选择 PostgreSQL 并输入连接信息:

new database connection

点击 CONNECT 按钮,再点击 FINISH 按钮。现在完成了 jmix_database 服务的创建。

创建数据集

Apache Superset 中,一个数据集(dataset)是指一组可以用来创建图表的数据。可以是物理的数据集 - 数据库中的表或视图,或者是虚拟数据集 - 一个查询语句,能作为数据集进行保存或重用。

Onboarding 示例的数据中,USER_ 表有一个 DEPARTMENT 的外键。因此,如需将用户按部门做可视化,只能使用查询语句作为数据集的第二种方式。

从顶部菜单中选择 SQLSQL Lab,然后在打开的界面中填写下列信息:

  • DATABASE: Jmix Onboarding

  • SCHEMA: public

现在需要编写数据集的一个查询语句。仪表板中我们要显示部门中员工的薪资信息,所以需要查询以下列:

  • 用户的全名

  • 部门

  • 薪资

查询语句如下:

SELECT CONCAT(first_name, ' ', last_name) full_name, dpr.name department_name, usr.salary
FROM public.user_ usr
INNER join department dpr on usr.department_id = dpr.id

这里用到了 INNER JOIN 避免查出没有部门的用户(比如 admin 用户)。运行这个查询语句可以看到:

sql lab

保存这个查询,并命名为 Employees' salaries