Мои связанные фильтры не работают¶
Допустим, вы создали связанный фильтр (документация Metabase, англ.) для дашборда. Вы хотите его настроить таким образом, чтобы в списке фильтра «Город» оставались только города в регионе, выбранном в фильтре "Регион". Однако:
- ваши карты показывают «Нет результата», когда вы применяете связанный фильтр,
- кажется, что ваш связанный фильтр не работает,
- виджет связанного фильтра не отображает раскрывающийся список отфильтрованных значений.
Если у вас возникли проблемы с обычным виджетом фильтра (документация Metabase, англ.), см. это руководство. Чтобы исправить проблемы со связанными фильтрами, вам нужно понимать, как они работают.
Правильно ли вы поняли работу фильтров?¶
Возможная причина
Связанные фильтры — одна из непростых функций Glarus BI, и многие проблемы связаны с непониманием их работы.
Действия
Убедитесь, что вы понимаете приведённые ниже пункты, и что ваш связанный фильтр настроен с их учётом.
- Фильтр не является частью конкретного запроса. Это самостоятельная единица на дашборде, выбранное вами значение используется для заполнения переменных в запросах.
- Чтобы Glarus BI отображала выпадающий список возможных значений фильтра, она должна "знать", что столбец соответствует категории. Это происходит автоматически, если запрос создаётся из таблиц с помощью конструктора запросов, поскольку в Glarus BI есть сведения о таблице и столбцах из синхронизации.
- Если же запрос, содержащий переменную, написан на языке SQL в редакторе прямых запросов, автор запроса должен выбрать «Фильтр полей». Кроме того, указанное поле должно быть установлено как категория в метаданных таблицы, чтобы Glarus BI отображала выпадающий список значений.
Правильно ли связаны фильтры?¶
Возможная причина
Наиболее распространённая причина ошибок заключается в том, что фильтры связаны в неправильном направлении. Если вы хотите, чтобы значения, отображаемые фильтром B, были ограничены настройкой фильтра A, вы должны изменить настройки фильтра B, а не фильтра A, т. е. настройка применяется к нижестоящему, а не к вышестоящему фильтру.
Действия
- Удалите существующую связь и создайте новую в противоположном направлении.
См. Ограничения связанных фильтров
Действительно ли некоторые строки удовлетворяют условию полного фильтра?¶
Возможная причина
Нет строк, удовлетворяющих всем условиям связанного фильтра. Продолжая пример с городом и регионом, если вы вручную введёте название города, который не находится в выбранном регионе, ни одна запись не будет удовлетворять обоим условиям.
Действия
- Создайте запрос, который использует только первый фильтр, и убедитесь, что он выдаёт несколько строк. Если это не так, добавление второго фильтра не приведёт к появлению новых строк.
- Создайте запрос, который, по вашему мнению, должен дать тот же результат, что и комбинация связанных настроек фильтра, которая не даёт никаких данных. Если запрос даёт ожидаемый результат, проверьте, нет ли опечаток и убедитесь, что вы используете правильный тип соединения (документация Metabase, англ.).
Все ли строки, прошедшие первый тест, проходят и второй?¶
Возможная причина
В некоторых случаях все строки, удовлетворяющие условию первого фильтра, также удовлетворяют условию второго фильтра, поэтому второй фильтр не действует.
Действия
Создайте запрос, который включает первое условие фильтра напрямую (т. е. в запросе, а не с использованием переменной), затем добавьте второе условие фильтра. Если результирующий набор не меняется, проблема в логике, а не в фильтрах.
Отображает ли виджет связанного фильтра раскрывающийся список отфильтрованных значений?¶
Возможная причина
Чтобы связанный виджет фильтра отображал правильное подмножество значений в виде раскрывающегося списка, необходимо настроить явное определение внешнего ключа (документация Metabase, англ.) — связывание фильтров само по себе не сообщает Glarus BI об отношениях между таблицами в базе данных.
Действия
Убедитесь, что метаданные таблицы Glarus BI для вашей базы данных включают отношение внешнего ключа.