【问题标题】:Datastage incremental chargingDatastage 增量计费
【发布时间】:2018-08-27 09:03:16
【问题描述】:
  • 我们想在 DataStage 中执行增量加载(在并行环境中)。只加载前一次加载和新加载之间的增量(用于创建、更新、删除 DWH 中的记录)。

  • 我们希望存储上次加载期间恢复的最后一个密钥,以便能够在新加载时从下一条记录重新开始请求。

  • 我们已经成功地使用了一个参数来过滤运行时的 SQL 加载查询。不幸的是,我们还没有找到检索最后一个键(max (Key) - Aggregator?)并将其存储在此参数中的可能性。

  • 使用哪个阶段,在同一个并行作业中输出单个值,然后存储到参数?

有什么想法吗?

感谢您的帮助。

【问题讨论】:

    标签: parameter-passing loading datastage incremental-build


    【解决方案1】:

    考虑从您的目标中获取最大值 - 它很可能是一个数据库,并且 max() 很容易做到。

    查看我关于getting some data from the "stream" to a parameter的帖子

    【讨论】:

    • 谢谢迈克尔。您关于流到参数的帖子非常有用。更进一步,在知道这些值还取决于环境(测试/生产)的情况下,如何将其推广到多个表?每个表和每个环境都有一个参数文件吗?是否可以在数据库中全球化?关于最大值,这是否意味着我必须完成另一个通过序列作业链接的作业?我们不能在同一份工作中做所有事情吗?再次感谢您的照明。
    • 我强烈推荐使用 ParameterSets 进行数据库访问,您还可以包含诸如强制命令或数据库名称、用户、密码等任何您需要的内容。“增量最大值”不依赖于环境,因为它将单独收集(如果您的环境也有不同的数据库 - 再次推荐)。在我看来,一项一般(通用)工作可以完成(加上将其作为参数取回的步骤。如果您满意,请不要忘记标记答案或支持 cmets - 这就是这个论坛的工作方式 - 谢谢
    【解决方案2】:

    谢谢迈克尔,

    我发现 Head stage 可以在同一个作业中获得 max(LastRowId),其中“所有行(跳过后)= False)和“行数(每个分区)=1。我以顺序模式运行作业......

    效果很好。

    【讨论】:

      猜你喜欢
      • 2018-10-04
      • 2021-03-24
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2012-02-26
      • 1970-01-01
      • 2016-05-23
      相关资源
      最近更新 更多