全部文档
文档中心数据流3.0节点数据集-转换对账

对账

选择前序的两个数据集节点,按配置的规则进行对账,输出包含对账结果的数据集。

选择用于对账的两个集合,可选前序数据集节点,左集的列在结果集的左侧,右集的列在结果集的右侧



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



左右集会各自按配置的映射列分组,并将双方分组值相同的视为同一组数据。

假设原始数据如下。

左集:

商户

订单号

客户

金额

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_原字段名)

同左集逻辑

样例如下:



回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send