在 pentaho di 中将变量设置为今天和昨天

set variable as today and yesterday in pentaho di

我正在 pentaho di 中创建转换以从 google 分析中提取数据。我需要在 "Query Definition" 中将开始日期和结束日期设置为昨天和今天。我知道这可以通过创建两个变量来完成,例如${托德西},${昨天}。但是,我不知道如何将它们设置为在每个 运行 时动态更改值。知道怎么做吗?

谢谢,

我能想到一个简单的方法来做到这一点。首先,您不能在同一个转换中声明和使用变量。我建议您通过以下方式解决此问题:

  1. 在此之前创建一个转换,比如 "set variables transformation"。在此转换中,您将设置变量。
  2. 您可以使用 Get System Info 步骤将今天和昨天的日期设置为变量。使用 copy rows to result 步骤将这些行传递到下一个转换。
  3. 在下一个转换中,也就是您附上屏幕截图的转换中,使用 Get Variables 步骤并在输入步骤中使用这些变量。或者您也可以使用 Get rows from result 步骤。

您现在无需担心日期,因为系统会生成日期并且您的变量会动态获取值。

如果您想详细了解如何将值从一种转换传递到另一种转换,可以查看这篇文章: https://anotherreeshu.wordpress.com/2014/12/23/using-copy-rows-to-result-in-pentaho-data-integration/

希望对您有所帮助!

我自己解决这个问题花了一些时间,我最终的解决方法如下:

我创建了一个转换(称为 'set formatted_today variable')转换包含两个对象:

  1. 转换包含一个 'table input' 对象,其查询如下:

    select to_char(current_timestamp, 'YYYY-MM-DD-HH-MI') as formatted_today

  2. 我的 'table input' 的输出转到 'set variables' 对象,您可以使用“获取字段”按钮将您在查询中命名的字段连接到您要设置的变量。在这种情况下,我的字段称为 'formatted_today',我的变量也是如此。

在我的主要工作中,我有一个 'set session variables' 对象来创建我的 'formatted_today' 变量。

紧接着,我调用我的 'set formatted_today variable' 转换

任何需要这个变量的地方我都会在文本中插入${formatted_today}

为此,您必须使用作业,添加第一个转换并在其中使用 获取系统信息步骤然后将今天和昨天的日期添加为变量,link到设置变量步骤。设置变量范围为parent job, 在第二份工作中使用 **获取变量 **。