记录的重复数据删除,而不会在具有已排序数据的大型机顺序数据集中进行排序

问题描述 投票:0回答:1

这是有关对已排序的大型机数据集进行重复数据删除而不重新排序的查询。

输入顺序数据集具有以下结构。前4个字节中的“ KEYn”代表键,每行的其余部分代表记录的其余数据。有些记录中重复相同的键,尽管每个记录中的剩余数据都不同。记录已在“ KEYn”上排序。

KEY1aaaaaa

KEY1bbbbbb

KEY2cccccc

KEY3xxxxxx

KEY3yyyyyy

KEY3zzzzzz

KEY3wwwwww

KEY4uuuuuu

KEY5hhhhhh

KEY5ffffff

我的要求是获取每个键的第一条记录,并删除其余的“重复项”。因此上述输入的输出文件应如下所示:

KEY1aaaaaa

KEY2cccccc

KEY3xxxxxx

KEY4uuuuuu

KEY5hhhhhh

由于数据已被排序,所以我不希望将SORT实用程序与SUM FIELDS = NONE或ICETOOL与SELECT-FIRST操作数一起使用,因为这两个操作实际上最终都会对重复数据删除键(KEYn)上的数据进行重新排序。另外,我指的是实际的数据集非常大(16亿条记录,AVGRLEN 900 VB),并且一项工作实际上用尽了工作空间,试图一次性对其进行排序。

我的查询是:在基于JCL的实用程序中,是否有任何选项可以执行此重复数据删除操作而无需重新使用和使用排序工作空间?我试图避免编写COBOL / Assembler程序来做到这一点。

duplicates batch-processing mainframe jcl dfsort
1个回答
0
投票

尝试此未经测试。

OPTION COPY                                                         
INREC BUILD=(1,4,SEQNUM,3,ZD,RESTART=(5,4),5)    
OUTFIL INCLUDE=(5,3,ZD,EQ,1),BUILD=(1,4,8)
© www.soinside.com 2019 - 2024. All rights reserved.