美文网首页echart
Looker的driver table中注入用户选择的参数

Looker的driver table中注入用户选择的参数

作者: Houtasu | 来源:发表于2021-02-24 15:29 被阅读0次

    在LookML中允许使用sql作为view的源表,其实相当于一个视图。
    在view的定义中把sql_table_name改成drived_table,然后在里面写sql就好了。


    不过这样有一个小问题,如果这个sql中有时间相关的字段,
    当用户筛选了时间的时候,是不会影响到这个sql语句的。
    比如这是一个登陆相关的view,我想在explore查询前两天的登陆情况,然后筛选了日期dimension为前两天。
    这个时候点查询的话,会先查询整张login表,然后再选出前两天的数据。
    因为looker底层实际是根据你选择的dimension和measure去构造sql。
    而drived_table中的sql是直接被当场一个with子表来处理的,所以bigquery会先执行这个with子句来查数据。
    这样的问题就是我只想查前两天的数据,但是用了整张表的流量。(前提是在bigquery中已经按照时间做了分区)
    为了处理这种情况,lookml有一个模板语法,类似于jinja模板的填充。使用{% variable %}
    具体可以参照这篇文档Templated Filters and Liquid Parameters
    现在有了模板语法,我们就可以在drived_table的sql中接收到用户选择的参数了。
    where ts between {% date_start date_filter %} and {% date_end date_filter %} )
     filter: date_filter {
        type: date
      }
    

    比如上面语句就可以接收用户选择的时间。

    相关文章

      网友评论

        本文标题:Looker的driver table中注入用户选择的参数

        本文链接:https://www.haomeiwen.com/subject/kpssfltx.html