Хорошая новость
Итак, если раньше в проприетарных BI системах, возможности модели данных были ограничены оперативной памятью сервера и возможностями BI продукта, то теперь в Apache Superset можно связать 2 и более таблиц фактов и отрисовать все визуализации на одном дашборде.
Если все сделать к примеру на ClickHouse, граммотно обновлять данные в витринах, чтобы не было моментов, когда дашборд отображает ошибки (например когда данные в таблице затерли), то мы получаем по-настоящему расширяемый BI Tool.
Data Backend масштабируем горизонтально, дашборды перемещаем между средами.
Причем, за счет кросс-фильтрации мы еще и таблицы по этим полям фильтруем одновременно.
Минусы этого подхода:
Сложнее все настраивается и нужно создавать отдельные dataset на общие поля.
Постановка задачи
У нас есть 2 таблицы, в которых одинаковые поля:
- category_1
- category_2
- datetime
и при этом, значения в таблицах в этих полях могут быть разными. В нашем примере, во второй таблице количество уникальных категорий больше (в первой и во второй категории).
Решение задачи связывания датасетов по общим полям в Apache Superset
Схема как связать 2 датасета с общими полями
Важное условие: поля в датасетах должны называться одинаково. В моем случае они совпадают также и на уровне таблиц.
Для решения задачи, необходимо создать 2 физических датасета и 2 виртуальных датасета.
Физические датасеты содержат в себе все данные из таблиц table_1 и table_2.
Виртуальные датасеты состоят из 1 поля и необходимы для того, чтобы включить в себя уникальные значения полей из двух таблиц для поля category_1 и поля category_2 соответственно.
Для поля datetime такие манипуляции делать не нужно, Apache Superset для datetime поля все делает самостоятельно.
Настройки фильтров на дашборде в Apache Superset
common_category_1
Выбираем поле category_1 из виртуального датасета:
На вкладке Scoping указываем, какие чарты должны фильтроваться:
common_category_2
Аналогично для поля category_2
scoping:
datetime
Для datetime поля меньше настроек. Помним, что datetime в датасетах может быть только одним в Apache Superset.
scoping:
Подписывайтесь на канал @apache_superset_bi, чтобы быть в курсе последних новостей про Apache Superset
Leave a Reply