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