我有一个包含 10 条记录的平面文件,其中 5 条记录是重复记录(唯一键列:Customer_Id
和source_system
)。此平面文件必须加载到 Oracle 表中,这是第一次加载。
如何消除其中的重复项?
我有一个包含 10 条记录的平面文件,其中 5 条记录是重复记录(唯一键列:Customer_Id
和source_system
)。此平面文件必须加载到 Oracle 表中,这是第一次加载。
如何消除其中的重复项?
有很多方法可以处理这个问题:
您始终可以使用聚合器转换并按您想要使其与众不同的所有数据进行分组。因此,如果您按所有列分组,则只有那些不同的列最终会出现。
您可以使用排序器并检查加载不同的行。
SRC-->SQ-->SRT-->EXP-->RTR-->TGT
你从源头输入是
Col1 Col2
1 A
1 B
2 C
2 D
1 E
1 F
3 G
4 H
5 I
6 J
4 K
3 L
在排序器中按 col1 排序数据,排序器数据后看起来像这样
Col1 Col2
1 A
1 B
1 E
1 F
2 C
2 D
3 G
3 L
4 K
4 H
5 I
6 J
在 exp 你有两个输入端口
in_col1
in_col2
按如下顺序创建变量端口和输出端口
v_FLAG= IIF(v_col1=in_col1,2,1)
v_col1=in_col1
out_FLAG=v_FLAG
然后输出的表达式数据看起来像这样
Col1 Col2 FLAG
1,A, 1
1, B, 2
1, E, 2
1, F, 2
2, C, 1
2, D, 2
3, G, 1
3, L, 2
4, K,1
4, H, 2
5, I, 1
6, J, 1
在路由器中创建两组,一组用于唯一记录,另一组用于重复记录。
unique=(FLAG=1)
duplicate=(FLAG=2)
将两组连接到两个目标。SRC-->SQ-->SRT-->EXP-->RTR-->TGT
你从源头输入是
Col1 Col2
1 A
1 B
2 C
2 D
1 E
1 F
3 G
4 H
5 I
6 J
4 K
3 L
在排序器中按 col1 排序数据,排序器数据后看起来像这样
Col1 Col2
1 A
1 B
1 E
1 F
2 C
2 D
3 G
3 L
4 K
4 H
5 I
6 J
在 exp 你有两个输入端口
in_col1
in_col2
按如下顺序创建变量端口和输出端口
v_FLAG= IIF(v_col1=in_col1,2,1)
v_col1=in_col1
out_FLAG=v_FLAG
然后输出的表达式数据看起来像这样
Col1 Col2 FLAG
1,A, 1
1, B, 2
1, E, 2
1, F, 2
2, C, 1
2, D, 2
3, G, 1
3, L, 2
4, K,1
4, H, 2
5, I, 1
6, J, 1
在路由器中创建两组,一组用于唯一记录,另一组用于重复记录。
unique=(FLAG=1)
duplicate=(FLAG=2)
将两组连接到两个目标。