数据对账组件Data-Reconcile:高效可信对账利器

共 4242字,需浏览 9分钟

 ·

2021-01-28 18:29


数据治理通用组件WeBankBlockchain-Data当前3个子组件——数据仓库组件Data-Stash、数据导出组件Data-Export、数据对账组件Data-Reconcile,相互独立、可插拔、可灵活组装。


其中, 数据仓库组件Data-Stash通过为节点在外部生成全量数据备份,实现海量数据高效治理,关键特性和使用方式参见数据仓库组件Data-Stash:助力区块链节点“轻装上阵”


数据导出组件Data-Export提供通用化、智能化、标准化的数据导出解决方案,降低区块链数据开发门槛,关键特性和使用方式参见数据导出组件Data-Export:数据分析处理“加速器”


本文将介绍数据对账组件Data-Reconcile,欢迎大家积极体验,并将使用诉求或优化建议反馈给我们。


  认识Data-Reconcile


任何多方参与的交易系统,如订单系统、支付系统等,对账都是清结算交易生命周期中的重要环节,交易各方需要针对订单等交易数据和金额进行查漏补缺,直到账务完全对平。


传统企业间对账,一般按交易场次或交易日定时对账,存在较长的延时,如在交易期间出现账务不平的情况,则需要人工介入,手动追踪和确认问题,耗时耗力。同时,传统多方对账依赖于某个权威机构的信用,账务通常以中心机构的账本为准,存在一定信用和操作风险,如出现中心机构账本被恶意篡改,则影响对账多方的账务准确性和资金安全性。


针对上述问题,Data-Reconcile提供一种基于区块链的通用化数据对账解决方案,并支持对账框架动态可扩展,支持定制化开发。Data-Reconcile能够在对账不一致的情况下,找到一个可信的客观依据,从而减少因对账不平造成的排查成本。


基于区块链的数据对账,不仅能解决对账不平问题,还可大幅提升对账效率,将传统的多场次或T+1对账机制提升为准实时对账,实现“交易即对账”。


Data-Reconcile的拓扑图如下所示:



多方业务数据上链后,可借助数据导出Data-Export作为获取链上数据的桥梁,通过Data-Export将数据实时从链上导出。配置双方对账规则后,部署Data-Reconcile,组件将链上相关数据生成对账文件,并和从远端获取的对账文件进行数据核对,完成对账。


  Data-Reconcile关键特性一览


Data-Reconcile抽象了交易系统通用对账流程,提供灵活可配置的区块链数据对账解决方案,支持自定义对账数据和对账格式,支持定时对账和触发对账任务,提供多种扩展点,以便对账处理模块二次开发。


Data-Reconcile不仅适用于狭义上的交易对账,同样也适用于任何需要进行数据核对的业务场景。


1)灵活可配置的数据对账规则


针对不同场景下对账数据的不同,Data-Reconcile支持自定义对账数据及格式,只需配置对账字段映射规则,即可完成对账数据格式的定义。


对于不同的文件格式,Data-Reconcile默认支持txt、json文件格式,也支持通过扩展接口进行定制开发。


同时,两方对账文件传输时,需对文件进行托管,如文件管理器或服务器,Data-Reconcile默认支持FTP方式,支持扩展。


2)提供对账任务调度管理


Data-Reconcile提供对账任务调度管理,调用方式包括手动或自动,可通过配置自定义任务频次、对账时间;支持全流程追踪任务的状态变更,对失败和超时任务执行补偿、重试等处理,以保证对账任务的稳定执行。


对账任务的调度支持并行处理,提升对账效率。


3)可插拔、可扩展的对账流程


为满足不同场景下的对账需求,Data-Reconcile在提供通用对账实现的同时,支持流程的扩展,主要包括任务调度处理、对账数据获取、对账解析、执行、结果处理等步骤,可按需组装,灵活可插拔;处理流程支持定制化开发,易于扩展。


  Data-Reconcile整体架构


Data-Reconcile的整体架构如下图所示,包括基础模块、对账数据传输模块、对账消息模块、对账执行模块。



  • 基础模块:负责对上层业务模块的技术支持,提供文件和消息传输、任务全流程调度追踪、配置管理、对账文件快速生成和读取的能力。
  • 数据传输模块:负责链上数据获取,对账文件获取和推送。
  • 对账消息模块:负责与对账方通信,主要提供对账请求和对账结果通知等能力。
  • 对账模块:负责对账的具体执行和处理,提供对文件的解析、数据提取、对账逻辑处理、结果导出等功能。


Data-Reconcile在对账流程设计上,采用了责任链+模板方法的设计模式,实现各功能模块可插拔、可扩展。


流程核心接口如下:



