过滤可视化中使用的SQL Lab查询使用Jinja模板进行过滤

问题描述

我是Superset的新手,并且正在使用Jinja模板来创建自定义过滤器。 我在流行音乐中安装了superset 0.37.2! OS 20.04(Ubuntu变体)计算机,带有python 3.8.5。 我们的信息中心大部分是根据一些复杂查询的结果创建的,因此我们将需要在sql Lab保存的查询上创建可视化文件。有时,我需要自定义过滤器,并考虑使用Jinja模板,但缺少步骤或滥用它们。

也就是说,我在示例模式的排行表上有这个sql Lab查询(我将其命名为 Q_FLIGHTS_PER_DAY ):

SELECT tfl.AIRLINE,tfl.DAY_OF_WEEK,COUNT(1) num_flights
FROM flights tfl
GROUP BY tfl.AIRLINE,tfl.DAY_OF_WEEK

我想创建一个自定义过滤器以选择航空公司,所以我创建了第二个sql Lab查询

SELECT disTINCT AIRLINE p_airline FROM flights

我将此查询命名为 Q_FILTER_AIRLInes ,并使用此查询创建过滤器框图表(我将该图表命名为 V_FB_P_AIRLINE ):

Filter box creation

Filter configuration

因此,一旦创建了过滤器框,就转到原始查询 Q_FLIGHTS_PER_DAY ,然后添加Jinja模板以使用在 p_airline 中选择的值来过滤查询

/* Template to filter */
{% set param_airline = filter_values('p_airline','AS')[0]  %}
/* Filtered query */
SELECT tfl.AIRLINE,COUNT(1) num_flights
FROM flights tfl
WHERE tfl.AIRLINE = '{{cache_key_wrapper(param_airline)}}'
GROUP BY tfl.AIRLINE,tfl.DAY_OF_WEEK

并使用此保存的查询创建 V_FLIGHTS_PER DAY 的条形图,并将两个图都添加到新的仪表板,过滤器框和条形图中:

Dashboard with fixed param value

还有什么我需要做的事情才能做到这一点,或者我想做的事情是不可能的吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)