选择前序的两个数据集节点,按配置的规则进行对账,输出包含对账结果的数据集。
选择用于对账的两个集合,可选前序数据集节点,左集的列在结果集的左侧,右集的列在结果集的右侧

配置对账集的映射关系,可配置多组,每组映射务必选择相同数据类型的列。

左右集会各自按配置的映射列分组,并将双方分组值相同的视为同一组数据。
假设原始数据如下。
左集:
|
商户 |
订单号 |
客户 |
金额 |
|---|---|---|---|
|
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_原字段名) |
同左集逻辑 |
样例如下:

回到顶部
咨询热线
