CN110222042A - 用于确定已核对业务数据的方法、装置、设备及系统架构 - Google Patents
用于确定已核对业务数据的方法、装置、设备及系统架构 Download PDFInfo
- Publication number
- CN110222042A CN110222042A CN201910464807.3A CN201910464807A CN110222042A CN 110222042 A CN110222042 A CN 110222042A CN 201910464807 A CN201910464807 A CN 201910464807A CN 110222042 A CN110222042 A CN 110222042A
- Authority
- CN
- China
- Prior art keywords
- data
- remote service
- information
- database table
- accessed
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书实施例提供一种用于确定已核对业务数据的方法、装置、设备及系统架构。在分布式系统中完成上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,通过查询下游业务系统数据时所调用的远程服务的日志信息获取远程服务访问过的下游业务系统的数据库表,然后通过链路标识将发生数据变更的上游业务系统的数据库表和下游业务系统的数据库表关联起来,从而确定已核对的业务数据,以便暴露一些人为的错误,指导研发人员去改进核对脚本。
Description
技术领域
本说明书涉及数据处理技术领域,尤其涉及一种用于确定已核对业务数据的方法、装置、设备及系统架构。
背景技术
在O2O(Online To Offline,线上到线下)行业中,资损故障对客户和公司的影响是非常严重的,为了降低资损故障的影响程度,就需要尽早发现故障,从而快速应急。由于O2O行业常用的系统架构通常是分布式的,在分布式系统中,一个业务操作要经过的业务系统线路非常长,所以大多数资损故障都是因上下游业务系统的业务数据不一致造成的,为了尽早发现数据不一致的问题,通常在上下游业务系统中采用一个中间件对上下游业务系统的业务数据进行核对,一般称这个中间件为核对平台。目前,核对平台是通过开发测试同学编写脚本来配置核对规则,当上游业务系统中的某条业务数据发生变更后,这个数据变更事件会触发一个核对请求,核对平台收到核对请求后会根据相应的核对规则,通过远程服务查询下游业务系统中与该数据变更事件关联的数据,然后比较上下游业务系统中的业务数据是否一致。由于核对规则为人为配置,这种核对方法可能存在以下问题:1.某个数据要核对,但未分析到;2.某个数据要核对,但因为脚本实现有问题,未核对。为了暴露人为失误造成的漏核对的问题,需要确定哪些业务数据已核对过,以便知道哪些数据未核对过,以指导研发人员开发核对脚本。
发明内容
基于此,本说明书提供了一种用于确定已核对业务数据的方法、装置、设备及系统架构。
根据本说明书实施例的第一方面,提供一种分布式系统中用于确定已核对业务数据的方法,所述分布式系统包括上游业务系统、中间件、以及下游业务系统,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据;
所述方法包括:
当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;
根据所述日志信息确定所述远程服务所访问的数据库表;
基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
在一个实施例中,所述链路标识为TraceID。
在一个实施例中,所述触发信息包括变更数据所在的数据库表标识以及所述变更数据的主键标识。
在一个实施例中,根据所述日志信息确定所述远程服务所访问的数据库表包括:
根据所述日志信息中记录的调用接口信息获取所述远程服务所访问的数据库表;
或根据所述日志信息确定所述远程服务的静态代码,对所述静态代码进行解析,获取所述远程服务所访问的数据库表。
在一个实施例中,根据所述调用接口信息获取所述远程服务所访问的数据库表之前,还包括:
对所述调用接口信息进行汇总,根据汇总后的调用接口信息获取所述远程服务所访问的数据库表。
在一个实施例中,所述触发信息和所述日志信息以及汇总后的调用接口信息存储于数据仓库;在根据所述日志信息中记录的调用接口信息获取所述远程服务所访问的数据库表之前,还包括:
将所述数据仓库中存储的数据同步到所述中间件。
在一个实施例中,基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据包括:
基于所述日志信息记录的调用接口信息确定所述远程服务所访问的数据库表对应的所述链路标识;
确定所述链路标识关联的所述触发信息以及所述远程服务所访问的数据库表;
基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
在一个实施例中,基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据由数据仓库执行。
根据本说明书实施例的第二方面,提供一种分布式系统中用于确定已核对业务数据的装置,所述分布式系统包括上游业务系统、中间件、以及下游业务系统,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据;
所述装置包括:
记录模块,用于当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;
数据库表确定模块,用于根据所述日志信息确定所述远程服务所访问的数据库表;
已核对数据确定模块,用于基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
根据本说明书实施例的第四方面,提供一种系统架构,所述系统架构包括上游业务系统、中间件、以及下游业务系统,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据,
所述中间件还用于当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;根据所述日志信息确定所述远程服务所访问的数据库表;将所述触发信息、所述日志信息以及所述远程服务所访问的数据库表发送给所述数据仓库;
所述数据仓库用于基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
在一个实施例中,所述数据仓库还用于对所述日志信息中的调用接口信息进行汇总,并将汇总后的调用接口信息同步到所述中间件,以使所述中间件根据所述汇总后的调用接口信息确定所述远程服务所访问的数据库表。
在一个实施例中,所述系统架构还包括链路治理平台,所述链路治理平台用于接收所述核对平台发送的汇总后的调用接口信息,根据所述汇总后的调用接口信息确定所述远程服务所访问的数据库表并发送给所述核对平台。
应用本说明书实施例方案,当完成上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录核对请求的触发信息以及所调用的远程服务的日志信息,根据所述日志信息确定所述远程服务所访问的数据库表;基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。本说明书实施例通过远程服务的日志信息获取远程服务访问过的下游业务系统的数据库表,然后通过链路标识将发生数据变更的上游业务系统的数据库表和下游业务系统的数据库表关联起来,从而确定已核对的业务数据,以便暴露一些人为的错误,指导研发人员去改进核对脚本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1a是本说明书一个实施例的一种分布式系统的结构上示意图;
图1b是本说明书一个实施例的一种核对平台的核对原理示意图;
图2是本说明书一个实施例的一种用于确定已核对数据的方法流程图;
图3是本说明书一个实施例的一种用于确定已核对数据的方法示意图;
图4是本说明书一个实施例的一种用于确定已核对数据的装置结构示意图;
图5是本说明书一个实施例的用于实施本说明书方法的计算机设备的结构示意图;
图6a是本说明书一个实施例的一种系统架构示意图;
图6b是本说明书一个实施例的一种系统架构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在O2O(Online To Offline,线上到线下)行业中,资损故障对客户和公司的影响是非常严重的,为了降低资损故障的影响程度,就需要尽早发现故障,从而快速应急。由于O2O行业常用的系统架构通常是分布式的,在分布式系统中,一个业务操作要经过的业务系统线路非常长,所以大多数资损故障都是因上下游业务系统的业务数据不一致造成的,为了尽早发现数据不一致的问题,通常在上有业务系统和下游业务系统之间采用一个中间件来对上下游业务系统的业务数据进行核对,这个中间件一般称为核对平台。图1a为分布式系统的结构示意图,在一个分布式系统中,包括上游业务系统11、下游业务系统13,以及可与上下游业务系统通信的中间件12。在进行上下游业务系统的数据核对时,该中间件称为核对平台,图1b为核对平台的核对原理示意图,核对平台102中事先配置有核对规则,当上游业务系统101中数据库表的数据发生变更后(S101),数据变更事件会触发一个核对请求并发送给核对品台(102),核对平台102会根据相应的核对规则,通过远程服务调用下游业务系统103查询下游业务系统中与发生变更的数据相关联的数据(S103),下游业务系统103会查询相关联数据(S104),并返回查询结果(S105),核对平台102会比较上游系统中变更后的数据与下游系统中相关联的数据是否一致,如果发现不一致则报警(S106)。
由于核对规则为人为配置,这种核对方法可能存在以下问题:1.某个数据要核对,但未分析到;2.某个数据要核对,但因为脚本实现有问题,未核对。为了暴露人为失误造成的漏核对的问题,需要确定哪些业务数据已核对过,以便知道哪些数据未核对过,以指导研发人员开发核对脚本。
基于此,本说明书实施例提供一种适用于分布式系统中用于确定已核对业务数据的方法,该分布式系统的结构示意图如图1a所示,包括上游业务系统、中间件、以及下游业务系统,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据,然后核对上游业务系统中的变更数据与下游业务系统中的关联数据是否一致。所述方法用于确定上下游的哪些业务数据进行过一致性核对,具体的,所述方法如图2所示,可包括以下步骤:
S202、当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;
S204、根据所述日志信息确定所述远程服务所访问的数据库表;
S206、基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
在分布式系统中,上下游业务系统中的业务都是相互关联的,因而上下游业务系统中的业务数据也相互关联,比如,在淘宝系统中下单购买一件商品后,淘宝系统会调用支付宝系统完成该订单的支付,这时,淘宝系统中会有一个数据库表用于记录订单信息,支付宝系统中也会有一个数据库表记录付款金额信息,其中淘宝系统的订单信息应该与支付宝系统的付款金额要一致,比如订单号为A的订单对应的金额是100,订单号为B的订单对应的金额是50,如果不一致,就容易造成客户投诉和公司资损。本说明书实施例中的中间件为自行开发的一个核对平台,用于对上下游业务系统中的数据进行核对。核对平台中有事先配置好的核对规则,上游业务系统中的每个数据库表都对应一条核对规则,当上游业务系统中的数据库表的某条业务数据发生变更后,该数据变更事件会触发一个核对请求,并发送给核对平台,核对平台接收到该核对请求时,会根据与该上游数据库表对应的核对规则,通过远程调用服务调用下游业务系统查询下游业务系统中该变更数据的关联数据,对变更数据与其关联数据进行核对。同时,为了更好地追踪该核对请求相关的链路信息,确定该核对请求所访问过的业务系统以及数据表,核对平台在接收到该核对请求时,会生成一个用于描述该核对请求唯一性的链路标识,该链路标识在调用下游业务系统的服务中可以通过网络传递到下游业务系统,即跟该核对请求相关的信息都包含该链路标识。在某些实施例中,该链路标识可以是TraceID,在接收到核对请求后,生成该请求的TraceID,该TraceID伴随着该请求的整个生命周期,当该请求需要调用另外一个服务的时候,TraceID则向下透传,全局使用唯一一个TraceID,用来标识这个核对请求的路径信息。
本说明书实施例中的用于确定已核对业务数据的方法可以由所述核对平台执行,也可以由独立于所述核对平台的功能模块执行,也可以由所述核对平台与独立于所述分布式系统中的其他计算平台共同执行,比如,核对平台跟数据仓库共同执行,本申请不作限制。当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,可以记录该核对请求的触发信息和调用的远程服务的日志信息,其中,触发信息用于描述变更数据的相关信息,根据所述触发信息即可确定所述变更数据。在某些实施例中,触发信息可以是变更数据所在的数据库表的标识以及变更数据的主键标识,举个例子,当上游业务系统中的某条业务数据变更触发核对请求后,记录该变更数据所在的数据库表的标识,比如为上游业务系统的表A,由于表A中可能包含多条业务数据,所以还要记录变更数据的主键标识,即变更数据的主键值。通过所在的数据库表的标识和主键标识,便可以确定发生变更的具体是哪条业务数据。远程服务的日志信息中可以包含所述远程服务的调用接口信息以及调用方法。此外,所述触发信息和所述远程服务的日志信息都携带有链路标识,以便将所述触发信息和远程服务的日志信息关联起来。
在记录核对请求的触发信息和远程服务的日志信息后,可以通过远程服务的日志信息去获取所述远程服务所访问的下游数据表,即在进行上下游业务系统的数据核对时,查询过哪些下游业务系统的数据库表。确定所述远程服务所访问的下游数据表可以采用多种方式,比如,在某些实施例中,可以从远程服务的日志信息中获取调用接口信息,然后根据调用接口信息去获取远程服务访问过的数据库表。举个例子,可以通过数据链路治理平台来确定远程服务访问过的数据库表,链路治理平台会提供一个HTTP服务,可以向该平台发送一个查询数据库表的HTTP请求,在请求中包含调用接口信息,比如所属业务系统、接口类名、接口方法名等信息,然后链路治理平台即可返回该接口对哪些数据库表进行了查询,这样便可以确定远程服务访问过的数据库表。当然,如果每完成一笔业务数据核对,记录所调用远程服务的日志信息后,都根据调用接口信息去向链路治理平台发送HTTP请求,获取该调用接口访问的数据库表,那会非常消耗内存资源。所以,在某些实施例中,可以定期对日志信息中的调用接口信息进行汇总,比如将一天内的调用接口信息汇总,把相同的调用接口合并,然后根据汇总后的调用接口信息去获取访问过的数据库表。
在某些实施例中,还可以根据日志信息确定远程服务的静态代码,然后对所述静态代码进行解析,获取所述远程服务所访问的数据库表。比如,可以是通过深度扫描方式,对静态代码进行解析,得到远程服务与系统内部代码之间,以及系统内部代码与数据库表之间的血缘关系,从而最终得到远程服务与数据库表之间的关系。
在确定远程服务访问的数据库表之后,可以确定与链路标识关联的触发信息与远程服务访问的数据库表,在确定关联的触发信息和远程服务访问的数据库表后,可以根据触发信息和远程服务访问的数据库表确定已核对的数据。要确定已核对的数据,即要确定上游业务系统中变更的数据,以及查询过的下游业务系统中的数据库表,由于上游系统的业务数据与下游业务系统的业务数据时一一对应的,知道上游业务系统中变更的数据以及查询过的下游业务系统中的数据库表,便可以确定已核对数据。上游业务数据中的每条业务数据变更后,都会触发一个核对请求,并生成一个链路标识,即一条变更的业务数据会对应一个链路标识,所以根据该链路标识关联的触发信息和远程服务所访问的数据库表,即可以确定该变更数据,以及核对过的下游业务系统的数据库表,最后就知道哪些业务数据核对过。举个例子,上游业务系统有个表A,下游业务系统中的表B、表C、表D的数据都与表A关联。当表A中的第1条数据S变更后,会生成一个链路标识H,同时通过远程服务的日志信息可以确定查询过的数据库表为表B、表C,所以可以根据链路标识H将S数据变更的触发信息与远程服务访问过的数据库表B、表C关联起来,最后知道表A中的S数据和表B、表C中S数据对应的数据核对过。
由于核对平台是实时地核对上下游的业务系统中的数据,因而一天下来核对请求很多,关于核对请求的触发信息和远程服务日志信息的数据量也很大,如果只是靠核对平台去处理这些数据,并确定哪些数据核对过,会造成核对平台的计算压力很大。因此,在某些实施例中,可以采用核对平台和数据仓库共同来确定已核对的业务数据。核对平台在完成一笔业务数据的核对后,将该笔业务数据核对的触发信息和远程服务日志信息发送给数据仓库,数据仓库存储这些信息,核对平台可以对日志信息中的调用接口进行汇总后,发送给数据仓库存储,或者数据仓库对日志信息中的调用接口信息进行汇总,然后存储。然后数据仓库再定期将数据同步到核对平台。在某些实施例中,数据仓库可以对核对平台发送的日志信息中的调用接口信息进行汇总,然后将汇总后的调用接口数据同步到核对平台,以便核对平台根据汇总后的调用接口信息确定远程服务访问的数据库表。当然,在某些实施中,确定与链路标识关联的触发信息以及远程服务所访问的数据库表,并根据相关联的触发信息以及远程服务访问的数据库表可以再核对平台进行,在某些实施例中也可以在数据仓库进行。比如,核对平台在确定远程服务访问的数据库表后,可以将远程服务访问的数据库表发送给数据仓库,数据仓库可以先根据调用接口信息对远程服务访问的数据库表以及远程服务日志信息进行拼接,确定远程服务访问的数据库表对应的链路标识,即确定每一笔业务数据核对时远程服务访问的数据库表,然后根据链路标识确定该远程服务访问的数据库表对应的触发信息,根据触发信息和远程服务访问的数据库表即确定已核对数据。举个例子,数据仓库将调用接口信息汇总后发给核对平台,核对平台根据汇总的信息得到远程服务访问过的数据库表,然后返回给数据仓库,这些访问过的数据库表是一段时间内访问过的数据表,包括很多笔业务数据核对时访问过的数据库表,因此,数据仓库需要根据调用接口信息确定与链路标识信息的对应关系,确定每一笔业务数据核对时访问过的数据库表,然后再根据链路标识将该笔业务数据核对时访问过的数据库表以及触发信息对应起来,然后就知道了核对过的上游业务系统的数据库表、下游业务系统的数据库表以及变更数据具体是哪条数据,这样就可以知道哪些数据被核对过。
为了进一步解释本说明书实施例提供的用于确定已核对业务数据的方法,以下再以一个具体的实施例进行详细说明。在分布式系统中,为了实现上下游业务系统数据的核对,在上下游业务系统中采用一个核对平台来对上下游业务数据的一致性进行核对,为了更好的指导研发人员开发核对脚本,还需确定哪些业务数据已核对过。图3为本说明书一个实施例所提供的用于确定已核对数据的方法所用到的一个系统架构示意图,所述系统架构包括上游业务系统31、下游业务系统33、核对平台32、数据治理平台35以及数据仓库34。当上游业务系统31中的数据库表的数发生变更后,会向核对平台发送一个核对请求(S3.1),该核对请求携带有数据变更信息,核对平台32在接收到该核对请求后,会生成用于标识该请求的唯一标识TraceID,然后通过远程服务调用下游业务系统33查询下游业务系统中该数据变更事件的关联数据(S3.2),然后对上下游业务系统中的数据进行核对。在完成一笔业务数据核对后,核对平台会打印该核对请求对应的触发信息的日志和远程服务的信息的日志,然后将触发信息和远程服务日志信息发送给数据仓库(S3.3),其中,触发信息包括变更数据所在的数据库表的标识,比如数据库表名,以及变更数据的主键标识,比如变更数据的主键值,远程服务的日志信息中包含调用接口信息,调用接口信息包括调用接口类名、方法名,并且触发信息和远程服务信息都携带有TraceID。数据仓库会定期对远程服务服务的日志信息中的调用接口信息进行汇总,比如把相同的调用接口进行合并,然后将汇总后的调用接口信息同步到核对平台(S3.4),核对平台会根据调用接口信息向链路治理平台发送一个HTTP请求,该请求携带有调用接口信息,比如调用系统、调用接口类名、方法名等,链路治理平台会根据调用接口信息确定该接口所访问的数据库表,然后返回给核对平台(S3.5),核对平台会将远程服务访问过的数据库表发送给数据仓库(S3.6),数据仓库接收到远程服务访问过的数据库表后,会先根据调用接口信息对远程服务访问过的数据库表和日志信息进行拼接,得到远程服务访问过的数据库表对应的TraceID,然后再根据TraceID将远程服务访问过的数据库表和触发信息拼接,确定相关联的触发信息和远程服务访问过的数据库表,然后根据相关联的触发信息和远程服务访问过的数据库表确定已核对的数据(S3.8)。
以上实施例中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。如图4所示,是本说明书一个实施例的分布式系统中用于确定已核对业务数据的装置,所述分布式系统包括上游业务系统、中间件、以及下游业务系统,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据;所述装置40包括:
记录模块41,用于当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;
数据库表确定模块42,用于根据所述日志信息确定所述远程服务所访问的数据库表;
已核对数据确定模块43,用于基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
在一个实施例中,所述链路标识为TraceID。
在一个实施例中,所述触发信息包括变更数据所在的数据库表标识以及所述变更数据的主键标识。
在一个实施例中,根据所述日志信息确定所述远程服务所访问的数据库表包括:
根据所述日志信息中记录的调用接口信息获取所述远程服务所访问的数据库表;
或根据所述日志信息确定所述远程服务的静态代码,对所述静态代码进行解析,获取所述远程服务所访问的数据库表。
在一个实施例中,根据所述调用接口信息获取所述远程服务所访问的数据库表之前,还包括:
对所述调用接口信息进行汇总,根据汇总后的调用接口信息获取所述远程服务所访问的数据库表。
在一个实施例中,所述触发信息和所述日志信息以及汇总后的调用接口信息存储于数据仓库;在根据所述日志信息中记录的调用接口信息获取所述远程服务所访问的数据库表之前,还包括:
将所述数据仓库中存储的数据同步到所述中间件。
在一个实施例中,基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据包括:
基于所述日志信息记录的调用接口信息确定所述远程服务所访问的数据库表对应的所述链路标识;
确定所述链路标识关联的所述触发信息以及所述远程服务所访问的数据库表;
基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
在一个实施例中,基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据由数据仓库执行。
上述装置中各个模块的功能和作用的实现过程具体详情见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书装置的实施例可以应用在计算机设备上,例如服务器或智能终端。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书装置所在计算机设备的一种硬件结构图,除了图5所示的处理器502、内存504、网络接口506、以及非易失性存储器508之外,实施例中装置所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。
本申请可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
此外,本说明书实施例还提供了一种系统架构,如图6a所示,一种系统架构,所述系统架构包括上游业务系统61、中间件62、下游业务系统63以及数据仓库64,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据,
所述中间件62还用于当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;根据所述日志信息确定所述远程服务所访问的数据库表;将所述触发信息、所述日志信息以及所述远程服务所访问的数据库表发送给所述数据仓库;
所述数据仓库64用于基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
在一个实施例中,所述数据仓库还用于对所述日志信息中的调用接口信息进行汇总,并将汇总后的调用接口信息同步到所述中间件,以使所述中间件根据所述汇总后的调用接口信息确定所述远程服务所访问的数据库表。
在一个实施例中,如图6b所示,所述系统架构还包括链路治理平台65,所述链路治理平台用于接收所述核对平台发送的汇总后的调用接口信息,根据所述汇总后的调用接口信息确定所述远程服务所访问的数据库表并发送给所述核对平台。
本领域技术人员在考虑说明书及实践这里公开的说明书后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。
Claims (10)
1.一种分布式系统中用于确定已核对业务数据的方法,所述分布式系统包括上游业务系统、中间件、以及下游业务系统,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据;
所述方法包括:
当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;
根据所述日志信息确定所述远程服务所访问的数据库表;
基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
2.根据权利要求1所述的方法,所述触发信息包括变更数据所在的数据库表标识以及所述变更数据的主键标识。
3.根据权利要求1所述的方法,根据所述日志信息确定所述远程服务所访问的数据库表包括:
根据所述日志信息中记录的调用接口信息获取所述远程服务所访问的数据库表;
或根据所述日志信息确定所述远程服务的静态代码,对所述静态代码进行解析,获取所述远程服务所访问的数据库表。
4.根据权利要求3所述的方法,根据所述调用接口信息获取所述远程服务所访问的数据库表之前,还包括:
对所述调用接口信息进行汇总,根据汇总后的调用接口信息获取所述远程服务所访问的数据库表。
5.根据权利要求4所述的方法,所述触发信息和所述日志信息以及汇总后的调用接口信息存储于数据仓库;在根据所述日志信息中记录的调用接口信息获取所述远程服务所访问的数据库表之前,还包括:
将所述数据仓库中存储的数据同步到所述中间件。
6.根据权利要求1所述的方法,基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据包括:
基于所述日志信息记录的调用接口信息确定所述远程服务所访问的数据库表对应的所述链路标识;
确定所述链路标识关联的所述触发信息以及所述远程服务所访问的数据库表;
基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
7.根据权利要求1所述的方法,基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据由数据仓库执行。
8.一种分布式系统中用于确定已核对业务数据的装置,所述分布式系统包括上游业务系统、中间件、以及下游业务系统,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据;
所述装置包括:
记录模块,用于当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;
数据库表确定模块,用于根据所述日志信息确定所述远程服务所访问的数据库表;
已核对数据确定模块,用于基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
9.一种计算机设备,所述包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至7任意一项所述的方法。
10.一种系统架构,所述系统架构包括上游业务系统、中间件、下游业务系统以及数据仓库,所述中间件用于在收到上游业务系统的数据变更事件触发的核对请求后,生成用于描述所述核对请求唯一性的链路标识,并调用远程服务在下游业务系统中查询所述数据变更事件的关联数据,
所述中间件还用于当完成对所述上游业务系统中的变更数据与所述下游业务系统中的所述关联数据的一致性核对后,记录所述核对请求的触发信息以及所调用的远程服务的日志信息,其中,所述触发信息用于描述所述变更数据,所述触发信息和所述日志信息携带所述链路标识;根据所述日志信息确定所述远程服务所访问的数据库表;将所述触发信息、所述日志信息以及所述远程服务所访问的数据库表发送给所述数据仓库;
所述数据仓库用于基于所述链路标识所关联的触发信息和所述远程服务所访问的数据库表确定已核对业务数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910464807.3A CN110222042B (zh) | 2019-05-30 | 2019-05-30 | 用于确定已核对业务数据的方法、装置、设备及系统架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910464807.3A CN110222042B (zh) | 2019-05-30 | 2019-05-30 | 用于确定已核对业务数据的方法、装置、设备及系统架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110222042A true CN110222042A (zh) | 2019-09-10 |
CN110222042B CN110222042B (zh) | 2020-06-16 |
Family
ID=67818737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910464807.3A Active CN110222042B (zh) | 2019-05-30 | 2019-05-30 | 用于确定已核对业务数据的方法、装置、设备及系统架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110222042B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750530A (zh) * | 2019-09-11 | 2020-02-04 | 口碑(上海)信息技术有限公司 | 一种业务系统及其数据核对方法 |
CN111274255A (zh) * | 2020-01-20 | 2020-06-12 | 拉扎斯网络科技(上海)有限公司 | 业务数据监控方法及系统、监控架构、设备、存储介质 |
CN111400127A (zh) * | 2020-02-28 | 2020-07-10 | 平安医疗健康管理股份有限公司 | 业务日志的监控方法及装置、存储介质、计算机设备 |
CN113516425A (zh) * | 2020-04-10 | 2021-10-19 | 北京京东振世信息技术有限公司 | 一种追踪库存的方法和装置 |
CN113886131A (zh) * | 2021-10-28 | 2022-01-04 | 建信金融科技有限责任公司 | 数据检核方法、装置、设备及存储介质 |
CN114756469A (zh) * | 2022-04-24 | 2022-07-15 | 阿里巴巴(中国)有限公司 | 数据关系分析方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120669A1 (en) * | 2001-12-26 | 2003-06-26 | Han Mi Kyoung | Duplex structure of main-memory DBMS using log information in diskless environment and method for controlling consistency of data of main-memory DBMS |
US20040122870A1 (en) * | 2002-12-24 | 2004-06-24 | Joong-Ki Park | Method for data synchronization and update conflict resolution between mobile clients and server in mobile system |
CN103927313A (zh) * | 2013-01-16 | 2014-07-16 | 上海云点信息科技有限公司 | 企业信息系统数据同步核查机制 |
CN106777026A (zh) * | 2016-12-08 | 2017-05-31 | 用友网络科技股份有限公司 | 支持微服务架构事务最终一致性的方法、装置及系统 |
CN108153598A (zh) * | 2017-12-25 | 2018-06-12 | 东软集团股份有限公司 | 基于微服务架构的数据一致性方法以及装置 |
CN109739742A (zh) * | 2018-11-27 | 2019-05-10 | 口碑(上海)信息技术有限公司 | 业务数据核对方法、装置及设备 |
-
2019
- 2019-05-30 CN CN201910464807.3A patent/CN110222042B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120669A1 (en) * | 2001-12-26 | 2003-06-26 | Han Mi Kyoung | Duplex structure of main-memory DBMS using log information in diskless environment and method for controlling consistency of data of main-memory DBMS |
US20040122870A1 (en) * | 2002-12-24 | 2004-06-24 | Joong-Ki Park | Method for data synchronization and update conflict resolution between mobile clients and server in mobile system |
CN103927313A (zh) * | 2013-01-16 | 2014-07-16 | 上海云点信息科技有限公司 | 企业信息系统数据同步核查机制 |
CN106777026A (zh) * | 2016-12-08 | 2017-05-31 | 用友网络科技股份有限公司 | 支持微服务架构事务最终一致性的方法、装置及系统 |
CN108153598A (zh) * | 2017-12-25 | 2018-06-12 | 东软集团股份有限公司 | 基于微服务架构的数据一致性方法以及装置 |
CN109739742A (zh) * | 2018-11-27 | 2019-05-10 | 口碑(上海)信息技术有限公司 | 业务数据核对方法、装置及设备 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750530A (zh) * | 2019-09-11 | 2020-02-04 | 口碑(上海)信息技术有限公司 | 一种业务系统及其数据核对方法 |
CN110750530B (zh) * | 2019-09-11 | 2022-08-02 | 口碑(上海)信息技术有限公司 | 一种业务系统及其数据核对方法 |
CN111274255A (zh) * | 2020-01-20 | 2020-06-12 | 拉扎斯网络科技(上海)有限公司 | 业务数据监控方法及系统、监控架构、设备、存储介质 |
CN111400127A (zh) * | 2020-02-28 | 2020-07-10 | 平安医疗健康管理股份有限公司 | 业务日志的监控方法及装置、存储介质、计算机设备 |
CN113516425A (zh) * | 2020-04-10 | 2021-10-19 | 北京京东振世信息技术有限公司 | 一种追踪库存的方法和装置 |
CN113886131A (zh) * | 2021-10-28 | 2022-01-04 | 建信金融科技有限责任公司 | 数据检核方法、装置、设备及存储介质 |
CN113886131B (zh) * | 2021-10-28 | 2023-05-26 | 建信金融科技有限责任公司 | 数据检核方法、装置、设备及存储介质 |
CN114756469A (zh) * | 2022-04-24 | 2022-07-15 | 阿里巴巴(中国)有限公司 | 数据关系分析方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110222042B (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222042A (zh) | 用于确定已核对业务数据的方法、装置、设备及系统架构 | |
TWI706353B (zh) | 建構梅克爾樹、簡單支付驗證方法及裝置 | |
WO2021088724A1 (zh) | 一种测试方法及装置 | |
CN110032599B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
CN110188096A (zh) | 一种数据记录的索引创建方法、装置及设备 | |
CN109471796A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN109255056B (zh) | 区块链的数据引用处理方法、装置、设备及存储介质 | |
CN110046523B (zh) | 智能合约校验方法及装置和电子设备 | |
CN112182096A (zh) | 跨链数据订阅方法及装置 | |
CN110162662A (zh) | 一种块链式账本中数据记录的验证方法、装置及设备 | |
CN104346365A (zh) | 确定与特定业务相关的关联日志的方法和装置 | |
CN109376160A (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
WO2020093809A1 (zh) | 一种区块链数据读取方法及装置 | |
CN111352935B (zh) | 一种块链式账本中的索引创建方法、装置及设备 | |
CN110147686A (zh) | 一种个人资产变更记录的存储方法、系统、装置及设备 | |
CN110347674A (zh) | 一种基于业务标识的索引创建方法、装置及设备 | |
CN110349019A (zh) | 一种块链式账本中的验证方法、装置及设备 | |
CN110263071A (zh) | 业务数据核对方法、装置、设备及系统架构 | |
CN111459948B (zh) | 一种基于中心化块链式账本的交易完整性验证方法 | |
CN110399309A (zh) | 一种测试数据生成方法及装置 | |
CN109587351A (zh) | 一种呼叫测试方法、装置、设备及存储介质 | |
CN114185770A (zh) | 生成测试数据的方法、装置、计算机设备和存储介质 | |
CN114064475A (zh) | 云原生应用测试方法、装置、设备及存储介质 | |
CN110471906A (zh) | 数据库切换方法、装置及设备 | |
WO2023098462A1 (en) | Improving performance of sql execution sequence in production database instance |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |