【问题标题】:Datastage challenge数据阶段挑战
【发布时间】:2020-08-14 22:29:39
【问题描述】:

我有多个 txt 文件,每个文件有 100 万条记录(比如 10 个文件),这些文件保存在 LIST_OF_FILES.txt

我创建了一个序列和并行作业来从这些文件中提取数据以加载到表中 (db2)。

想象一下,我已经完成了前 2 个文件。在加载第 3 个文件时(考虑到目前已将 10000 条记录加载到表中),并行作业因环境问题而中止。

现在我想从作业中止的 10001 加载记录。

工作设计

  1. 执行命令activity_1:wc -l LIST_OF_FILES.txt.
  2. 开始循环:Start:1 , Step: 1 , To: Execute command activity_1 的输出。
  3. 执行命令activity_2:head -output_loop_counter LIST_OF_FILES.txt | tail -1.
  4. 并行作业:提取作业以将记录从文件加载到表中。
  5. 执行命令activity_3:将提取的文件移动到另一个文件夹。
  6. 结束循环:上述步骤将一直持续到最后一个文件。

【问题讨论】:

    标签: unix datastage


    【解决方案1】:

    这不是开箱即用的功能。您需要一个跟踪处理的记录数量的作业设计,以便您可以从已知的良好点重新开始。还要记住,如果作业中止,任何挂起的事务都会回滚 - 您的设计可能需要检查实际加载到目标表中的行数。

    【讨论】:

      【解决方案2】:

      假设您有一个,我将维护上述序列设计并更改提取作业以在您的表的 UC/主键上对目标表执行查找。

      将失败的查找设置为拒绝,并将您的加载阶段连接到拒绝链接。您可以将有效的查找转储到复制阶段以将它们终止并摆脱它们。这稍微模仿了变更捕获阶段,但没有排序要求,也没有值警告。

      【讨论】:

        猜你喜欢
        • 2013-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-20
        • 2023-03-17
        • 1970-01-01
        • 2014-12-21
        相关资源
        最近更新 更多