数据工厂数据重复问题排查

1. 问题简介

通过数据工厂加工处理数据时,常常因为处理不当使得数据被重复计算。数据重复的原因大致有以下三个方面:

可能原因

示例

横向连接条件不全

原本区分唯一性需要关联产品名称、产品型号、单位这三个字段,但是设置的时候只设置了产品名称、产品型号,没有关联上单位,此时同一名称型号的,可能会有多个单位,就会导致数据重复

输入中选择了子表单

输入中同时选择了主表字段和子表单字段的话,主表单的字段都会按照子表单的行数重复,子表单有几行,主表字段就重复几次

数据本身有重复

 数据本身有重复的话,输出就可能重复

2. 横向连接条件不全

2.1 问题说明

横向连接需要保证连接字段的唯一性,如果连接字段不能唯一匹配,则计算的数据可能会出现重复。

如,原本区分唯一性需要关联产品名称、产品型号、单位这三个字段,但是设置的时候只设置了产品名称、产品型号,没有关联上单位,此时同一名称型号的,可能会有多个单位,就会导致数据重复。

示例原始数据:

正确示例

错误示例

2.2 解决方案

横向连接的连接字段,需要将可以确定唯一性的字段全部作为横向连接的关联字段,比如上述案例,关联字段就需要设置为产品名称=产品名称,产品型号=产品型号,单位=单位,缺一不可。

3. 输入中选择了子表单

3.1 问题说明

当输入选择了主表字段,同时又选择了子表单之后,主表字段会重复,所以主表字段无法区分数据的唯一性,后续加工数据的时候,比如横向连接,关联字段就无法仅仅设置为这个主表字段进行关联。

主表字段的入库单号全部一样,效果如下:

3.2 解决方案

以上面举例的数据,后续如果需要横向连接的话,关联字段就需要设置为订单号=订单号(订单相关的单号),产品名称=产品名称,产品型号=产品型号,单位=单位。

4. 数据本身有重复

4.1 问题说明

原始数据有子表单在数据工厂计算时,子表单中的每一条子数据都会被拆分成一条一条独立的数据。下图为示例原始数据:

在数据工厂处理时,原始数据将变成如下所示,其中牛奶-光明-箱有 2 条重复的数据:

4.2 解决方案

如果处理数据时,需要保证数据唯一性,不需要重复的数据,那么我们可以使用「分组汇总」功能,将重复数据进行去重。

  • 分组字段添加:入库单号、产品名称、产品型号、单位
  • 汇总字段添加:入库数量

设置如下图所示:

处理后的数据如下图所示,已经不再有重复数据:

Copyright(C)2023 HFBangFu Inc. All Rights Reserved 皖ICP备12017563号-5