CN112035471B - 一种事务处理方法及计算机设备 - Google Patents
一种事务处理方法及计算机设备 Download PDFInfo
- Publication number
- CN112035471B CN112035471B CN202010887435.8A CN202010887435A CN112035471B CN 112035471 B CN112035471 B CN 112035471B CN 202010887435 A CN202010887435 A CN 202010887435A CN 112035471 B CN112035471 B CN 112035471B
- Authority
- CN
- China
- Prior art keywords
- data
- key value
- value pair
- content
- target
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000001360 synchronised effect Effects 0.000 claims abstract description 21
- 238000013515 script Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 240000008042 Zea mays Species 0.000 claims description 9
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 claims description 9
- 235000002017 Zea mays subsp mays Nutrition 0.000 claims description 9
- 235000005822 corn Nutrition 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 11
- 230000006399 behavior Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据处理技术领域,提供了一种事务处理方法、事务处理装置、计算机设备及计算机可读存储介质。其中,一种事务处理方法,通过主动对目标数据库进行检测,且是检测目标数据库的binlog文件内容,由于binlog文件用于记录用户对目标数据库进行操作的内容,因此如果目标数据库的binlog文件被更新,则通过对binlog文件进行解析能够确定出数据同步内容,又因为目标数据库中的数据内容是以键值对格式存储,因此基于该数据同步内容对本地数据库进行数据同步时,只需要同步一个字段的数据内容即可,无需在同步过程中确定关联数据,更不需要对数据进行锁定等操作,提高了数据库的事务处理的灵活程度与事务处理的效率。本申请还适用于区块链技术领域。
Description
技术领域
本发明属于涉及数据处理及区块链技术,尤其涉及一种事务处理方法、事务处理装置、计算机设备及计算机可读存储介质。
背景技术
如今,在许多高并发场景中,为了提高有关数据的事务处理效率,构建相应的分布式数据库用于响应或处理事务已成常态。例如,根据不同的地理区域设置相应的服务器,并在每个服务器中构建对应的数据库,通过配置数据库与数据库之间的访问逻辑或者权限等,将不同服务器中的数据库组成数据库集群,进而完成分布式数据库的构建。
然而,在许多业务场景中,内容不同的数据之间存在关联,且内容不同的数据被存储在不同的表格或表单内,例如,用户甲与用户乙的保单缴费数据都被记录在同一营业厅的业务表格内,而用户甲与用户乙各自的保单则单独作为表单进行存储,故营业厅的业务表格同时与用户甲的表单以及用户乙的表单之间存在关联关系。由于营业厅的业务表格与用户甲的表单以及用户乙的表单关联存储在分布式数据库中的某个目标数据库节点上,因此在利用分布式数据库中的数据进行事务处理时,不得不考虑数据之间的关联性。例如,在对目标数据库节点中的数据表单进行修改后,如果需要将目标数据库中该数据表单的内容同步至分布式数据库中的其他数据库节点,为了保证同步操作前后的数据统一,在进行同步操作的过程中,需要对该目标数据库中的数据表单进行锁定操作,也即在同步过程中,禁止其他任务对该数据表单及其关联的表格或表单进行操作。可见,现有的分布式数据库,存在事务处理灵活程度不高、效率较低的问题。
发明内容
有鉴于此,本申请实施例提供了一种事务处理方法、事务处理装置、计算机设备及计算机可读存储介质,以解决现有的分布式数据库,存在事务处理灵活程度不高、效率较低的问题。
本申请实施例的第一方面提供了一种事务处理方法,包括:
检测目标数据库的二进制日志binlog文件是否被更新;其中,所述binlog文件用于记录用户对所述目标数据库进行操作的内容;所述目标数据库中的数据内容以键值对格式存储;
若所述binlog文件被更新,则对所述binlog文件进行解析,确定数据同步内容;
基于所述数据同步内容对本地数据库进行数据同步。
本申请实施例的第二方面提供了一种事务处理装置,包括:
检测单元,用于检测目标数据库的二进制日志binlog文件是否被更新;其中,所述binlog文件用于记录用户对所述目标数据库进行操作的内容;所述目标数据库中的数据内容以键值对格式存储;
确定单元,用于若所述binlog文件被更新,则对所述binlog文件进行解析,确定数据同步内容;
同步单元,用于基于所述数据同步内容对本地数据库进行数据同步。
本申请实施例的第三方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面的各个步骤。
实施本申请实施例提供的一种事务处理方法、事务处理装置、计算机设备及计算机可读存储介质具有以下有益效果:
本申请实施例,通过主动对目标数据库进行检测,且是检测目标数据库的binlog文件内容,由于binlog文件用于记录用户对目标数据库进行操作的内容,因此如果目标数据库的binlog文件被更新,则通过对binlog文件进行解析能够确定出数据同步内容,又因为目标数据库中的数据内容是以键值对格式存储,因此基于该数据同步内容对本地数据库进行数据同步时,只需要同步一个字段的数据内容即可,无需在同步过程中确定关联数据,更不需要对数据进行锁定等操作,提高了数据库的事务处理的灵活程度与事务处理的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种事务处理方法的实现流程图;
图2是本申请另一实施例提供的一种事务处理方法的实现流程图;
图3是本申请一实施例提供的一种事务处理装置的结构框图;
图4是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例,对目标数据库的binlog文件内容是否更新进行检测,由于binlog文件用于记录用户对目标数据库进行操作的内容,因此如果检测到目标数据库的binlog文件被更新,则通过对binlog文件进行解析能够确定出数据同步内容,又因为目标数据库中的数据内容是以键值对格式存储,因此基于该数据同步内容对本地数据库进行数据同步时,只需要同步一个字段的数据内容即可,无需在同步过程中确定关联数据,更不需要对数据内容进行锁定等操作,提高了数据库的事务处理的灵活程度与事务处理的效率。
在本申请实施例中,事务处理方法中各步骤的执行主体为分布式数据库中,任一数据库对应的服务器,或者是用于管理该分布式数据库的代理服务器,该服务器或代理服务器包括但不限于:计算机、智能手机以及平板电脑等能够执行事务处理方法的设备。图1示出了本申请第一实施例提供的事务处理方法的实现流程图,详述如下:
S11:检测目标数据库的二进制日志binlog文件是否被更新。
在步骤S11中,目标数据库为预先构建在目标服务器中的数据库,目标数据库中的数据内容以键值对格式存储。目标服务器与服务器为两个不同的服务器,且同属于一个分布式系统中。binlog文件用于记录用户对目标数据库进行操作的内容。例如,对目标数据库进行数据删除操作、数据写入操作以及数据修改操作中的至少一种,不包括从目标数据库中读取数据的操作。
需要说明的是,分布式系统是多个处理机通过通信线路互联而构成的松散耦合的系统。目标服务器与服务器同属于一个分布式系统中,也即目标服务器与服务器相当于该分布式系统中的两个处理机。该分布式系统中可以配置有多个目标服务器,每个目标服务器均与服务器之间,通过通信线路互联。在实际应用中,服务器可以通过设置对个检测任务对分布式系统中的每个目标服务器进行binlog文件的更新任务检测。或者,由分布式系统中的每个目标服务器进行binlog文件上报,也即每个目标服务器周期性将binlog文件上报至服务器,由服务器检测上报的binlog文件是否被更新。
在本实施例中,检测目标数据库的binlog文件是否被更新,可以是在服务器中配置多个定时任务,多个定时任务与多个目标服务器一一对应,其中,单个定时任务对应检测单个目标服务器中目标数据库的binlog文件的更新状态。另外,还可以通过对每个目标服务器配置相应的定时上报任务,在目标服务器执行每次上报任务时,将目标数据库中的binlog文件上报至服务器,由服务器检测该binlog文件是否被更新。
在一些已有的技术中,数据库中存储的信息多以数据原始文件存储,以数据为实际的电子表单为例,在目标数据库中存储的表单为原始的电子表单文件,如包括:产品A表单对应N个属性表单,N为等于或大于1的整数,由于在实际应用中,N个属性表单中的每个属性表单都与产品A表单关联,因此在数据库中存储上述表单时,需要将不同的表单文件之间关联进行备注或者关联存储,也即需要在存储上述表单时,考虑产品A表单分别与N个属性表单之间的关联关系。同时,还会导致用户在对数据库中的数据进行操作时,必须通过新增关联任务对与操作对象表单关联的其他表单进行同步操作,如用户对产品A表单进行内容删除、内容增加和/或内容修改等操作后,需要通过新增关联任务对与产品A表单关联的N个属性表单中的部分或全部表单进行同步操作。
在本申请的所有实施例中,在服务器与多个目标服务器所组成的分布式系统中,无论是每个目标服务器的目标数据库还是服务器的本地数据库,存储数据的方式均是以键值对格式存储。也即,目标数据库中的数据以键值对格式存储,且本地数据库中的数据同样以键值对格式存储。这里,键值对格式与json格式类似,但与json格式不同的是,键值对格式则是应用于数据存储,而json格式被应用于数据传输过程。由于键值对以文本形式呈现,且键值对包括:键名key与键值value,因此在以键值对格式存储数据时,能够将相互关联的表单内容以键名key与键值value的文本形式来描述,而为了体现数据之间的关联,还可以在某对键值对中的键值value中嵌套新的键名key与新的键值value,设置在新的键值value中嵌套新的键值对,实现多个表单数据关联时,只需要将所有数据以键值对的结构存储方式存储在数据库中即可。也即,将具有关联的数据转换为处理对象,通过组建key与value的绑定关系实现对多关联数据的结构化存储,不仅实现数据的文本化存储,还使得数据间的关联关系能够被文本字段直接表征,同时还避免了因数据间的关联关系导致数据存储结构过于复杂,降低了数据维护难度。
作为本申请一实施例,步骤S11具体包括:按照预设的执行周期,调用日志收集管理工具logstash检测目标数据库的所述binlog文件是否被更新。
在本实施例中,服务器中配置有用于描述预设的执行周期的脚本文件,服务器通过执行该脚本文件,进而按照该脚本文件所描述的预设的执行周期,调用logstash检测目标数据库的binlog文件是否被更新。
需要说明的是,logstash是一种已有的日志收集管理工具,至少由输入input插件、过滤filter插件以及输出output插件组成。这里,调用logstash检测目标数据库的binlog文件是否被更新时,调用input插件生成事件,由filter插件修改事件内容,output插件将修改后的事件内容输出到目标位置。
在实际应用中,input插件,用于提取数据。其中,数据来自binlog文件,通过配置侦听器与若干协议特定插件,如TCP或UDP,以及syslog或IRC实现从binlog文件中提取数据。还可以是利用排队系统(如Redis,AQMP或Kafka),围绕事件来源的元数据标记传入事件。filter插件,用于插件转换并丰富数据。output插件,用于将已处理的事件加载到其他内容中,例如ElasticSearch或其他文档数据库,或排队系统,如Redis,AQMP或Kafka。
作为本实施例一种可能实现的方式,在按照预设的执行周期,调用日志收集管理工具logstash检测目标数据库的所述binlog文件是否被更新的步骤之前,还包括:
将预先配置的用于描述所述执行周期的corn表达式,配置到定时任务脚本文件中;若检测到用于确定目标数据库的预设指令,则执行所述定时任务脚本文件。
在本实施例中,corn表达式用于描述执行周期,该执行周期也是调用logstash的周期与时机。定时任务脚本文件用于描述调用logstash的策略,这里,定时脚本文件中定义了用于调用logstash的任务,也即定义了logstash任务,通过将corn表达式配置到定时任务脚本文件中,使得logstash任务能够按照corn表达式所描述的执行周期被执行。预设指令用于确定目标数据库。这里,在确定了目标数据库后,通过执行定时任务脚本文件,进入对binlog文件是否被更新的检测任务,也即开始按照预设的执行周期,调用日志收集管理工具logstash检测目标数据库的binlog文件是否被更新。
需要说明的是,corn表达式可以通过corn表达式生成器生成,通过在该corn表达式生成器中选取相应的周期时间,也即执行时间间隔,进而生成对应的执行语句,将该执行语句作为corn表达式配置到定时任务脚本文件中。
S12:若所述binlog文件被更新,则对所述binlog文件进行解析,确定数据同步内容。
在S12中,数据同步内容是指用户对目标数据库进行操作后,目标数据库中被改动和/或增加的数据内容。这里,被改动的数据内容是指被修改了键值部分的键值对,且该键值对原本就存在于目标数据库中;增加的数据内容是指新加入目标数据库的键值对。其中,被修改了键值部分的键值对,可以是删除了原有键值部分,或者将原有键值部分修改为新的键值部分。
在本实施例中,对binlog文件进行解析,可以是利用二进制日志解析工具对该binlog文件进行内容解析,进而得出用于描述用户对目标数据库进行操作的动作及其相关的数据内容。由于binlog文件用于记录用户对目标数据库进行操作的内容,因此binlog文件中记录了用户对目标数据库的数据进行修改、删除和/或新增的操作行为,及操作行为对于的数据内容,也即与操作行为相关的键值对。这里,对binlog文件进行解析可以是将操作行为相关的键值对提取出来,并根据不同的操作行为进行区分,如果操作行为是删除,则将从目标数据库中删除的键值对作为数据同步内容;如果操作行为是修改,则将对目标数据库中修改的键值对作为数据同步内容;如果修改行为是增加,则将在目标数据库增加的键值对作为数据同步内容。
在实际应用中,不同的操作行为可以是并发执行,也可以是按照用户的触发顺序依次执行,当不同的操作行为是按照用户的触发顺序依次执行时,由于不同的操作行为可能会针对同一组键值对,因此在确定数据同步内容时,如果多个操作行为均指向同一组键值对,也即对应键名相同的键值对,则将触发顺序排在最后的操作行为以及对应的键值对内容确定为数据同步内容。无需对处于最后操作行为之前的数据操作进行解析与数据同步等操作,避免在同步过程中出现数据冗余的现象。
应当理解的是,用户在对目标数据库中的数据进行操作时,由于键值对的键名用于区分键值的含义,因此不会对键值对中的键名部分进行修改,也即用户对目标数据库中的数据进行操作时,目标数据库中原有的键值对中的键名部分不变,变动的仅有键值对中的键值部分。
S13:基于所述数据同步内容对本地数据库进行数据同步。
在步骤S13中,数据同步内容是指用户对目标数据库进行操作后,目标数据库中被改动和/或增加的数据内容。该数据同步内容的呈现格式与目标数据库中存储数据的格式一样,也即该数据内容是由键名与键值组成的至少一组键值对。
需要说明的是,对本地数据库进行数据同步是利用数据同步内容中的键值对替换本地数据库中的键值对,和/或将数据同步内容中的键值对增加至本地数据库中。在实际应用中,基于数据同步内容本地数据库进行数据同步,还可以是先将数据同步内容中的键值对进行分类,得到修改类型的键值对与新增类型的键值对,利用修改类型的键值对替换本地数据库中的相应键值对,将新增类型的键值对增加至本地数据库中。这里,由于键值对的键名用于区分键值的含义,因此不会对键值对中的键名部分进行修改,也即用户对目标数据库中的数据进行操作时,目标数据库中原有的键值对中的键名部分不变,变动的仅有键值对中的键值部分。相应地,利用数据同步内容中的键值对替换本地数据库中的键值对时,可以是利用数据同步内容中键值对的键值部分替换本地数据库中键值对的键值部分。
作为本申请一实施例,步骤S13具体可以包括:从所述数据同步内容中识别出第一键值对和/或第二键值对;其中,所述第一键值用于表征所述目标数据库中被修改的数据内容;所述第二键值对用于表征所述目标数据库中新增的数据内容;根据所述第一键值对和/或第二键值对本地数据库进行数据同步。
在本实施例中,由于键值对由至少一个键名与键值组成,且在对已有的键值对进行数据修改时,修改的是键值部分的内容,因此在基于数据同步内容对本地数据库进行数据同步时,将数据同步内容中键值对的键名部分与本地数据库中键值对的键名部分进行匹配,当匹配到相同的键名时,利用数据同步内容中该键名对应的键值部分替换本地数据库中的键值部分,当匹配不到相同的键名时,这将该数据同步内容中键值对作为新增数据,同步至本地数据库中。
例如,本地数据库中存储的内容如下:
{
“险种1”:“标签类型1”,
“缴费情况”:“未缴费”
……}
数据同步内容如下:
{
“险种1”:“标签类型1”,
“缴费情况”:“已经缴费”,
……
“险种2”:“标签类型2”,
“缴费账户”:“YYYY”,
}
其中,键名为“缴费情况”的键值对为第一键值对,键名为“险种2”与“缴费账户”的键值对,均为第二键值对。根据第一键值对和第二键值对本地数据库进行数据同步,进行数据同步后的本地数据库中存储的内容为:
{
“险种1”:“标签类型1”,
“缴费情况”:“已经缴费”,
……
“险种2”:“标签类型2”,
“缴费账户”:“YYYY”,
}
在本实施例中,先将数据同步内容中的键值对进行分类,得到修改类型的键值对与新增类型的键值对,再利用修改类型的键值对替换本地数据库中的相应键值对,将新增类型的键值对增加至本地数据库中,也即可以通过配置不同的任务执行类型不同的同步任务,使得数据同步过程更具针对性,提高了数据同步的科学化程度与效率。
作为本实施例一种可能实现的方式,步骤根据所述第一键值对和/或第二键值对本地数据库进行数据同步,包括:
根据所述第一键值对的键名,从所述本地数据库中确定出待同步键值对,并将所述待同步键值对替换为所述第一键值对;和/或将所述第二键值对作为新增键值对,存入所述本地数据库中。
在本实施例中,待同步键值对为本地数据库中的键值对,且待同步键值对的键名与第一键值对的键名相同,根据第一键值对的键名从本地数据库中确定出待同步键值对就是查找与第一键值对拥有相同键名的键值对的过程。由于第二键值对为新增的键值对,因此本地数据库中在上次同步时并未将该第二键值对同步在其中,因此第二键值对直接作为新增的数据内容存储至本地数据库中。
在一些已有方案中,由于存储在数据库中的数据为表格形式,故在对数据进行数据修改或数据增加时,需要利用DDL脚本对该表格进行数据修改或数据增加,同时还要对该表格进行内容锁定,也即禁止其他服务器或访问终端对该表格内容进行读写。
本实施例的方案中,由于数据同步内容为键值对,因此基于数据同步内容对本地数据库进行数据同步,实际上是将数据同步内容中描述的键值对同步至本地数据库中。无论是目标数据库还是本地数据库,数据存储的方式均为键值对格式存储,故将数据同步内容中描述的键值对同步至本地数据库中,属于文本信息同步,故在对本地数据库进行信息同步时,不需要对进行数据同步的本地数据库进行内容锁定或者禁止读写等操作,使得有关数据库的事务处理更加灵活,提高了数据库管理的科学化程度。
以上方案中,通过主动对目标数据库进行检测,且是检测目标数据库的binlog文件内容,由于binlog文件用于记录用户对目标数据库进行操作的内容,因此如果目标数据库的binlog文件被更新,则通过对binlog文件进行解析能够确定出数据同步内容,又因为目标数据库中的数据内容是以键值对格式存储,因此基于该数据同步内容对本地数据库进行数据同步时,只需要同步一个字段的数据内容即可,无需在同步过程中确定关联数据,更不需要对数据进行锁定等操作,提高了数据库的事务处理的灵活程度与事务处理的效率。
图2示出了本申请另一实施例提供的一种事务处理方法的实现流程图。参见图2,相对于图1所述实施例,本实施例提供的一种事务处理方法中在所述基于所述数据同步内容对本地数据库进行数据同步的步骤之后,还包括:S21~S23,具体详述如下:
进一步地,在所述基于所述数据同步内容对本地数据库进行数据同步的步骤之后,还包括:
S21:若接收到查询终端发送的用于获取数据的请求,则从进行数据同步后的本地数据库中检索目标键值对。
在步骤S21中,查询终端为具有访问本地数据库权限的终端,用户通过查询终端向服务器发送获取数据的请求,由服务器根据该请求从进行数据同步后的本地数据库中检索目标业务数据。
在本实施例中,用于获取数据的请求携带有目标键名,服务器接收到该请求时,根据该请求携带的目标键名从进行数据同步后的本地数据库中检索目标键值对。
需要说明的是,由于本地数据库中存储的数据内容是以键值对格式存储,也即利用了键名key与键值value的对应关系,以文本方式描述了数据的具体内容,因此多组数据相互关联的场景下,可以在一组键值对中嵌套另外的键值对,也即在第一层键值对(键名key1与键值value1)的组合中,于该第一层键值对的value1中嵌套第二层键值对(键名key2与键值value2),这里,第二层键值对可以是一组或多组,以此类推,在每一组第二层键值对中还能够嵌套第三层键值对,同样,在每组第二层键值对的键值中嵌套的第三层键值对,也可以是一组或多组。
以进行数据同步后的本地数据库中的数据为用户的保单数据为例,用户的保单数据以键值对格式存储,具体内容如下:
{
“险种1”:“标签类型1”,
“缴费情况”:“已经缴费,‘缴费时间’:‘2020年1月1日’;‘账户信息1’:‘投保人’:‘张三(男)、李四(男)’;‘被保人’:‘王二(男)’‘身份证号码’:‘123456789012345678’;‘联系方式’:‘1XXXXXXXXXX’
}
在上述保单数据中,第一层键值对的键名包括:“险种1”与“缴费情况”,在键名为“缴费情况”的键值对中,嵌套了四层键值对,其中,‘缴费时间’与‘账户信息1’为第二层键值对的键名,‘投保人’与‘被保人’为第三层键值对的键名,‘身份证号码’为第四层键值对的键名。
可以理解的是,由于从进行数据同步后的本地数据库中检索目标键值对,是将用于获取数据的请求中所携带的目标键名与进行数据同步后的本地数据库中的键值对进行匹配,进而从中确定出键名与目标键名一致的目标键值对,属于文本信息的查询与匹配,不会对本地数据库中的数据内容进行更改,因此在执行步骤S21时,不需要对进行数据同步后的本地数据库进行内容锁定或者禁止读写等操作。
S22:调用数据展示工具根据所述目标键值对所表征的数据内容生成数据图表。
S23:将包含所述数据图表的目标文件发送给所述查询终端。
在本实施例中,数据展示工具用于根据目标键值对所表征是数据内容生成数据图表。
需要说明的是,调用数据展示工具根据目标键值对所表征的数据内容生成数据图表,可以是创建一个可视化的视图,再选择一个可视化类型,将目标键值对中的键值作为可视化数据,于构建器中选择Y轴的聚合操作,如,sum,average,count等等,在通过定义X轴的表征或大小,即可生成数据图表。
在实际应用中,数据展示工具可以是已有的开源可视化操作平台Kibana,通过Kibana配置规则和维度设置,利用预先配置好的groovy脚本,实现数据查询和热刷新,实现动态以柱状、折线、饼状等多样化形式展示在Kibana平台界面。其中,groovy脚本中定义了从本地数据库中查找数据的方式。
需要说明的是,目标文件中包含有数据图表,还包含有需在查询终端上加载的页面文件,该页面文件文件中定义了页面元素以及各种功能控件。查询终端在接收到该目标文件后,记载得到查询结果,用户可以根据实际需求对页面元素或者功能控件进行操作,实现基于数据图表的自定义操作。
可以理解的是,在实际应用中,目标文件中所包含的页面文件可以基于实际需求进行个性化配置,且由于查询终端上如何完成自定义操作,属于查询终端上的动作,故此处不再对其进行赘述。
作为一个实施例,在所述将包含所述数据图表的目标文件发送给所述查询终端的步骤之后,还包括:将包含所述数据图表的目标文件上传至区块链节点中。
在本实施例中,为了将数据图表进行共享,将包含数据图表的目标文件上传至区块链节点中,进而避免该数据图表被篡改。
在本申请的所有实施例中,包含数据图表的目标文件能够被查询终端或者分布式系统中的其他服务器加载成包含数据图表的页面。在实际使用中,可以从区块链中下载得该目标文件,以避免数据图表在传输过程中被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上方案中,通过主动对目标数据库进行检测,且是检测目标数据库的binlog文件内容,由于binlog文件用于记录用户对目标数据库进行操作的内容,因此如果目标数据库的binlog文件被更新,则通过对binlog文件进行解析能够确定出数据同步内容,又因为目标数据库中的数据内容是以键值对格式存储,因此基于该数据同步内容对本地数据库进行数据同步时,只需要同步一个字段的数据内容即可,无需在同步过程中确定关联数据,更不需要对数据进行锁定等操作,提高了数据库的事务处理的灵活程度与事务处理的效率。
此外,根据接收到的获取数据的请求,从进行数据同步后的本地数据库中检索目标键值对,由于键值对是以键名与键值描述的文本内容,因此在从进行数据同步后的本地数据库中检索目标键值对时,只需要根据请求中携带的键名进行目标键值对的查询即可,无需考虑查询内容的关联性,也无需进行多数据关联查询,通过调用数据展示工具根据目标键值对所表征的数据内容生成数据图表,进而将包含有该数据图表的目标文件发送给查询终端,实现在提高了数据查询效率的同时,还令查询到的数据更加形象化。
请参阅图3,图3是本申请实施例提供的一种事务处理装置的结构框图。本实施例中该移动终端包括的各单元用于执行图1至图2对应的实施例中的各步骤。具体请参阅图1至图2以及图1至图2所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图3,事务处理装置30包括:检测单元31、确定单元32以及同步单元33,其中:
检测单元31,用于检测目标数据库的二进制日志binlog文件是否被更新;其中,所述binlog文件用于记录用户对所述目标数据库进行操作的内容;所述目标数据库中的数据内容以键值对格式存储。
确定单元32,用于若所述binlog文件被更新,则对所述binlog文件进行解析,确定数据同步内容。
同步单元33,用于基于所述数据同步内容对本地数据库进行数据同步。
作为本申请一实施例,事务处理装置30还包括:
检索单元34,用于若接收到查询终端发送的用于获取数据的请求,则从进行数据同步后的本地数据库中检索目标键值对。
图表生成单元35,用于调用数据展示工具根据所述目标键值对所表征的数据内容生成数据图表。
发送单元36,用于将包含所述数据图表的目标文件发送给所述查询终端。
作为本申请一实施例,事务处理装置30还包括:
上传单元,用于将包含所述数据图表的目标文件上传至区块链节点中。
应当理解的是,图3示出的事务处理装置的结构框图中,各单元用于执行图1至图2对应的实施例中的各步骤,而对于图1至图2对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1至图2以及图1至图2所对应的实施例中的相关描述,此处不再赘述。
图4是本申请另一实施例提供的一种计算机设备的结构框图。如图4所示,该实施例的计算机设备40包括:处理器41、存储器42以及存储在所述存储器42中并可在所述处理器41上运行的计算机程序43,例如事务处理方法的程序。处理器41执行所述计算机程序43时实现上述各个事务处理方法各实施例中的步骤,例如图1所示的S11至S13,或者图2所示的S11至S13以及S21至S23。或者,所述处理器41执行所述计算机程序43时实现上述图3对应的实施例中各单元的功能,例如,图3所示的单元31至36的功能,具体请参阅图3对应的实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序43可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器42中,并由所述处理器41执行,以完成本申请。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序43在所述计算机设备40中的执行过程。例如,所述计算机程序43可以被分割成查询单元、显示单元、发送单元以及接收单元,各单元具体功能如上所述。
所述转台设备可包括,但不仅限于,处理器41、存储器42。本领域技术人员可以理解,图4仅仅是计算机设备40的示例,并不构成对计算机设备40的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述转台设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器41可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器42可以是所述计算机设备40的内部存储单元,例如计算机设备40的硬盘或内存。所述存储器42也可以是所述计算机设备40的外部存储设备,例如所述计算机设备40上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器42还可以既包括所述计算机设备40的内部存储单元也包括外部存储设备。所述存储器42用于存储所述计算机程序以及所述转台设备所需的其他程序和数据。所述存储器42还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (8)
1.一种事务处理方法,其特征在于,包括:
检测目标数据库的二进制日志binlog文件是否被更新;其中,所述binlog文件用于记录用户对所述目标数据库进行操作的内容;所述目标数据库中的数据内容以键值对格式存储;
若所述binlog文件被更新,则对所述binlog文件进行解析,确定数据同步内容;
基于所述数据同步内容对本地数据库进行数据同步;
所述基于所述数据同步内容对本地数据库进行数据同步,包括:
从所述数据同步内容中识别出第一键值对和/或第二键值对;其中,所述第一键值用于表征所述目标数据库中被修改的数据内容;所述第二键值对用于表征所述目标数据库中新增的数据内容;
根据所述第一键值对和/或第二键值对本地数据库进行数据同步;
所述根据所述第一键值对和/或第二键值对本地数据库进行数据同步,包括:
根据所述第一键值对的键名,从所述本地数据库中确定出待同步键值对,并将所述待同步键值对替换为所述第一键值对;和/或
将所述第二键值对作为新增键值对,存入所述本地数据库中。
2.根据权利要求1所述的事务处理方法,其特征在于,所述检测目标数据库的二进制日志binlog文件是否被更新,包括:
按照预设的执行周期,调用日志收集管理工具logstash检测目标数据库的所述binlog文件是否被更新。
3.根据权利要求2所述的事务处理方法,其特征在于,在所述按照预设的执行周期,调用日志收集管理工具logstash检测目标数据库的所述binlog文件是否被更新的步骤之前,还包括:
将预先配置的用于描述所述执行周期的corn表达式,配置到定时任务脚本文件中;所述定时任务脚本文件用于描述调用所述logstash的策略;
若检测到用于确定目标数据库的预设指令,则执行所述定时任务脚本文件。
4.根据权利要求1所述的事务处理方法,其特征在于,在所述基于所述数据同步内容对本地数据库进行数据同步的步骤之后,还包括:
若接收到查询终端发送的用于获取数据的请求,则从进行数据同步后的本地数据库中检索目标键值对;
调用数据展示工具根据所述目标键值对所表征的数据内容生成数据图表;
将包含所述数据图表的目标文件发送给所述查询终端。
5.根据权利要求4所述的事务处理方法,其特征在于,在所述将包含所述数据图表的目标文件发送给所述查询终端的步骤之后,还包括:
将包含所述数据图表的目标文件上传至区块链节点中。
6.一种事务处理装置,其特征在于,包括:
检测单元,用于检测目标数据库的二进制日志binlog文件是否被更新;其中,所述binlog文件用于记录用户对所述目标数据库进行操作的内容;所述目标数据库中的数据内容以键值对格式存储;
确定单元,用于若所述binlog文件被更新,则对所述binlog文件进行解析,确定数据同步内容;
同步单元,用于基于所述数据同步内容对本地数据库进行数据同步;
所述同步单元具体用于:
从所述数据同步内容中识别出第一键值对和/或第二键值对;其中,所述第一键值用于表征所述目标数据库中被修改的数据内容;所述第二键值对用于表征所述目标数据库中新增的数据内容;
根据所述第一键值对的键名,从所述本地数据库中确定出待同步键值对,并将所述待同步键值对替换为所述第一键值对;和/或
将所述第二键值对作为新增键值对,存入所述本地数据库中。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时如权利要求1至5任一项所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010887435.8A CN112035471B (zh) | 2020-08-28 | 2020-08-28 | 一种事务处理方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010887435.8A CN112035471B (zh) | 2020-08-28 | 2020-08-28 | 一种事务处理方法及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035471A CN112035471A (zh) | 2020-12-04 |
CN112035471B true CN112035471B (zh) | 2024-05-17 |
Family
ID=73586107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010887435.8A Active CN112035471B (zh) | 2020-08-28 | 2020-08-28 | 一种事务处理方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035471B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535857A (zh) * | 2021-08-04 | 2021-10-22 | 阿波罗智联(北京)科技有限公司 | 数据同步方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239357A (zh) * | 2013-06-21 | 2014-12-24 | Sap欧洲公司 | 用于数据库事务的并发请求处理 |
CN107341212A (zh) * | 2017-06-26 | 2017-11-10 | 努比亚技术有限公司 | 一种缓存更新方法及设备 |
CN107402963A (zh) * | 2017-06-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 搜索数据的构建方法、增量数据的推送方法及装置和设备 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
-
2020
- 2020-08-28 CN CN202010887435.8A patent/CN112035471B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239357A (zh) * | 2013-06-21 | 2014-12-24 | Sap欧洲公司 | 用于数据库事务的并发请求处理 |
CN107402963A (zh) * | 2017-06-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 搜索数据的构建方法、增量数据的推送方法及装置和设备 |
CN107341212A (zh) * | 2017-06-26 | 2017-11-10 | 努比亚技术有限公司 | 一种缓存更新方法及设备 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
Also Published As
Publication number | Publication date |
---|---|
CN112035471A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107798038B (zh) | 数据响应方法及数据响应设备 | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
CN111352902A (zh) | 日志处理方法、装置、终端设备及存储介质 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
CN113704790A (zh) | 一种异常日志信息汇总方法及计算机设备 | |
CN112035471B (zh) | 一种事务处理方法及计算机设备 | |
CN114218156A (zh) | 数据导出方法、装置、计算机设备和存储介质 | |
CN116993523A (zh) | 配置化对账方法、装置、设备及存储介质 | |
CN117151045A (zh) | 基于区块链的报表加工方法、装置及计算机设备 | |
CN113407551A (zh) | 数据一致性确定方法、装置、设备及存储介质 | |
CN106156904B (zh) | 一种基于eID的跨平台虚拟资产溯源方法 | |
CN108616603B (zh) | 一种内外网数据同步方法和系统 | |
CN114157662B (zh) | 一种云平台参数适配方法、装置、终端设备及储存介质 | |
US9659041B2 (en) | Model for capturing audit trail data with reduced probability of loss of critical data | |
US11860858B1 (en) | Decoding distributed ledger transaction records | |
CN111475505B (zh) | 一种数据采集的方法及设备 | |
CN114297236A (zh) | 一种数据血缘分析方法、终端设备及存储介质 | |
CN111611056A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN110196877B (zh) | 数据展示方法、装置、计算机设备及存储介质 | |
CN115604667B (zh) | 消息发送方法、装置、计算机设备和存储介质 | |
CN112860755B (zh) | 业务标识生成方法、装置、计算机设备和介质 | |
CN111611245B (zh) | 处理数据表的方法和系统 | |
CN111339566B (zh) | 区块摘要方法、装置、计算机设备和存储介质 | |
CN116662338A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |