让决策更智能
新一代智能数据分析平台

在SQL语句中设置参数

观远产品部发表于:2021年03月18日 19:32:53更新于:2021年03月18日 20:30:13

如果我们每天早上只需要导入前一天的数据,这也就意味着我们需要在不同的时间执行不同的SQL语句来获取数据。那么如何来生成这样的动态SQL语句呢?这里,我们就用到“自定义字段”的设置。

在“管理”页面,我们可以找到“自定义字段”列表。默认情况下,我们预设置了两个自定义参数:TODATDATE和YESTERDAY_DATE。

custom-parameter.png

比如今天是 2017年10月16日,那么这两个参数的值将会被自动计算。

  • today_date : 2017-10-16

  • yesterday_date : 2017-10-15

那么如果在定义数据集更新计划时,SQL被配置为:

select customer_id, max(customer_name), sum(sales) from sales_orders where order_date = '${yesterday_date}' group by customer_id

则该SQL被执行时,${yesterday_date} 将会被替换为 2017-10-15。

当然,日期的格式也可以定制。比如,公司的数据库中是用的类似于 “20171017”的格式来存储的日期,那么我们可以添加一个新的自定义参数为:

YESTERDAY_DATE_SHORT: new org.joda.time.LocalDate().minusDays(1).toString('yyyyMMdd')

那么这个参数的格式就对应 “20170313”这种格式。 相比之前的设置,唯一修改的地方是把日期的格式化string由 ‘yyyy-MM-dd’ 替换为 ‘yyyyMMdd’。

add-custom-parameter.png

    您需要登录后才可以回复