【问题标题】:load table column into an array in datastage将表列加载到数据阶段中的数组中
【发布时间】:2014-02-16 07:59:26
【问题描述】:

我需要在一个有两列的表上运行一个数学函数。 一列是日期,另一列是数字。 我需要按日期对数据进行排序,并且对于每个日期,我需要取同一日期的数字、前 1 个日期的数字和后一个日期的数字。

我在这 3 个数字上运行该函数。 我是一个 linux 程序员,对我来说这很简单,我只是把它放在一个数组中并运行它。 我可以用 datastage 来做吗?我可以将表中的数据加载到数组中并执行相同的操作吗? 我在 datastage 中发现的只是逐行运行。我只想知道在datastage中是否可以轻松完成类似的事情,如果可以 指导我如何开始工作!

谢谢

【问题讨论】:

    标签: datastage


    【解决方案1】:

    您可以在变压器阶段使用循环。 http://newtonapples.com/datastage-transformer-looping-1/ 使用排序阶段按日期对数据进行排序(这很容易)。 然后使用变压器级。创建 2 个循环变量,一个用于最后一行,一个用于最后一行。然后将您的函数应用于三行。 这是另一个循环示例,但它比第一个链接http://datastageinfoguide.blogspot.com/2013/01/looping-concept-in-datastage-85-or-87.html复杂一点

    【讨论】:

      【解决方案2】:

      如果您在 PX 中执行此操作,您将需要一个更复杂的解决方案,包括按顺序运行部分/全部作业。如果我理解正确,您有:

      A 行,第 1 天

      B 行,第 2 天

      C 行,第 3 天

      你想要什么:

      A, , 1, 2

      B、1、2、3

      C, 2, 3,

      首先,您应该按顺序运行此作业,即使使用 PX。在 PX 中有很多方法可以做到这一点,但不值得这么麻烦。

      其次,您应该按升序对所有数据进行排序。使用变压器查找前一天的数字。你会得到:

      A, , 1

      B、1、2

      C、2、3

      第三次获取此数据并按降序对其进行排序。在另一个变压器中应用与以前基本相同的逻辑。这会得到你

      C, 2, 3,

      B、1、2、3

      A, , 1, 2

      HTH!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-06
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        相关资源
        最近更新 更多