数据集
本章节中,我们将在 Apache Superset 中创建一个数据库连接和一个数据集。
创建数据库连接
Superset 启动后,我们可以为仪表板创建一个数据库连接。在前面的步骤中,我们在 docker-compose-non-dev.yml
文件配置了 Superset 容器,其中创建了 jmix_database
服务用于启动 PostgreSQL
。这个数据库在 Jmix 应用程序中用到,现在我们需要在 Superset 中配置该数据库的连接。
在 Superset 的配置中点击 Database Connections:
![settings databsase connections](_images/settings-databsase-connections.png)
创建一个新的数据库连接。在打开的对话框中,选择 PostgreSQL
并输入连接信息:
![new database connection](_images/new-database-connection.png)
点击 CONNECT 按钮,再点击 FINISH 按钮。现在完成了 jmix_database
服务的创建。
创建数据集
Apache Superset 中,一个数据集(dataset)是指一组可以用来创建图表的数据。可以是物理的数据集 - 数据库中的表或视图,或者是虚拟数据集 - 一个查询语句,能作为数据集进行保存或重用。
Onboarding 示例的数据中,USER_
表有一个 DEPARTMENT
的外键。因此,如需将用户按部门做可视化,只能使用查询语句作为数据集的第二种方式。
从顶部菜单中选择 SQL → SQL 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](_images/sql-lab.png)
保存这个查询,并命名为 Employees' salaries。