选择前序的两个数据集节点,按配置的规则进行对账,输出包含对账结果的数据集。
选择用于对账的两个集合,可选前序数据集节点,左集的列在结果集的左侧,右集的列在结果集的右侧
配置对账集的映射关系,可配置多组,每组映射务必选择相同数据类型的列。
左右集会各自按配置的映射列分组,并将双方分组值相同的视为同一组数据。
假设原始数据如下。
左集:
商户 |
订单号 |
客户 |
金额 |
---|---|---|---|
Store1 |
01 |
A |
100 |
Store1 |
02 |
B |
200 |
Store1 |
03 |
B |
300 |
Store2 |
04 |
C |
400 |
右集:
收款方 |
流水号 |
客户 |
金额 |
---|---|---|---|
Store1 |
01 |
A |
100 |
Store1 |
02 |
B |
501 |
Store2 |
04 |
D |
400 |
假设配置映射列为:
左集 |
右集 | |
---|---|---|
商户 |
= |
收款方 |
客户 |
= |
客户 |
各自分组结果:
左集.商户 |
左集.客户 |
---|---|
Store1 |
A |
Store1 |
B |
Store2 |
C |
右集.收款方 |
右集.客户 |
---|---|
Store1 |
A |
Store1 |
B |
Store2 |
D |
映射成功的组:
左集.商户 |
左集.客户 |
右集.收款方 |
右集.客户 | |
---|---|---|---|---|
Store1 |
A |
= |
Store1 |
A |
Store1 |
B |
= |
Store1 |
B |
选择各自的金额列,按各自映射列分组后求和,可设置单边容差,比较求和后的金额列,得到对账结果。
按上例,选择金额字段作为金额列。
各自分组结果:
左集.商户 |
左集.客户 |
左集.金额列 |
---|---|---|
Store1 |
A |
100 |
Store1 |
B |
200+300=500 |
Store2 |
C |
400 |
右集.收款方 |
右集.客户 |
右集.金额列 |
---|---|---|
Store1 |
A |
100 |
Store1 |
B |
501 |
Store2 |
D |
400 |
映射成功的组:
左集.商户 |
左集.客户 |
左集.金额列 |
右集.收款方 |
右集.客户 |
右集.金额列 | |
---|---|---|---|---|---|---|
Store1 |
A |
100 |
= |
Store1 |
A |
100 |
Store1 |
B |
200+300=500 |
= |
Store1 |
B |
501 |
若不设置容差,需要双方的金额列的值完全相等,才视为匹配上。则上例中,只有第一行能匹配上:100=100。
左集.商户 |
左集.客户 |
左集.金额列 |
= |
右集.收款方 |
右集.客户 |
右集.金额列 |
对账结果 |
原因 |
---|---|---|---|---|---|---|---|---|
Store1 |
A |
100 |
= |
Store1 |
A |
100 |
√ 匹配(matched) |
exact_matched - 映射字段一致,金额完全一致 |
Store1 |
B |
200+300=500 |
= |
Store1 |
B |
501 |
× 不匹配(unmatched) |
beyond_tolerance - 映射字段一致,金额超容差; |
支持点击设置齿轮,以左集或右集为基础,选择一个固定数字作为容差范围,当对方集合的金额列合计数字,在这个范围内(闭区间,两端包含),即认为也可以匹配上,但不是精确匹配,精确匹配或容差范围内的匹配,在结果集的recon_reason - 对账结果
中会有所体现。
例如,此例中,设置以左集
为基础,右集可在左集的±5
中浮动,那么只要右集的数字在495~505
的范围内,都属于匹配。
左集.商户 |
左集.客户 |
左集.金额列 |
= |
右集.收款方 |
右集.客户 |
右集.金额列 |
对账结果 |
原因 |
---|---|---|---|---|---|---|---|---|
Store1 |
A |
100 |
= |
Store1 |
A |
100 |
√ 匹配(matched) |
exact_matched - 映射字段一致,金额完全一致 |
Store1 |
B |
200+300=500 |
= |
Store1 |
B |
501 |
√ 匹配(matched) |
within_tolerance - 映射字段一致,金额容差内 |
支持从源对账集中选取其他列进行聚合,聚合结果也会返回在输出集中,用以保留除映射列和金额列以外的其他必要数据。
例如上例中,左集想要保留聚合后的订单号,右集想要保留聚合后的流水号,后续要用于回写对账状态等,则可以将左集.订单号
、右集.流水号
添加为参考列,聚合函数选择array_agg - 聚合
或array_agg_distinct - 去重聚合
,得到的参考列:
左集:
映射列:左集.商户 |
映射列:左集.客户 |
金额列:左集.金额 |
参考列:左集.订单号-聚合 |
---|---|---|---|
Store1 |
A |
100 |
[‘01’] |
Store1 |
B |
200+300=500 |
[‘02’, ‘03’] |
Store2 |
C |
400 |
[‘04’] |
右集:
映射列:右集.收款方 |
映射列:右集.客户 |
金额列:右集.金额 |
参考列:右集.流水号-聚合 |
---|---|---|---|
Store1 |
A |
100 |
[‘01’] |
Store1 |
B |
501 |
[‘02’] |
Store2 |
D |
400 |
[‘04’] |
选择好用于对账的左右集合后,可以点击AI
按钮,使用智能对账功能,该功能将根据左右集的调试结果,智能配置对账规则和参考列,此功能应用后会覆盖已有配置,请谨慎操作,并在智能配置后进行人工检查。
对账节点的调试栏提供了采样对比功能,用于查看对账集数据结构,以便于配置对账规则。
在选择了左右对账集,且双方对账集都已经有调试结果后,可用。
对账节点输出的数据结果为对账结果输出集,列字段包含对账结果、左集数据、右集数据三个部分:
类型 |
字段 |
说明 |
---|---|---|
对账结果 |
recon_id - 对账ID |
自动生成的uuid,每组对账结果的唯一标识,UUID在每次运行后会变,不建议作为后续处理的依据! |
recon_result - 对账结果 |
matched - 容差范围内完全一致; unmatched - 不完全一致,存在差异; | |
recon_reason - 原因 |
exact_matched - 映射字段一致,金额完全一致; within_tolerance - 映射字段一致,金额容差内; beyond_tolerance - 映射字段一致,金额超容差; left_only - 仅在左集中,未在右集中; right_only - 仅在右集中,未在左集中; | |
val_diff - 差异金额 |
右集金额列 - 左集金额列 | |
左集字段 |
映射列(L_原字段名) |
即分组列,如按订单号分组,可能为:”ORDER_01”、”ORDER_02” |
金额列(L_原字段名) |
左集金额合计,如含税金额合计,可能为:”total_amount” | |
参考列(L_原字段名) |
按聚合配置结果 | |
右集字段 |
映射列(R_原字段名) |
同左集逻辑 |
金额列(R_原字段名) |
同左集逻辑 | |
参考列(R_原字段名) |
同左集逻辑 |
样例如下:
回到顶部
咨询热线