如何解决数据阶段挑战
我有多个txt文件,每个文件有100万个记录(说10个文件),这些文件保存在LIST_OF_FILES.txt
中。
我已经创建了一个序列并行作业,以从那些文件中提取数据以加载到表(db2)中。
想象一下,我已经完成了前两个文件。在加载第三个文件时(考虑到目前已将10000条记录加载到表中),并行作业由于某些环境问题而中止。
现在,我想从10001开始加载记录,在该记录中作业被终止。
作业设计
- 执行命令activity_1:
wc -l LIST_OF_FILES.txt.
- 启动循环:开始:1,步骤:1,到:执行命令activity_1的输出。
- 执行命令activity_2:
head -output_loop_counter LIST_OF_FILES.txt | tail -1.
- 并行作业:提取作业以将记录从文件加载到表中。
- 执行命令activity_3:将提取的文件移动到另一个文件夹。
- 结束循环:上述步骤将持续到最后一个文件。
解决方法
这不是开箱即用的功能。您需要一个作业设计来跟踪已处理的记录数,以便可以从已知的好点重新开始。同样要记住,如果作业中止,任何待处理的事务都会回滚-您的设计可能需要检查实际上已将多少行加载到目标表中。
,我将保持上述序列设计并更改提取作业,以在表的UC /主键上对目标表执行查找,假设您有一个。
将失败的查找设置为拒绝,然后将加载阶段连接到拒绝链接。您可以将有效查找转储到复制阶段,以使它们死胡同并摆脱它们。这略微模仿了变更捕获阶段,但是没有排序要求,也没有关于值的警告。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。