各接口功能概述如下:
  • ReconcileHandlerChain:负责对账处理流程的构建,是对账处理的入口。
  • ReconcileTaskHandler:负责对任务的调度执行,包括对账任务创建、执行、 状态变更和全流程追踪。
  • ReconcileFileObtainHandler:负责对账文件获取,提供链上对账数据获取、对账文件生成、远端文件获取等能力。
  • ReconcileExecuteHandler:负责对账处理,提供对账文件解析、配对、数据并行处理对账等能力。
  • ReconcileResultHandler:负责对账结果处理,提供对账结果文件生成、对账结果推送、消息发送等能力。


  Data-Reconcile如何实现对账



在多方交易的数据交互场景中,各方数据上链后,由参与者中的对账需求方部署Data-Reconcile进行对账处理,多方对账的调用时序图如下:


1)搭建文件资源中心


对账执行方在核算前需获取对账参与方的对账文件,此时可通过搭建文件资源中心,如FTP,来作为对账文件的传输中心;对账数据提供方则需将对账文件推送至传输中心。


2)搭配数据导出


对账执行方通过数据导出Data-Export将链上数据实时导出到链下,以此作为对账的依据,更多数据导出组件的使用方式可参见数据导出组件Data-Export:数据分析处理“加速器”》。


3)部署Data-Reconlie


Data-Reconcile支持对对账时间、规则、任务调度、文件传输等进行自定义配置,任务调度、文件传输等模块会根据配置提供相关能力。


任务调度


任务调度配置包括调用方式、对账时间及数据范围、超时和失败的任务补偿等。


对账任务状态及对应场景如下:


状态

场景

待执行-0(初始态)

任务创建时

执行中-1 (中间态)

对账进行中

已完成-2(终态)

对账完成时

执行失败-3(中间态)

异常

结束终止-4(终态)

任务超时、重试次数达到上限


Data-Reconcile会根据任务的配置对执行中、执行失败两个中间态进行补偿。同时,对账执行支持手动调用方式,可通过Restful API请求方式触发对账。


文件传输


文件传输支持本地或远程FTP两种模式。本地模式支持从本地直接获取待对账文件,与链上导出数据进行对账;远程模式多适用于跨机构等场景,定期拉取远端文件进行对账。


通用对账规则定义


对账规则配置包括导出数据获取、文件格式和数据匹配规则的配置:
  • 链上数据获取配置:在Data-Export将数据导出到链下后,Data-Reconcile通过数据库直接获取链上数据,配置包括查询sql和时间范围字段等配置。
  • 对账文件格式配置:通过该配置可确定文件解析的方法,如txt文件,则采用对应的解析器来解析文件。
  • 对账数据规则配置:包括对账双方数据条目的唯一键配置,数据字段映射的配置,执行时将按照配置的映射规则和字段进行解析匹配,解析后转交由对账处理模块对账目进行核算处理。


开启对账


配置完成后,部署Data-Reconcile并开启对账,通过日志和任务状态表可实时查看对账进度。


4)对账执行和结果获取


Data-Reconcile定期从文件传输中心获取对账数据提供方推送的待对账文件,同时将Data-Export导出的链上数据生成对账文件,交由数据提取模块对文件进行逐条解析。匹配后的数据交由对账处理模块并行执行对账逻辑,完成后将结果生成文件保存,并推送至远端文件传输中心,供对账参与方获取对账结果。



  Data-Reconcile应用场景示例


在供应链金融、第三方支付等业务场景中,上下游企业间在合作中存在大量转账、交易等数据交互。这些数据分别保存在各自企业中心化管理的数据库中,清算时,需要对这些数据进行账目的比对,以保证互相之间账目数据的一致和准确。


在使用传统中心化对账方式时,由于需依赖于企业各自的中心化账本,对账时存在账目可信的问题,且对账周期较长,效率也待提升。


此时,企业间可通过FISCO BCOS搭建联盟链,并将交易数据上传到链上保存;对账时,使用Data-Reconcile,并根据自身需求定制开发,对企业间数据进行可信核算对账,在确保对账结果可信的同时提升对账效率。


  即刻使用


上述功能所涉及的最新代码和技术文档已同步更新,欢迎体验和 star 支持。如需咨询技术问题,欢迎关注本公众号,对话框回复【小助手】进技术交流群。


Data-Reconcile github代码库地址:

https://github.com/WeBankBlockchain/Data-Reconcile

Data-Reconcile gitee代码库地址:

https://gitee.com/WeBankBlockchain/Data-Reconcile


Data-Reconcile 技术文档:

https://data-doc.readthedocs.io/zh_CN/latest/docs/WeBankBlockchain-Data-Reconcile/index.html


首次体验Data-Reconcile,可参考快速部署文档:

https://data-doc.readthedocs.io/zh_CN/latest/docs/WeBankBlockchain-Data-Reconcile/install.html


向我们报告问题,欢迎提交issue

https://github.com/WeBankBlockchain/Data-Reconcile/issue



浏览 64
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报