CN112015766A - 一种基于流水的数据处理方法、装置及数据处理系统 - Google Patents
一种基于流水的数据处理方法、装置及数据处理系统 Download PDFInfo
- Publication number
- CN112015766A CN112015766A CN202010859086.9A CN202010859086A CN112015766A CN 112015766 A CN112015766 A CN 112015766A CN 202010859086 A CN202010859086 A CN 202010859086A CN 112015766 A CN112015766 A CN 112015766A
- Authority
- CN
- China
- Prior art keywords
- data
- transaction
- database
- writing
- cache
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 54
- 238000003672 processing method Methods 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000006243 chemical reaction Methods 0.000 claims abstract description 14
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 235000021028 berry Nutrition 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于流水的数据处理方法、装置及数据处理系统,该方法包括:将流水数据分别写入至少两个缓存数据库,流水数据通过事务数据转换得到,其中,事务数据为业务系统根据每个事务的事务状态所生成的数据,事务基于事务状态对应至少一条流水数据;当确定至少一个缓存数据库写入流水数据成功时,从写入成功的缓存数据库读取流水数据;将流水数据写入事务数据库。该技术方案即便事务数据库稳定性出现问题,由于流水数据已写入缓存数据库,也可在后续再次将流水数据写入事务数据库。如果数据并发量较大,通过多个缓存数据库可以有效削峰分流,降低事务数据库的数据压力,提高数据写入事务数据库的成功率。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种基于流水的数据处理方法、装置及数据处理系统。
背景技术
目前大部分事务处理系统,都是直接操作事务数据库的,将每一笔事务数据按照预设数据格式直接写入事务数据库。
但是,这种处理方式弊病很多,比如受制于事务数据库同时处理的并发量,受制于事务数据库的稳定性,等等。当出现高并发事务写入时,同时需要写入海量的事务数据,或者,当事务数据库稳定性出现问题时,导致事务数据写入数据库失败。而一旦事务数据库写入异常,则该事务也会失败。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种基于流水的数据处理方法、装置及数据处理系统。
根据本申请实施例的一个方面,提供了一种基于流水的数据处理方法,包括:
将流水数据分别写入至少两个缓存数据库,所述流水数据通过事务数据转换得到,其中,所述事务数据为业务系统根据每个事务的事务状态所生成的数据,所述事务基于所述事务状态对应至少一条所述流水数据;
当确定至少一个所述缓存数据库写入所述流水数据成功时,从写入成功的所述缓存数据库读取所述流水数据;
将所述流水数据写入事务数据库。
可选的,当确定至少一个所述缓存数据库写入所述流水数据成功时,所述方法还包括:
将写入成功消息反馈到所述业务系统。
可选的,所述方法还包括:
将所述事务数据转换为预设数据结构的流水数据,所述预设数据结构包括以下至少一个字段:
事务标识、流水信息、操作类型、当前事务状态值、当前事务状态、数据库切分键、流水标识。
可选的,所述至少两个缓存数据库为不同数据库类型的缓存数据库。
可选的,所述流水数据包括:事务标识及当前事务状态;
所述将流水数据分别写入至少两个缓存数据库,包括:
从所述缓存数据库中获取所述事务标识对应的已缓存流水数据,所述已缓存流水数据包括历史事务状态;
当根据所述历史事务状态确定所述当前事务状态符合预设条件时,将所述流水数据写入所述缓存数据库;
当根据所述历史事务状态确定所述当前事务状态不符合预设条件时,执行告警操作。
可选的,所述方法还包括:
获取所述缓存数据库执行写入所述流水数据后的返回消息;
根据所述返回消息确定所述缓存数据库写入所述流水数据成功或失败。
可选的,所述将所述流水数据写入事务数据库,包括:
加载所述缓存数据库中所有的历史流水数据;
当确定不存在与所述流水数据相同的所述历史流水数据时,将所述流水数据写入所述事务数据库。
可选的,所述流水数据包括:流水标识;
所述方法还包括:
比对所述流水数据的流水标识及所述历史流水数据的流水标识;
当所述流水数据的流水标识与所述历史流水数据的流水标识不同时,确定不存在与所述流水数据相同的所述历史流水数据。
可选的,所述将所述流水数据写入事务数据库,包括:
加载所述缓存数据库中所有流水数据;
从所述所有流水数据中筛选未处理的流水数据;
将所述未处理的流水数据写入到所述事务数据库。
可选的,所述方法还包括:
当确定所述流水数据写入所述事务数据库成功时,在所述缓存数据库中将所述流水数据标识为已处理。
根据本申请实施例的另一个方面,提供了一种基于流水的数据处理装置,包括:
第一写入模块,用于将流水数据分别写入至少两个缓存数据库,所述流水数据通过事务数据转换得到,其中,所述事务数据为每个事务的事务状态所对应的数据,所述事务基于所述事务状态对应至少一条所述流水数据;
流水读取模块,用于当确定至少一个所述缓存数据库写入所述流水数据成功时,从写入成功的所述缓存数据库读取所述流水数据;
第二写入模块,用于将所述流水数据写入事务数据库。
根据本申请实施例的另一个方面,提供了一种数据处理系统,包括:至少两个用于缓存流水数据的缓存数据库,存储所述流水数据的事务数据库,以及分别与所述缓存数据库及事务数据库连接的数据处理装置;
所述数据处理装置,用于将所述流水数据分别写入所述缓存数据库,所述流水数据通过事务数据转换得到,其中,所述事务数据为每个事务的事务状态所对应的数据,所述事务基于所述事务状态对应至少一条所述流水数据;当确定至少一个所述缓存数据库写入所述流水数据成功时,从写入成功的所述缓存数据库读取所述流水数据;将所述流水数据写入所述事务数据库。
根据本申请实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
根据本申请实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本实施例中,通过流水形式存储事务数据,可以保证事务处理的一致性,便于后续可以准确对事务的不同状态的数据进行查询、处理或分析等等。另外,即便事务数据库稳定性出现问题,由于流水数据已写入缓存数据库,也可在后续再次将流水数据写入事务数据库。如果数据并发量较大,通过多个缓存数据库可以有效削峰分流,降低事务数据库的数据压力,提高数据写入事务数据库的成功率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据处理系统的框图;
图2为本申请实施例提供的一种基于流水的数据处理方法的流程图;
图3为本申请另一实施例提供的一种基于流水的数据处理方法的流程图;
图4为本申请另一实施例提供的一种基于流水的数据处理方法的流程图;
图5为本申请另一实施例提供的一种基于流水的数据处理方法的流程图;
图6为本申请实施例提供的一种基于流水的数据处理装置的框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例为了提高事务数据写入数据库的稳定性和准确性,并使得事务数据写入事务数据库与事务是否成功解耦,提供一种基于流水的数据处理方式,将每一条事务数据以流水形式进行数据库存储,并且,在系统中增加至少两个缓存数据库对流水数据进行缓存,只要有一个缓存数据库缓存流水数据成功,就可将该流水数据同步到事务数据库中。
下面首先对本发明实施例所提供的一种数据处理系统进行介绍。
图1为本申请实施例提供的一种数据处理系统的框图,如图1所示,该系统10包括:至少两个用于缓存流水数据的缓存数据库11a、11b……,存储流水数据的事务数据库12,以及分别与缓存数据库11及事务数据库12连接的数据处理装置13。
缓存数据库11a、11b……,用于分别写入流水数据,流水数据通过事务数据转换得到,其中,事务数据为每个事务的事务状态所对应的数据,事务基于事务状态对应至少一条流水数据;
数据处理装置13,用于当确定至少一个缓存数据库写入流水数据成功时,从写入成功的缓存数据库读取流水数据;将流水数据写入事务数据库12。
本实施例中,对于各项事务,如交易等等,基于状态的变化,一项事务可能会对应多条流水数据。通过流水形式存储事务数据,可以保证事务处理的一致性,便于后续可以准确对事务的不同状态的数据进行查询、处理或分析等等。另外,即便事务数据库稳定性出现问题,由于流水数据已写入缓存数据库,也可在后续再次将流水数据写入事务数据库。如果数据并发量较大,通过多个缓存数据库可以有效削峰分流,降低事务数据库的数据压力,提高数据写入事务数据库的成功率。
本实施例中,事务数据为业务系统20每一笔事务所对应的数据,如每笔交易对应的交易数据。可选的,流水数据可以由业务系统20将事务数据转换得到,直接写入缓存数据库;也可由数据处理系统10对从业务系统20接收到的事务数据进行转换得到,如可由数据处理装置13执行数据转换操作,也可以由单独的数据转换装置执行数据转换操作。
其中,缓存数据库位于内存中,即为内存数据库(Main Memory Database,MMDB,也被称为主存数据库),如Redis、SQLite、Altibase、Oracle Berkeley DB、eXtremeDB、FastDB、Memcached、H2Database、MonetDB等等。
可选的,该至少两个缓存数据库可以为相同或不同数据库类型。例如,缓存数据库均为Redis数据库或者均为MySQL数据库;或者缓存数据库分别为Redis和MySQL数据库。
可选的,对于同一数据,写入不同类型数据库同时写入失败的可能性要小于写入相同类型数据库时同时写入失败的可能性,因此,本系统实施例中,优选采用不同数据库类型的缓存数据库。
可选的,缓存数据库11可以为关系型数据库,如MySQL、Oracle、DB2、MicrosoftSQL Server等等,也可以为非关系型数据库,如Redis、Tokyo Cabinet/Tyrant、Voldemort、Oracle BDB等等。
可选的,事务数据库12可以为磁盘数据库(Disk-Resident Database,DRDB)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,容易出现写入错误或卡死的问题。因此,本实施例中通过位于内存中的至少两个缓存数据库来缓存流水数据,缓存数据库数据处理速度比磁盘数据库的数据处理速度要快很多,只要有一个缓存数据库写入流水数据成功,即可把该流水数据写入磁盘中的事务数据库,从而达到削峰分流的效果,避免事务数据库写入错误或卡死。
可选的,数据处理装置13可以同步或异步地将流水数据写入事务数据库12。
可选的,数据处理装置13,还用于当确定至少一个缓存数据库写入流水数据成功时,将写入成功消息反馈到业务系统20。这样,只要业务系统确定流水数据写入至少一个缓存数据库成功,即可完成对应事务的处理,使得事务数据写入事务数据库与事务是否成功解耦,提高事务成功率,避免由于数据写入失败造成事务失败。
下面对本发明实施例所提供的一种基于流水的数据处理方法进行介绍。
图2为本申请实施例提供的一种基于流水的数据处理方法的流程图。如图2所示,该方法包括以下步骤:
步骤S11,将流水数据分别写入至少两个缓存数据库,流水数据通过事务数据转换得到,其中,事务数据为每个事务的事务状态所对应的数据,事务基于事务状态对应至少一条流水数据;
步骤S12,当确定至少一个缓存数据库写入流水数据成功时,从写入成功的缓存数据库读取流水数据;
步骤S13,将流水数据写入事务数据库。
本实施例中,通过上述步骤S11至S13,对于各项事务,如交易等等,基于状态的变化,一项事务可能会对应多条流水数据。通过流水形式存储事务数据,可以保证事务处理的一致性,便于后续可以准确对事务的不同状态的数据进行查询、处理或分析等等,如数据报警、流量监控等。另外,即便事务数据库稳定性出现问题,由于流水数据已写入缓存数据库,也可在后续再次将流水数据写入事务数据库。如果数据并发量较大,通过多个缓存数据库可以有效削峰分流,降低事务数据库的数据压力,提高数据写入事务数据库的成功率。
可选的,当确定至少一个缓存数据库写入流水数据成功时,该方法还包括:将写入成功消息反馈到业务系统。这样,只要业务系统确定流水数据写入至少一个缓存数据库成功,即可完成对应事务的处理。这样,使得数据写入事务数据库与事务是否成功解耦,提高事务成功率,避免由于数据写入失败造成事务失败。
可选的,该方法还包括:将事务数据转换为预设数据结构的流水数据,预设数据结构包括以下至少一个字段:事务标识、流水信息、操作类型、当前事务状态值、当前事务状态、数据库切分键、流水标识。
具体地,预设数据结构中每个字段如下:
(1)FlowBusinessNo:事务标识编码;
(2)FlowDetailInfo:实体类,一个Json字符串,存储的是流水信息;
(3)FlowBizType:该流水数据对应的操作类型,例如转入交易、转出交易;
(4)FlowToStatus:该流水数据对应的当前事务状态值;
(5)FlowStatusField:该流水数据对应的当前事务状态;
(6)CustAccNo:数据库切分键,用于存储流水时定位流水存储到具体的库表上(流水数据存储方式为分库分表);
(7)FlowUniqueNo:流水标识,每条流水的唯一标识编码。
可选的,本实施例中,至少两个缓存数据库为不同数据库类型的缓存数据库。例如,两个缓存数据,一个为Redis数据库,一个为MySQL数据库。
在可选实施例中,在将流水数据写入缓存数据库之前,还进一步对该流水数据对应的事务状态进行校验。流水数据包括事务标识及当前事务状态。
图3为本申请另一实施例提供的一种基于流水的数据处理方法的流程图。如图3所示,步骤S11,将流水数据分别写入至少两个缓存数据库,包括以下步骤:
步骤S21,从缓存数据库中获取事务标识对应的已缓存流水数据,已缓存流水数据包括历史事务状态;
步骤S22,当根据历史事务状态确定当前事务状态符合预设条件时,将流水数据写入缓存数据库;
步骤S23,当根据历史事务状态确定当前事务状态不符合预设条件时,执行告警操作。
对于一项事务来说,其对应的各流水数据的状态变化需要符合一定顺序或规律。例如,对于一项订单交易来说,交易过程依次包括以下步骤:下单、付款、发货、配送、收货。每个交易步骤的流水数据均对应一个交易状态,如下单成功,付款失败。当接收到一条流水数据,其对应的交易状态为发货成功,但并未接收到交易状态为付款成功的流水数据,则这条流水数据可能为错误数据,执行告警操作。
其中,告警操作可以包括:向业务系统返回数据处理失败(错误)消息,和/或,以短信、微信、邮件等方式向工作人员发送错误报警信息。
本实施例中对于流水数据的状态校验可以通过在数据处理系统中设置状态机来实现。通过上述步骤S21至S23对流水数据的状态校验,提高流水数据写入的准确性,以此来保证流水数据同步到事务的成功率,降低数据回滚的概率甚至杜绝数据回滚。
在可选实施例中,确定缓存数据库写入流水数据是否成功,可以通过缓冲数据库写入操作执行后的返回码确定。该方法还包括:获取缓存数据库执行写入流水数据后的返回消息;根据返回消息确定缓存数据库写入流水数据成功或失败。
例如,缓存数据库的返回消息为“1”、“S”或“success”等时,表示写入流水数据成功;返回消息为“0”、“F”或“fail”等时,则表示缓存数据库写入流水数据失败。
在可选实施例中,在将流水数据写入事务数据库之前,还需要对流水数据进行排重处理。图4为本申请另一实施例提供的一种基于流水的数据处理方法的流程图。如图4所示,上述步骤S13包括:
步骤S31,加载缓存数据库中所有的历史流水数据;
步骤S32,当确定不存在与流水数据相同的历史流水数据时,将流水数据写入事务数据库。
可选的,流水数据包括:流水标识。该方法还包括:比对流水数据的流水标识及历史流水数据的流水标识;当流水数据的流水标识与历史流水数据的流水标识不同时,确定不存在与流水数据相同的历史流水数据。
例如,数据处理系统中包括2个缓存数据库,Redis数据库和MySQL数据库,加载两个缓存数据库中的所有历史流水数据,通过每个流水数据唯一的流水标识(FlowUniqueNo),可以确定其中重复的流水数据,如果存在与当前待写入的流水数据相同流水标识的历史流水数据,即与该流水数据相同的历史流水数据已经被写入事务数据库,则不对该流水数据进行处理,针对同一流水数据仅处理一次。
通过上述步骤S31和S32,可以避免同一流水数据被重复写入事务数据库,即每条流水数据仅被处理一次,减少对事务数据库的写入操作,节约事务数据库的存储空间。
图5为本申请另一实施例提供的一种基于流水的数据处理方法的流程图。如图5所示,在另一可选实施例中,上述步骤S13包括:
步骤S41,加载缓存数据库中所有流水数据;
步骤S42,从所有流水数据中筛选未处理的流水数据;
步骤S43,将未处理的流水数据同步到事务数据库。
在数据处理装置在将流水数据写入事务数据库之前,需要从缓存数据库中筛选未处理过的流水数据,仅将未处理的流水数据写入到事务数据库。这样,可以避免同一流水数据被重复写入事务数据库,即每条流水数据仅被处理一次,减少对事务数据库的写入操作,节约事务数据库的存储空间。
在可选实施例中,该方法还包括:当确定流水数据写入事务数据库成功时,在缓存数据库中将流水数据标识为已处理。
流水数据还具有一个处理状态标识,用于标识其是否被成功写入事务数据库。这样,当数据处理装置执行对事务数据库的数据写入操作时,根据该处理状态标识判断流水数据是否被写入过,仅将未处理过的流水数据写入事务数据库。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图6为本申请实施例提供的一种基于流水的数据处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该基于流水的数据处理装置包括:
第一写入模块61,用于将流水数据分别写入至少两个缓存数据库,流水数据通过事务数据转换得到,其中,事务数据为每个事务的事务状态所对应的数据,事务基于事务状态对应至少一条流水数据;
流水读取模块62,用于当确定至少一个缓存数据库写入流水数据成功时,从写入成功的缓存数据库读取流水数据;
第二写入模块63,用于将流水数据写入事务数据库。
可选的,该装置还包括:反馈模块,用于当确定至少一个缓存数据库写入流水数据成功时,将写入成功消息反馈到业务系统。
可选的,该装置还包括:转换模块,用于将事务数据转换为预设数据结构的流水数据,预设数据结构包括以下至少一个字段:事务标识、流水信息、操作类型、当前事务状态值、当前事务状态、数据库切分键、流水标识。
可选的,流水数据包括:事务标识及当前事务状态;
第一写入模块61包括:
获取子模块,用于从缓存数据库中获取事务标识对应的已缓存流水数据,已缓存流水数据包括历史事务状态;
写入子模块,用于当根据历史事务状态确定当前事务状态符合预设条件时,将流水数据写入缓存数据库;
告警子模块,用于当根据历史事务状态确定当前事务状态不符合预设条件时,执行告警操作。
可选的,该装置还包括:
获取模块,用于获取缓存数据库执行写入流水数据后的返回消息;
第一确定模块,用于根据返回消息确定缓存数据库写入流水数据成功或失败。
可选的,第二写入模块63包括:
第一加载子模块,用于加载缓存数据库中所有的历史流水数据;
第一写入子模块,用于当确定不存在与流水数据相同的历史流水数据时,将流水数据写入事务数据库。
可选的,流水数据包括:流水标识;该装置还包括:
比对模块,用于比对流水数据的流水标识及历史流水数据的流水标识;
第二确定模块,用于当流水数据的流水标识与历史流水数据的流水标识不同时,确定不存在与流水数据相同的历史流水数据。
可选的,第二写入模块63包括:
第二加载子模块,用于加载缓存数据库中所有流水数据;
筛选子模块,用于从所有流水数据中筛选未处理的流水数据;
第二写入子模块,将未处理的流水数据写入到事务数据库。
可选的,装置还包括:
标识模块,用于当确定流水数据写入事务数据库成功时,在缓存数据库中将流水数据标识为已处理。
本申请实施例还提供一种电子设备,如图7所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,P C I)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下方法实施例的步骤:
将流水数据分别写入至少两个缓存数据库,所述流水数据通过事务数据转换得到,其中,所述事务数据为业务系统根据每个事务的事务状态所生成的数据,所述事务基于所述事务状态对应至少一条所述流水数据;
当确定至少一个所述缓存数据库写入所述流水数据成功时,从写入成功的所述缓存数据库读取所述流水数据;
将所述流水数据写入事务数据库。
可选的,当确定至少一个所述缓存数据库写入所述流水数据成功时,所述方法还包括:
将写入成功消息反馈到所述业务系统。
可选的,所述方法还包括:
将所述事务数据转换为预设数据结构的流水数据,所述预设数据结构包括以下至少一个字段:
事务标识、流水信息、操作类型、当前事务状态值、当前事务状态、数据库切分键、流水标识。
可选的,所述至少两个缓存数据库为不同数据库类型的缓存数据库。
可选的,所述流水数据包括:事务标识及当前事务状态;
所述将流水数据分别写入至少两个缓存数据库,包括:
从所述缓存数据库中获取所述事务标识对应的已缓存流水数据,所述已缓存流水数据包括历史事务状态;
当根据所述历史事务状态确定所述当前事务状态符合预设条件时,将所述流水数据写入所述缓存数据库;
当根据所述历史事务状态确定所述当前事务状态不符合预设条件时,执行告警操作。
可选的,所述方法还包括:
获取所述缓存数据库执行写入所述流水数据后的返回消息;
根据所述返回消息确定所述缓存数据库写入所述流水数据成功或失败。
可选的,所述将所述流水数据写入事务数据库,包括:
加载所述缓存数据库中所有的历史流水数据;
当确定不存在与所述流水数据相同的所述历史流水数据时,将所述流水数据写入所述事务数据库。
可选的,所述流水数据包括:流水标识;
所述方法还包括:
比对所述流水数据的流水标识及所述历史流水数据的流水标识;
当所述流水数据的流水标识与所述历史流水数据的流水标识不同时,确定不存在与所述流水数据相同的所述历史流水数据。
可选的,所述将所述流水数据写入事务数据库,包括:
加载所述缓存数据库中所有流水数据;
从所述所有流水数据中筛选未处理的流水数据;
将所述未处理的流水数据写入到所述事务数据库。
可选的,所述方法还包括:
当确定所述流水数据写入所述事务数据库成功时,在所述缓存数据库中将所述流水数据标识为已处理。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种基于流水的数据处理方法,其特征在于,包括:
将流水数据分别写入至少两个缓存数据库,所述流水数据通过事务数据转换得到,其中,所述事务数据为业务系统根据每个事务的事务状态所生成的数据,所述事务基于所述事务状态对应至少一条所述流水数据;
当确定至少一个所述缓存数据库写入所述流水数据成功时,从写入成功的所述缓存数据库读取所述流水数据;
将所述流水数据写入事务数据库。
2.根据权利要求1所述的方法,其特征在于,当确定至少一个所述缓存数据库写入所述流水数据成功时,所述方法还包括:
将写入成功消息反馈到所述业务系统。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述事务数据转换为预设数据结构的流水数据,所述预设数据结构包括以下至少一个字段:
事务标识、流水信息、操作类型、当前事务状态值、当前事务状态、数据库切分键、流水标识。
4.根据权利要求1所述的方法,其特征在于,所述至少两个缓存数据库为不同数据库类型的缓存数据库。
5.根据权利要求1所述的方法,其特征在于,所述流水数据包括:事务标识及当前事务状态;
所述将流水数据分别写入至少两个缓存数据库,包括:
从所述缓存数据库中获取所述事务标识对应的已缓存流水数据,所述已缓存流水数据包括历史事务状态;
当根据所述历史事务状态确定所述当前事务状态符合预设条件时,将所述流水数据写入所述缓存数据库;
当根据所述历史事务状态确定所述当前事务状态不符合预设条件时,执行告警操作。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述缓存数据库执行写入所述流水数据后的返回消息;
根据所述返回消息确定所述缓存数据库写入所述流水数据成功或失败。
7.根据权利要求1所述的方法,其特征在于,所述将所述流水数据写入事务数据库,包括:
加载所述缓存数据库中所有的历史流水数据;
当确定不存在与所述流水数据相同的所述历史流水数据时,将所述流水数据写入所述事务数据库。
8.根据权利要求7所述的方法,其特征在于,所述流水数据包括:流水标识;
所述方法还包括:
比对所述流水数据的流水标识及所述历史流水数据的流水标识;
当所述流水数据的流水标识与所述历史流水数据的流水标识不同时,确定不存在与所述流水数据相同的所述历史流水数据。
9.根据权利要求1所述的方法,其特征在于,所述将所述流水数据写入事务数据库,包括:
加载所述缓存数据库中所有流水数据;
从所述所有流水数据中筛选未处理的流水数据;
将所述未处理的流水数据写入到所述事务数据库。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当确定所述流水数据写入所述事务数据库成功时,在所述缓存数据库中将所述流水数据标识为已处理。
11.一种基于流水的数据处理装置,其特征在于,包括:
第一写入模块,用于将流水数据分别写入至少两个缓存数据库,所述流水数据通过事务数据转换得到,其中,所述事务数据为每个事务的事务状态所对应的数据,所述事务基于所述事务状态对应至少一条所述流水数据;
流水读取模块,用于当确定至少一个所述缓存数据库写入所述流水数据成功时,从写入成功的所述缓存数据库读取所述流水数据;
第二写入模块,用于将所述流水数据写入事务数据库。
12.一种数据处理系统,其特征在于,包括:至少两个用于缓存流水数据的缓存数据库,存储所述流水数据的事务数据库,以及分别与所述缓存数据库及事务数据库连接的数据处理装置;
所述数据处理装置,用于将所述流水数据分别写入所述缓存数据库,所述流水数据通过事务数据转换得到,其中,所述事务数据为每个事务的事务状态所对应的数据,所述事务基于所述事务状态对应至少一条所述流水数据;当确定至少一个所述缓存数据库写入所述流水数据成功时,从写入成功的所述缓存数据库读取所述流水数据;将所述流水数据写入所述事务数据库。
13.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现权利要求1-10任一项所述的方法步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-10任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010859086.9A CN112015766A (zh) | 2020-08-24 | 2020-08-24 | 一种基于流水的数据处理方法、装置及数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010859086.9A CN112015766A (zh) | 2020-08-24 | 2020-08-24 | 一种基于流水的数据处理方法、装置及数据处理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112015766A true CN112015766A (zh) | 2020-12-01 |
Family
ID=73505734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010859086.9A Pending CN112015766A (zh) | 2020-08-24 | 2020-08-24 | 一种基于流水的数据处理方法、装置及数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015766A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113450224A (zh) * | 2021-07-13 | 2021-09-28 | 成都质数斯达克科技有限公司 | 基于utxo模型的事务处理方法、装置、设备及存储介质 |
CN115129738A (zh) * | 2022-08-30 | 2022-09-30 | 太极计算机股份有限公司 | 一种数据跨库写入方法、装置和设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018746A (en) * | 1997-12-23 | 2000-01-25 | Unisys Corporation | System and method for managing recovery information in a transaction processing system |
US20170097953A1 (en) * | 2015-10-01 | 2017-04-06 | Microsoft Technology Licensing, Llc. | Read-write protocol for append-only distributed databases |
US20170161310A1 (en) * | 2014-05-02 | 2017-06-08 | Facebook, Inc. | Providing eventual consistency for multi-shard transactions |
CN107943840A (zh) * | 2017-10-30 | 2018-04-20 | 深圳前海微众银行股份有限公司 | 数据处理方法、系统和计算机可读存储介质 |
CN109766362A (zh) * | 2018-12-28 | 2019-05-17 | 北京字节跳动网络技术有限公司 | 数据处理方法及装置 |
CN110022226A (zh) * | 2019-01-04 | 2019-07-16 | 国网浙江省电力有限公司 | 一种基于面向对象的数据采集系统及采集方法 |
CN110765178A (zh) * | 2019-10-18 | 2020-02-07 | 京东数字科技控股有限公司 | 分布式事务的处理方法及装置、计算机可存储介质 |
-
2020
- 2020-08-24 CN CN202010859086.9A patent/CN112015766A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018746A (en) * | 1997-12-23 | 2000-01-25 | Unisys Corporation | System and method for managing recovery information in a transaction processing system |
US20170161310A1 (en) * | 2014-05-02 | 2017-06-08 | Facebook, Inc. | Providing eventual consistency for multi-shard transactions |
US20170097953A1 (en) * | 2015-10-01 | 2017-04-06 | Microsoft Technology Licensing, Llc. | Read-write protocol for append-only distributed databases |
CN108140043A (zh) * | 2015-10-01 | 2018-06-08 | 微软技术许可有限责任公司 | 只附加分布式数据库的读写协议 |
CN107943840A (zh) * | 2017-10-30 | 2018-04-20 | 深圳前海微众银行股份有限公司 | 数据处理方法、系统和计算机可读存储介质 |
CN109766362A (zh) * | 2018-12-28 | 2019-05-17 | 北京字节跳动网络技术有限公司 | 数据处理方法及装置 |
CN110022226A (zh) * | 2019-01-04 | 2019-07-16 | 国网浙江省电力有限公司 | 一种基于面向对象的数据采集系统及采集方法 |
CN110765178A (zh) * | 2019-10-18 | 2020-02-07 | 京东数字科技控股有限公司 | 分布式事务的处理方法及装置、计算机可存储介质 |
Non-Patent Citations (1)
Title |
---|
姚前: "数字货币研究前沿 第1辑", 中国金融出版社, pages: 0318 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113450224A (zh) * | 2021-07-13 | 2021-09-28 | 成都质数斯达克科技有限公司 | 基于utxo模型的事务处理方法、装置、设备及存储介质 |
CN113450224B (zh) * | 2021-07-13 | 2024-02-27 | 成都质数斯达克科技有限公司 | 基于utxo模型的事务处理方法、装置、设备及存储介质 |
CN115129738A (zh) * | 2022-08-30 | 2022-09-30 | 太极计算机股份有限公司 | 一种数据跨库写入方法、装置和设备 |
CN115129738B (zh) * | 2022-08-30 | 2022-12-13 | 太极计算机股份有限公司 | 一种数据跨库写入方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647357B (zh) | 数据查询的方法及装置 | |
CN111325617B (zh) | 基于文件的对账方法、装置、计算机设备和可读存储介质 | |
US11176517B2 (en) | System and method for anomaly detection and deduplication of electronic data feeds | |
CN110716878B (zh) | 一种接口自动化测试方法、装置及系统 | |
CN112015766A (zh) | 一种基于流水的数据处理方法、装置及数据处理系统 | |
CN112637305A (zh) | 一种基于缓存的数据存储与查询方法、装置、设备及介质 | |
CN109753378A (zh) | 一种内存故障的隔离方法、装置、系统及可读存储介质 | |
CN110046086B (zh) | 用于测试的期望数据生成方法及装置和电子设备 | |
CN110704486A (zh) | 数据处理方法、装置、系统、存储介质和服务器 | |
US11182375B2 (en) | Metadata validation tool | |
CN111309746A (zh) | 异步并行数据同步方法及装置 | |
CN112419018A (zh) | 分布式环境下的通用数据对账方法、服务器及存储介质 | |
CN112988812B (zh) | 库存数据的处理方法、装置、设备及存储介质 | |
CN110765144B (zh) | 分布式异构数据库数据处理方法及装置 | |
CN112860746A (zh) | 一种基于缓存削减的方法、设备及系统 | |
CN113395370B (zh) | 自动化配置自定义域名的方法及装置 | |
CN117555955B (zh) | 数据转换方法、数据转换装置、计算机设备、存储介质 | |
CN113761406B (zh) | 一种智能柜二维码短链生成方法、装置、介质及电子设备 | |
US10846287B2 (en) | Systems and methods for use in validating data in connection with data queries | |
CN115756575A (zh) | 一种提交记录获取方法、装置、设备及存储介质 | |
US10319006B2 (en) | System and method for database queries | |
CN115309986A (zh) | 一种管理接口的映射表的系统及方法 | |
CN117171030A (zh) | 软件运行环境检测方法、装置、设备及存储介质 | |
CN117687998A (zh) | 数据自检修复方法、装置、设备以及存储介质 | |
CN115080194A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant before: Jingdong Digital Technology Holding Co., Ltd |