CN116303620A - 基于轻型数据库的对账方法、系统、设备、介质及产品 - Google Patents

基于轻型数据库的对账方法、系统、设备、介质及产品 Download PDF

Info

Publication number
CN116303620A
CN116303620A CN202310357360.6A CN202310357360A CN116303620A CN 116303620 A CN116303620 A CN 116303620A CN 202310357360 A CN202310357360 A CN 202310357360A CN 116303620 A CN116303620 A CN 116303620A
Authority
CN
China
Prior art keywords
data
file
reconciliation
data table
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310357360.6A
Other languages
English (en)
Inventor
韩金涛
丁子钰
吕光
赵博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310357360.6A priority Critical patent/CN116303620A/zh
Publication of CN116303620A publication Critical patent/CN116303620A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computational Linguistics (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种基于轻型数据库的对账方法,可以应用于金融领域或其他领域,该基于轻型数据库的对账方法包括:获取待对账文件和预先存储的至少一个配置文件,将待对账文件导入预先建立的轻型数据库;其中,轻型数据库部署于本地;根据待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表;其中,第一业务参与方与第二业务参与方对应的机构类型不同;将第一数据表与第二数据表中的数据进行比对,按照对账规则将对平的数据移入对平池,将未对平数据移入差异池,得到对账结果。本公开还提供了一种基于轻型数据库的对账系统、设备、存储介质和程序产品。

Description

基于轻型数据库的对账方法、系统、设备、介质及产品
技术领域
本公开涉及数据库技术领域和金融技术领域,具体涉及一种基于轻型数据库的对账方法、系统、设备、介质及产品。
背景技术
在架构转型过程中发现,因消息队列(Message Queue,MQ)、上下游、合作方等容错机制原因,需要对传输的对账等数据进行重排处理,因传统ORCAL数据库通过数据插表、主键防重方式实现,在Mysql+java的实现模式下,仅做防重判断就浪费大量数据库交互不太合算,频繁数据库交互导致对账效率低下、数据库服务器压力负荷重等问题,同时,如何对百万级数据进行高效排序也成为亟待解决的问题。
发明内容
鉴于上述问题,本公开提供了一种基于轻型数据库的对账方法、系统、设备、介质及产品。
根据本公开的第一个方面,提供了一种基于轻型数据库的对账方法,包括:获取待对账文件和预先存储的至少一个配置文件,将待对账文件导入预先建立的轻型数据库;其中,轻型数据库部署于本地;根据待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表;其中,第一业务参与方与第二业务参与方对应的机构类型不同;将第一数据表与第二数据表中的数据进行比对,按照对账规则将对平的数据移入对平池,将未对平数据移入差异池,得到对账结果。
根据本公开的实施例,获取待对账文件和预先存储的至少一个配置文件包括:间隔预设时间定期获取待对账文件和预先存储的至少一个配置文件;其中,至少一个配置文件用于配置轻型数据库中各个表的表单信息、映射关系和预设格式。
根据本公开的实施例,根据待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表包括:采用至少一个配置文件对待对账文件进行解析,生成不同数据类别的对账数据,并建立数据类别与轻型数据库中各个表的映射关系;根据映射关系,将不同数据类别的对账数据分别更新至对应的文件导入记录表、第一数据表和第二数据表中。
根据本公开的实施例,生成不同数据类别的对账数据还包括:根据至少一个配置文件中的转译入库规则,将不同数据类别的对账数据转换为对应的预设格式。
根据本公开的实施例,生成不同数据类别的对账数据还包括:分别遍历第一数据表和第二数据表,检测是否存在重复的对账数据;响应于存在重复的对账数据,删除重复的对账数据至有且只有其中一个。
根据本公开的实施例,将第一数据表与第二数据表中的数据进行比对包括:获取文件导入记录表中的增量业务数据,确定增量业务数据的主键,主键对应至少一个目标字段;根据增量业务数据的主键查询第一数据表,得到目标字段对应的第一字段值;根据增量业务数据的主键查询第二数据表,得到目标字段对应的第二字段值;响应于第一字段值与第二字段值对平,将增量业务数据移入对平池;响应于第一字段值与第二字段值未对平,将增量业务数据移入差异池,得到对账结果。
根据本公开的实施例,将第一数据表与第二数据表中的数据进行比对还包括:根据增量业务数据的主键查询第一数据表,按照预设顺序进行排列后得到目标字段对应的第一字段值;根据增量业务数据的主键查询第二数据表,按照预设顺序进行排列后得到目标字段对应的第二字段值;将第一字段值与第二字段值的数据按照顺序进行比对。
根据本公开的实施例,将第一数据表与第二数据表中的数据进行比对还包括:根据增量业务数据的主键查询第一数据表,未得到字段值;或根据增量业务数据的主键查询第二数据表,未得到字段值;响应于未得到字段值,将增量业务数据移入差异池,得到对账结果。
根据本公开的实施例,将待对账文件导入预先建立的轻型数据库包括:根据待对账文件后缀对应的文件类型将待对账文件的基本信息写入与文件类型所对应的文件导入记录表;文件导入记录表为通过SQLite轻型数据库建立的数据库表,文件基本信息至少包括接收文件路径、文件名和结果输出路径。
根据本公开的实施例,得到对账结果还包括:定期启动清理线程,删除已处理的对账数据和过期数据。
本公开的第二方面提供了一种基于轻型数据库的对账系统,包括:获取模块,用于获取待对账文件和预先存储的至少一个配置文件,将待对账文件导入预先建立的轻型数据库;其中,轻型数据库部署于本地;更新模块,用于根据待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表;其中,第一业务参与方与第二业务参与方对应的机构类型不同;比对模块,用于将第一数据表与第二数据表中的数据进行比对,按照对账规则将对平的数据移入对平池,将未对平数据移入差异池,得到对账结果。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述基于轻型数据库的对账方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述基于轻型数据库的对账方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述基于轻型数据库的对账方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的基于轻型数据库的对账方法、装置、系统、设备及介质的应用场景图;
图2示意性示出了根据本公开实施例的基于轻型数据库的对账方法的流程图;
图3示意性示出了根据本公开实施例的更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表方法的流程图;
图4示意性示出了根据本公开实施例的将第一数据表与第二数据表中的数据进行比对方法的第一流程图;
图5示意性示出了根据本公开实施例的将第一数据表与第二数据表中的数据进行比对方法的第二流程图;
图6示意性示出了根据本公开实施例的将第一数据表与第二数据表中的数据进行比对的第三流程图;
图7示意性示出了根据本公开实施例的基于轻型数据库的对账系统交互的流程图;
图8示意性示出了根据本公开实施例的基于轻型数据库的对账系统的结构框图;以及
图9示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
现有技术一般是通过直接访问业务数据库来进行数据查询、插入和更新的,而且对于大数据量的对账系统来说,会长时间占用数据库连接资源,对于交易业务来说就降低了数据库连接池的使用量,进而导致了系统对外服务能力差;基于现有对账方法中的缺点,本公开的实施例提供了一种基于轻型数据库的对账方法、系统、设备、介质及产品,应用于金融领域,能够提高对账过程的效率,降低数据库服务器的压力。
图1示意性示出了根据本公开实施例的可以应用于基于轻型数据库的对账方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的基于轻型数据库的对账方法一般可以由终端设备101、102、103和服务器105执行。相应地,本公开实施例所提供的基于轻型数据库的对账系统一般可以设置于终端设备101、102、103和服务器105中。本公开实施例所提供的基于轻型数据库的对账方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的基于轻型数据库的对账系统也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图9对公开实施例的基于轻型数据库的对账方法进行详细描述。
图2示意性示出了根据本公开实施例的基于轻型数据库的对账的流程图。
如图2所示,该基于轻型数据库的对账方法200可以包括操作S210~S230。
在操作S210,获取待对账文件和预先存储的至少一个配置文件,将待对账文件导入预先建立的轻型数据库;其中,轻型数据库部署于本地。
示例性地,对账类型为一对一对账。待对账文件包括业务参与双方的支付数据、交易数据等,将相关联的支付数据、交易数据等导入本公开的轻型数据库。轻型数据库部署到本地,一般是嵌入到应用程序内部的一种数据库形式,因此不会去占用数据库服务器连接池,减少了对业务交易的影响,降低了数据库服务器的压力,其次,轻型数据库具有存储数据量大、执行效率高、直接API调用等特点,可以更好地处理大数据量的数据对比工作。
在操作S220,根据待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表;其中,第一业务参与方与第二业务参与方对应的机构类型不同。
以文件导入记录表为主表,从文件导入记录表中取出某一条支付/交易数据,与第一数据表、第二数据表中的所有数据逐条对比。示例性地,第一业务参与方为银行机构,第二业务参与方为银联机构。
在操作S230,将第一数据表与第二数据表中的数据进行比对,按照对账规则将对平的数据移入对平池,将未对平数据移入差异池,得到对账结果。
根据上述实施例,如果第一数据表、第二数据表中均存在与文件导入记录表取出数据的目标字段相同的数据,则为匹配成功,该笔交易对账结果为对平,将文件导入记录表、第一数据表、第二数据表中的这条对平数据移入对平池,否则移入差异池,得到对账结果。
本公开基于轻型数据库实现对账的方法,降低了在架构转型过程中频繁与数据库交互带来的系统压力,将对账逻辑由持久层迁移到应用层,提高了工作效率,增加了对账系统的稳定性。
在上述实施例的基础上,获取待对账文件和预先存储的至少一个配置文件包括:间隔预设时间定期获取待对账文件和预先存储的至少一个配置文件;其中,至少一个配置文件用于配置轻型数据库中各个表的表单信息、映射关系和预设格式。
每间隔预设时间定期获取待对账文件和配置文件,从而可以根据需求,采用定时的方式对对账文件进行读取和导入,大大缩短了针对不同渠道传来的对账文件的解析和入库时间。配置文件用于配置轻型数据库中各个表的表单信息、需要存储的对账数据的数据类别和数据大小、不同数据类别的对账数据的格式以及不同数据类别和目标数据库中各个表的映射关系等等。本公开的对账方法还可根据对不同对账场景的特点,配置相应地下载、解析及对账规则,实现快速接入对账。
图3示意性示出了根据本公开实施例的更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表方法的流程图。
如图3所示,该更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表的方法可以包括操作S221~S222。
在操作S221,采用至少一个配置文件对待对账文件进行解析,生成不同数据类别的对账数据,并建立数据类别与轻型数据库中各个表的映射关系。
在操作S222,根据映射关系,将不同数据类别的对账数据分别更新至对应的文件导入记录表、第一数据表和第二数据表中。
对于待对账文件,可以先进行预处理,再转换为可解析文件。根据配置的解析规则和映射关系,将待对账文件的内容解析到轻型数据库相应的表中。本公开的方法通过预设的配置文件即可对从各渠道汇聚而来的各种格式的对账文件进行处理,提高将所述对账文件导入数据库中指定表的速度;同时对于不同格式的对账文件,无需进行大幅修改,只用对配置文件简单修改即可继续导入过程,大大减少了开发人员的工作量,并能灵活应对各种修改要求。
在上述实施例的基础上,生成不同数据类别的对账数据还包括:根据至少一个配置文件中的转译入库规则,将不同数据类别的对账数据转换为对应的预设格式。
通过配置文件中的转译入库规则,将不同数据类别的对账数据转换为对应的预设格式,进一步提高了对账速度,完善了对账功能。具体地,配置文件例如为XML格式,对账文件例如为txt格式或者CSV格式。
在上述实施例的基础上,生成不同数据类别的对账数据还包括:分别遍历第一数据表和第二数据表,检测是否存在重复的对账数据;响应于存在重复的对账数据,删除重复的对账数据至有且只有其中一个。
通过遍历在第一数据表和第二数据表中的所有重复的对账数据,可以将重复的对账数据删除,避免第一数据表和第二数据表中存在多条重复的对账数据时导致后续的对账失败,同时也有利于提高对账处理效率。
图4示意性示出了根据本公开实施例的将第一数据表与第二数据表中的数据进行比对方法的第一流程图。
如图4所示,该将第一数据表与第二数据表中的数据进行比对的方法可以包括操作S231~S234。
在操作S231,获取文件导入记录表中的增量业务数据,确定增量业务数据的主键,主键对应至少一个目标字段。
在操作S232,根据增量业务数据的主键查询第一数据表,得到目标字段对应的第一字段值。
在操作S233,根据增量业务数据的主键查询第二数据表,得到目标字段对应的第二字段值。
在操作S234,响应于第一字段值与第二字段值对平,将增量业务数据移入对平池;响应于第一字段值与第二字段值未对平,将增量业务数据移入差异池,得到对账结果。
根据上述实施例,以文件导入记录表为主表,从文件导入记录表中获取增量业务数据,增量业务数据指的是当前增加的支付/交易数据数据记录,增量业务数据可以是一条数据记录或者多条数据记录。作为一种可行的方式,增量业务数据可以包括订单编号、交易金额、收款方、付款方、交易时间等字段;主键可以是订单编号。
将文件导入记录表中的增量业务数据与第一数据表、第二数据表中的所有数据逐条对比,如果第一数据表、第二数据表中均存在与文件导入记录表取出数据的目标字段相同的数据,则第一字段值与第二字段值对平,该条数据记录的对账结果为对平。都比对结束后,此时第一数据表中的数据为未成功匹配文件导入记录表的数据。进一步地,以第一数据表为主表,从第一数据表中逐条取出数据,循环匹配第二数据表中的数据,如果第一数据表、第二数据表的数据匹配成功,则继续与差异池中的文件导入记录表进行比对;如果第一数据表、第二数据表与差异池中文件导入记录表存在相同的比对数据,则为对平,将第一数据表中的该条对平数据移入对平池中,将第二数据表与差异池文件导入记录表中的该条对平数据删除;否则该条数据记录对账结果为未对平,将第一数据表、第二数据表中匹配成功的该条数据移入差异池对应的第一数据表、第二数据表里。
图5示意性示出了根据本公开实施例的将第一数据表与第二数据表中的数据进行比对方法的第二流程图。
如图5所示,该将第一数据表与第二数据表中的数据进行比对的方法可以包括操作S2311~S2313。
在操作S2311,根据增量业务数据的主键查询第一数据表,按照预设顺序进行排列后得到目标字段对应的第一字段值。
在操作S2312,根据增量业务数据的主键查询第二数据表,按照预设顺序进行排列后得到目标字段对应的第二字段值。
在操作S2313,将第一字段值与第二字段值的数据按照顺序进行比对。
示例性地,主键是订单编号时,则预设顺序可以是从大到小的顺序,也可以是从小到大的顺序。分别对第一数据表、第二数据表中的数据记录按照预设顺序进行排列,再依次对排序后的第一数据表、第二数据表中的数据记录进行比对,相较于现有技术中需要针对对账文件中的每一条数据记录,分别要查询本地数据库中的保存的交易信息,获取与之匹配的交易记录进行比较而言,本公开有效地提高了对账的处理效率。
图6示意性示出了根据本公开实施例的将第一数据表与第二数据表中的数据进行比对的第三流程图。
如图6所示,该将第一数据表与第二数据表中的数据进行比对的方法可以包括操作S2321~S2322。
在操作S2321,根据增量业务数据的主键查询第一数据表,未得到字段值;或根据增量业务数据的主键查询第二数据表,未得到字段值。
在操作S2322,响应于未得到字段值,将增量业务数据移入差异池,得到对账结果。
根据上述实施例,将文件导入记录表中的增量业务数据与第一数据表、第二数据表中的所有数据逐条对比,如果第一数据表或者第二数据表中缺少数据,则将增量业务数据移入差异池。进一步地,尝试从差异池中匹配,与差异池中历史未对平的第一数据表、第二数据表数据比对,如果差异池的第一数据表、第二数据表中均存在与文件导入记录表中取出的该条数据记录的目标字段对应的字段值相同,则为匹配成功,该笔交易对账结果为对平,将文件导入记录表中该条对平的数据记录移入对平池中,将差异池的第一数据表、第二数据表中与文件导入记录表当前数据记录匹配成功的数据删除。若文件导入记录表与差异池的数据仍未对平,将文件导入记录表中该条数据记录移入差异池的文件导入记录表中。
在上述实施例的基础上,将待对账文件导入预先建立的轻型数据库包括:根据待对账文件后缀对应的文件类型将待对账文件的基本信息写入与文件类型所对应的文件导入记录表;文件导入记录表为通过SQLite轻型数据库建立的数据库表,文件基本信息至少包括接收文件路径、文件名和结果输出路径。
轻型数据库特点是体量小,一般为几兆大小,方便直接嵌入到应用内部,不会导致应用部署包膨胀;轻型数据库一般是零配置和安装,引入对应的jar就可直接使用;轻型数据库都是独立的,无额外依赖,可以更方便的引入并使用;支持多种语言,适用性高,能适配多种语言开发的应用程序。优选地,使用SQ Ljte轻型数据库,当然,根据实际情况也可以使用其他类型的轻型数据库。
在上述实施例的基础上,得到对账结果还包括:定期启动清理线程,删除已处理的对账数据和过期数据。
对已处理的对账数据和过期数据有相应的一套清理和保存机制。对需要保存的表,在轻型数据库中保留一段时间(视情况而定,例如保存一天或保存七天)的记录,超出保留时间范围的数据都需要清理、删除。
本公开克服了频繁数据库交互所带来的效率和数据库服务器压力的问题,将百万级数据比对工作交由应用层进行解决,提高了对账过程的效率,降低了数据库服务器的压力。
下面通过具体实施方式对本公开作进一步说明。在以下实施例中对上述基于轻型数据库的对账方法及系统进行具体说明。但是,下述实施例仅用于对本公开进行例示,本公开的范围不限于此。
本实施例提供一种基于轻型数据库的对账方法及系统,本实施例使用的是SQLite数据库作为轻型数据库,基于轻型数据库的对账系统主要分为6部分,分别是总控模块、文件扫描模块、文件导入模块、文件对比模块、结果输出模块、清理模块,如图7所示。
总控模块的主要作用一个是加载配置文件,配置文件主要包括:接收文件路径、结果输出路径、备份文件路径、文件结构定义路径、待比较文件对应关系;其次是创建SQLite数据库。总控模块单独起线程,在循环中进行其他模块调度;加载文件结构定义文件,包含每个数据项的名称、长度、是否主键等信息;新增导入文件记录表A,记录导入的文件名、记录数、是否导入完;根据文件结构定义建表(去重后数据表、重复记录数据表),表结构包括:交易流水号(主键)、交易批次号、付款方账户类型、币种、交易金额、交易类型、交易类别、支付机构金融编号、付款行机构编号、收款行机构编号、交易状态、数据来源、原始交易状态、文件名、状态(0、未处理,1对账正确,2对账失败-无记录3、对账失败-信息不一致)、创建日期、更新日期。
文件扫描模块用于检查接收目录是否包含.chk文件(.chk代表文件到位,其中包含文件个数,总记录数等信息);如包含表明文件已经到齐,文件到齐后,返回文件到齐结果给总控模块。
文件导入模块用于解析文件,导入数据;更新导入文件记录表和去重数据表、重复记录表;将处理后的文件移动到备份路径。
文件对比模块用于根据导入文件记录表,判断待比较文件是否均存在,是否完成导入;读取第一个数据表,查询全部未处理数据,获取主键后查询第二个表,根据记录比较结果更新两个表记录状态;更新第二个表所有未处理记录状态为“对账失败-无记录”。
结果输出模块用于加载文件结构定义文件;根据传入的表名、结果文件类型输出处理后的文件。
清理模块用于启动任务,每天删除7天前的数据。
基于轻型数据库的对账方法以银联数据和银行数据对账为例:
首先启动总控模块需要新建三个表A、B、C、B BAK、C BAK分别为:文件导入记录表、银行数据表、银联数据表、银行重复数据表、银联重复数据表。文件扫描模块实时扫描接收文件路径下是否存在chk文件,如果存在,则通过文件读取模块将文件读入到对应表中,此处假设银联文件和银行文件均到达,则将银行文件读入到B表,在读入银行文件的同时,将重复文件存入B BAK,读入完成之后更新A表,状态为0,更新完成A和B之后,调用导出模块,将B BAK表中数据导出到重复清单文件中;银联文件的读入同银行文件。文件导入完成之后,将原文件移动到备份目录中。
文件数据读入完成之后,主控模块调用文件对比模块,先将A表数据所有未对比完成的数据查询出来(A表状态为0的数据),用A表查询出来的表名查询B表,按照键值对的方式存储查询到的数据,键为B表查询的主键。然后循环查询到的数据,用键值查询C表,如果查询到数据且数据一致更新B表和C表状态为1,如果C表查询到数据且数据不一样,则更新B表和C表状态为3,如果C表查询不到数据,则更新B表数据状态为2。循环对比完成之后,将C表状态为0的数据更新为2。数据比对完成之后将A表的对应表名状态字段设置为1,代表比对完成。
数据比对完成之后,调用结果导出模块,将B和C表数据导出到2个文件,分别为对账正确清单(状态为1),对账不平清单(状态为2和3)。
启动另一个清理线程,查询A表中对比完成且更新时间是7天前的数据进行清理。同理,查询B、C、B BAK和C BAK,将状态为非0且数据更新日期为7天前的数据进行清理。
本公开基于轻型数据库实现对账的方法,降低了在架构转型过程中频繁与数据库交互带来的系统压力,将对账逻辑由持久层迁移到应用层,提高了对账处理的效率,增加对账系统的稳定性。
图8示意性示出了根据本公开一实施例的基于轻型数据库的对账系统的方框图。
如图8所示,该基于轻型数据库的对账系统800包括:获取模块810、更新模块820、比对模块830。
获取模块810,用于获取待对账文件和预先存储的至少一个配置文件,将待对账文件导入预先建立的轻型数据库;其中,轻型数据库部署于本地。根据本公开的实施例,获取模块810例如可以用于执行上文参考图2所描述的S210步骤,在此不再赘述。
更新模块820,用于根据待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表;其中,第一业务参与方与第二业务参与方对应的机构类型不同。根据本公开的实施例,该更新模块820例如可以用于执行上文参考图2所描述的S220步骤,在此不再赘述。
比对模块830,用于将第一数据表与第二数据表中的数据进行比对,按照对账规则将对平的数据移入对平池,将未对平数据移入差异池,得到对账结果。根据本公开的实施例,该比对模块830例如可以用于执行上文参考图2所描述的S230步骤,在此不再赘述。
需说明的是,根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块810、更新模块820、比对模块830中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块810、更新模块820、比对模块830中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块810、更新模块820、比对模块830中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的方框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM903通过总线904彼此相连。处理器901通过执行ROM902和/或RAM903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM902和RAM903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM902和/或RAM903和/或ROM902和RAM903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (14)

1.一种基于轻型数据库的对账方法,其特征在于,包括:
获取待对账文件和预先存储的至少一个配置文件,将所述待对账文件导入预先建立的轻型数据库;其中,所述轻型数据库部署于本地;
根据所述待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表;其中,所述第一业务参与方与所述第二业务参与方对应的机构类型不同;
将所述第一数据表与所述第二数据表中的数据进行比对,按照对账规则将对平的数据移入对平池,将未对平数据移入差异池,得到对账结果。
2.根据权利要求1所述的基于轻型数据库的对账方法,其特征在于,所述获取待对账文件和预先存储的至少一个配置文件包括:
间隔预设时间定期获取所述待对账文件和预先存储的至少一个配置文件;其中,所述至少一个配置文件用于配置所述轻型数据库中各个表的表单信息、映射关系和预设格式。
3.根据权利要求1所述的基于轻型数据库的对账方法,其特征在于,所述根据所述待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表包括:
采用所述至少一个配置文件对所述待对账文件进行解析,生成不同数据类别的对账数据,并建立所述数据类别与所述轻型数据库中各个表的映射关系;
根据所述映射关系,将所述不同数据类别的对账数据分别更新至对应的所述文件导入记录表、所述第一数据表和所述第二数据表中。
4.根据权利要求3所述的基于轻型数据库的对账方法,其特征在于,所述生成不同数据类别的对账数据还包括:
根据所述至少一个配置文件中的转译入库规则,将不同数据类别的对账数据转换为对应的预设格式。
5.根据权利要求4所述的基于轻型数据库的对账方法,其特征在于,所述生成不同数据类别的对账数据还包括:
分别遍历所述第一数据表和所述第二数据表,检测是否存在重复的对账数据;
响应于存在重复的对账数据,删除所述重复的对账数据至有且只有其中一个。
6.根据权利要求1所述的基于轻型数据库的对账方法,其特征在于,所述将所述第一数据表与所述第二数据表中的数据进行比对包括:
获取所述文件导入记录表中的增量业务数据,确定所述增量业务数据的主键,所述主键对应至少一个目标字段;
根据所述增量业务数据的主键查询所述第一数据表,得到目标字段对应的第一字段值;
根据所述增量业务数据的主键查询所述第二数据表,得到目标字段对应的第二字段值;
响应于所述第一字段值与所述第二字段值对平,将所述增量业务数据移入对平池;响应于所述第一字段值与所述第二字段值未对平,将所述增量业务数据移入差异池,得到对账结果。
7.根据权利要求6所述的基于轻型数据库的对账方法,其特征在于,所述将所述第一数据表与所述第二数据表中的数据进行比对还包括:
根据所述增量业务数据的主键查询所述第一数据表,按照预设顺序进行排列后得到目标字段对应的第一字段值;
根据所述增量业务数据的主键查询所述第二数据表,按照预设顺序进行排列后得到目标字段对应的第二字段值;
将所述第一字段值与所述第二字段值的数据按照顺序进行比对。
8.根据权利要求6所述的基于轻型数据库的对账方法,其特征在于,所述将所述第一数据表与所述第二数据表中的数据进行比对还包括:
根据所述增量业务数据的主键查询所述第一数据表,未得到字段值;或
根据所述增量业务数据的主键查询所述第二数据表,未得到字段值;
响应于所述未得到字段值,将所述增量业务数据移入差异池,得到对账结果。
9.根据权利要求1所述的基于轻型数据库的对账方法,其特征在于,所述将所述待对账文件导入预先建立的轻型数据库包括:
根据所述待对账文件后缀对应的文件类型将所述待对账文件的基本信息写入与所述文件类型所对应的文件导入记录表;所述文件导入记录表为通过SQLite轻型数据库建立的数据库表,所述文件基本信息至少包括接收文件路径、文件名和结果输出路径。
10.根据权利要求1所述的基于轻型数据库的对账方法,其特征在于,所述得到对账结果还包括:
定期启动清理线程,删除已处理的所述对账数据和过期数据。
11.一种基于轻型数据库的对账系统,其特征在于,包括:
获取模块,用于获取待对账文件和预先存储的至少一个配置文件,将所述待对账文件导入预先建立的轻型数据库;其中,所述轻型数据库部署于本地;
更新模块,用于根据所述待对账文件在内存中更新文件导入记录表、第一业务参与方的第一数据表和第二业务参与方的第二数据表;其中,所述第一业务参与方与所述第二业务参与方对应的机构类型不同;
比对模块,用于将所述第一数据表与所述第二数据表中的数据进行比对,按照对账规则将对平的数据移入对平池,将未对平数据移入差异池,得到对账结果。
12.一种电子设备,包括:
处理器;
存储器,其存储有计算机可执行程序,该程序在被所述处理器执行时,使得所述处理器执行根据权利要求1~10中任意一项所述的基于轻型数据库的对账方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现根据权利要求1~10中任意一项所述的基于轻型数据库的对账方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~10中任意一项所述的基于轻型数据库的对账方法。
CN202310357360.6A 2023-04-06 2023-04-06 基于轻型数据库的对账方法、系统、设备、介质及产品 Pending CN116303620A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310357360.6A CN116303620A (zh) 2023-04-06 2023-04-06 基于轻型数据库的对账方法、系统、设备、介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310357360.6A CN116303620A (zh) 2023-04-06 2023-04-06 基于轻型数据库的对账方法、系统、设备、介质及产品

Publications (1)

Publication Number Publication Date
CN116303620A true CN116303620A (zh) 2023-06-23

Family

ID=86797810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310357360.6A Pending CN116303620A (zh) 2023-04-06 2023-04-06 基于轻型数据库的对账方法、系统、设备、介质及产品

Country Status (1)

Country Link
CN (1) CN116303620A (zh)

Similar Documents

Publication Publication Date Title
US10055426B2 (en) System and method transforming source data into output data in big data environments
US9418085B1 (en) Automatic table schema generation
US11681651B1 (en) Lineage data for data records
CN111198751B (zh) 业务处理方法和装置
US20120158795A1 (en) Entity triggers for materialized view maintenance
US8799230B2 (en) Method and system for centralized issue tracking
CN107256206B (zh) 字符流格式转换的方法和装置
US10360394B2 (en) System and method for creating, tracking, and maintaining big data use cases
US10725799B2 (en) Big data pipeline management within spreadsheet applications
CN114116678A (zh) 数据迁移方法、装置、设备、介质及程序产品
US9632837B2 (en) Systems and methods for system consolidation
US11182144B2 (en) Preventing database package updates to fail customer requests and cause data corruptions
CN116644122A (zh) 数据事务处理方法、装置、计算机设备及存储介质
CN115757356A (zh) 数据迁移方法、装置、系统、电子设备及存储介质
CN116303620A (zh) 基于轻型数据库的对账方法、系统、设备、介质及产品
CN115098469A (zh) 数据库迁移方法及装置、电子设备和可读存储介质
US20220129332A1 (en) Handling of Metadata for Microservices Processing
Ramuka Data analytics with Google Cloud platform
US8799318B2 (en) Function module leveraging fuzzy search capability
CN116071075A (zh) 交易完整性核对方法、装置、设备、介质和程序产品
CN115878596A (zh) 数据处理方法、装置、设备及存储介质
CN116881736A (zh) 信息匹配方法、装置、设备及存储介质
CN117193754A (zh) 处理业务请求的方法、装置、电子设备和计算机可读介质
CN118210778A (zh) 数据库操作方法、装置、设备、存储介质和程序产品
CN114201297A (zh) 数据处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination