Свяжите фильтры с запросами в Superset

Я создал визуализацию в Apache Superset на основе сохраненного запроса. Как я могу обновить запрос на основе значений, отфильтрованных в поле фильтра?

Я экспериментировал с Jinja, и мне удалось передать жестко запрограммированные переменные в свой запрос через параметры шаблона. Теперь мне просто нужно подключить Jinja к Filter Box, чтобы значения получались через фильтр, а не жестко запрограммированы.


person ganninu93    schedule 19.10.2018    source источник


Ответы (2)


Имя столбца, используемое в фильтре, должно быть таким же и в другой таблице. Ты пробовал это? Если имена столбцов отличаются, создайте материализованное представление с измененным именем столбца или переименуйте столбец в самой таблице.

person SKM    schedule 16.02.2019

Я обнаружил, что это возможно с помощью функции filter_values, которая добавляется в контекст Jinja через этот файл: https://github.com/apache/superset/blob/master/superset/jinja_context.py

Пример в этом файле показывает, как можно создать шаблонный запрос, извлекающий значения из поля фильтра:

SELECT action, count(*) as times
FROM logs
WHERE action in ( {{ "'" + "','".join(filter_values('action_type')) + "'" }} )
GROUP BY action

Поэтому, если у вас есть поле фильтра для выбора значений для action_type, эти значения будут возвращены filter_values.

person Alan LaMielle    schedule 10.02.2021