我正在pentaho di创建一个转换来从谷歌分析中提取数据。我需要设置"查询定义"昨天和今天的开始日期和结束日期。我知道这可以通过创建两个变量来完成,例如: $ {} todsy $ {}昨天。但是,我不知道如何将它们设置为在每次运行时动态更改值。关于如何做到这一点的任何想法?
谢谢,
答案 0 :(得分:1)
我可以想到一个简单的方法来做到这一点。首先,您无法在同一转换中声明和使用变量。我建议你通过以下方式解决这个问题:
Get System Info
步骤将今天和昨天的日期设置为变量。使用copy rows to result
步骤将这些行传递给下一个转换。Get Variables
步骤并在输入步骤中使用这些变量。或者您也可以使用Get rows from result
步骤。您现在不必担心日期,因为会生成日期并且您的变量会动态获取值。
如果您想了解有关如何将值从一个转换传递到另一个转换的更多信息,可以查看本文: https://anotherreeshu.wordpress.com/2014/12/23/using-copy-rows-to-result-in-pentaho-data-integration/
希望它有所帮助!
答案 1 :(得分:1)
为此,您必须使用作业,添加第一个转换,并在其中使用 获取系统信息步骤,然后将今天和昨天的日期添加为变量,并链接到设置变量步骤。将变量的范围设置为上级工作, 在第二份工作中使用**获取变量**。
答案 2 :(得分:0)
我花了一些时间自己解决了这个问题,最终我做到了:
我创建了一个转换(称为“ set formatted_today变量”),该转换包含两个对象:
转换包含一个带有查询的“表输入”对象,
select to_char(current_timestamp, 'YYYY-MM-DD-HH-MI') as formatted_today
“表输入”的输出转到“设置变量”对象,您可以使用“获取字段”按钮将查询中已命名的字段连接到要设置的变量。在这种情况下,我的字段称为“ formatted_today”,我的变量也是如此。
在我的主要工作中,我有一个“设置会话变量”对象,用于创建我的“ formatted_today”变量。
在此之后,我立即调用“ set formatted_today变量”转换
在任何需要此变量的地方,我都会在文本中插入${formatted_today}