Набор данных
В этом разделе вы создадите соединение с БД и набор данных в Apache Superset.
Соединение с базой данных
После запуска Superset вы можете создать соединение с базой данных, содержащей данные для дэшбордов. В предыдущих шагах, когда вы настроили контейнеры Superset в файле docker-compose-non-dev.yml
, вы создали сервис jmix_database
, который запускает PostgreSQL
. Эта база данных используется в Jmix-приложении, и теперь вы настроите соединение с этой базой данных в Superset.
Нажмите на пункт Database Connections в настройках Superset:
Создайте новое соединение с базой данных. В открытом диалоге выберите тип PostgreSQL
и введите детали соединения:
Нажмите на кнопку 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
). Если вы запустите этот запрос, то увидите следующий результат:
Сохраните запрос и назовите его Employees' salaries.