CN116578546A - 一种基于数据库的数据处理方法、系统、装置及存储介质 - Google Patents
一种基于数据库的数据处理方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN116578546A CN116578546A CN202310525412.6A CN202310525412A CN116578546A CN 116578546 A CN116578546 A CN 116578546A CN 202310525412 A CN202310525412 A CN 202310525412A CN 116578546 A CN116578546 A CN 116578546A
- Authority
- CN
- China
- Prior art keywords
- database
- data source
- request
- application
- identifier
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012360 testing method Methods 0.000 claims abstract description 48
- 238000012795 verification Methods 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims description 67
- 230000004044 response Effects 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 21
- 238000004519 manufacturing process Methods 0.000 claims description 19
- 238000011161 development Methods 0.000 claims description 5
- 238000013508 migration Methods 0.000 abstract description 12
- 230000005012 migration Effects 0.000 abstract description 12
- 238000007726 management method Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000000007 visual effect Effects 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据库的数据处理方法、系统、装置及存储介质,包括:获取请求的身份标识信息,并根据身份标识信息确定请求对象;请求对象包括使用对象或测试对象;根据请求对象确定线程本地变量的应用数据源;应用数据源包括第一数据源和第二数据源;通过线程本地变量获取应用数据源对应的数据库标识,并根据数据库标识切换到对应的应用数据库以执行请求操作;应用数据库包括第一数据库或第二数据库。本发明实施例能够提高数据库的迁移和验证效率,不影响正常运行,可广泛应用于计算机技术领域。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于数据库的数据处理方法、系统、装置及存储介质。
背景技术
随着数字化办公的普及,电子管理系统在各行各业广泛应用。电子管理系统一般包含一个数据库,有些电子管理系统需要24小时不间断运行,根据应用需求,如果该电子管理系统需要进行升级或扩容,涉及数据库的数据迁移和功能验证。在相关技术中,在测试环境进行数据库迁移测试后,直接在生产环境进行数据库迁移工作,然后进行验证,如果失败则全量回退,这样会消耗大量工作量,效率低,影响系统的正常运行。
发明内容
有鉴于此,本发明实施例的目的是提供一种基于数据库的数据处理方法、系统、装置及存储介质,能够提高数据库的迁移和验证效率,不影响正常运行。
一方面,本发明实施例提供了一种基于数据库的数据处理方法,包括:
获取请求的身份标识信息,并根据所述身份标识信息确定请求对象;所述请求对象包括使用对象或测试对象;
根据请求对象确定线程本地变量的应用数据源;所述应用数据源包括第一数据源和第二数据源;
通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作;所述应用数据库包括第一数据库或第二数据库。
可选地,所述身份标识信息包括IP地址,所述获取请求的身份标识信息,并根据所述身份标识信息确定请求对象,具体包括:
通过分布式项目开发框架的拦截功能,获取请求对应的IP地址;
若所述IP地址为预设地址集中的任意一个,将所述请求对象确定为测试对象;
若所述IP地址不属于预设地址集,将所述请求对象确定为使用对象。
可选地,所述根据请求对象确定线程本地变量的应用数据源,具体包括:
若所述请求对象为测试对象,将线程本地变量的应用数据源设置为第二数据源;所述第二数据源为表征灰度环境的数据源;
若所述请求对象为使用对象,将所述线程本地变量的应用数据源设置为第一数据源;所述第一数据源为表征生产环境的数据源。
可选地,通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作,具体包括:
若线程本地变量的应用数据源为第一数据源,将所述数据库标识确定为第一标识,根据所述第一标识获取所述第一数据库的接口作为第一接口,以执行请求操作;所述第一数据源为表征生产环境的数据源;
若线程本地变量的应用数据源为第二数据源,将所述数据库标识确定为第二标识,根据所述第二标识获取所述第二数据库的接口作为第二接口,以执行请求操作;所述第二数据源为表征灰度环境的数据源。
可选地,所述方法还包括:
若所述请求对象为使用对象,复制所述请求以得到两份相同的请求;
将两份相同的请求分别发送给所述第一数据库和所述第二数据库。
可选地,所述方法还包括:
获取所述第一数据库反馈的第一响应信息,以及获取所述第二数据库反馈的第二响应信息;
根据所述第一响应信息与所述第二响应信息的一致性,确定数据库的灰度验证结果,并将所述第一响应信息发送给使用对象。
另一方面,本发明实施例提供了一种基于数据库的数据处理系统,包括:
第一模块,用于获取请求的身份标识信息,并根据所述身份标识信息确定请求对象;所述请求对象包括使用对象或测试对象;
第二模块,用于根据请求对象确定线程本地变量的应用数据源;所述应用数据源包括第一数据源和第二数据源;
第三模块,用于通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作;所述应用数据库包括第一数据库或第二数据库。
另一方面,本发明实施例提供了一种基于数据库的数据处理装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述的方法。
另一方面,本发明实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行上述的方法。
另一方面,本发明实施例提供了一种基于数据库的数据处理系统,包括计算机设备以及与所述计算机设备连接的第一数据库和第二数据库;其中,
所述第一数据库,用于存储使用对象操作产生的数据;
所述第二数据库,用于存储测试对象操作产生的数据;
所述计算机设备包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述的方法。
实施本发明实施例包括以下有益效果:本实施例提供的基于数据库的数据处理方法,首先,获取请求的身份标识信息,并根据身份标识信息确定请求对象,请求对象包括使用对象或测试对象,根据身份标识信息区分不同的请求对象;然后,根据请求对象确定线程本地变量的应用数据源,将不同请求对象对应不同的应用数据源;然后,通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作,通过应用数据源的数据库标识切换到对应的应用数据库;从而实现一个应用系统同时支持多个数据库,通过身份标识信息将使用对象或测试对象的请求发送到各自对应的数据库中,测试对象的操作在第一数据库,使用对象的操作在第二数据库,测试和使用同时进行,提前对数据库进行模拟迁移和验证,提高数据库的迁移和验证效率,另外,测试和使用互不影响,测试不影响使用的正常运行。
附图说明
图1是本发明实施例提供的一种基于数据库的数据处理系统的结构示意图;
图2是本发明实施例提供的一种基于数据库的数据处理方法的步骤流程示意图;
图3是本发明实施例提供的一种确定请求对象的步骤流程示意图;
图4是本发明实施例提供的一种确定线程本地变量的应用数据源的步骤流程示意图;
图5是本发明实施例提供的一种切换应用数据库的步骤流程示意图;
图6是本发明实施例提供的另一种基于数据库的数据处理方法的步骤流程示意图;
图7是本发明实施例提供的一种请求数据处理的步骤流程示意图;
图8是本发明实施例提供的一种反馈数据处理的步骤流程示意图;
图9是本发明实施例提供的另一种基于数据库的数据处理系统的结构框图;
图10是本发明实施例提供的一种基于数据库的数据处理装置的结构框图;
图11是本发明实施例提供的一种基于数据库的数据处理系统的另一种结构框图;
图12是本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
参照图1,图1为本发明实施例提供的一种实施环境的示意图。参见图1,该实施环境包括服务器101和终端102。
服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。另外,服务器101还可以是区块链网络中的一个节点服务器。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。服务器101中存储有电子管理系统,电子管理系统配套有数据库,电子管理系统可以运行数据的迁移或扩容等操作。
终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端102以及服务器101可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例在此不做限制。
示例性地,基于图1所示的实施环境,本发明实施例提供了一种基于数据库的数据处理方法,下面以该基于数据库的数据处理方法应用于服务器101中为例子进行说明。
如图2所示,本发明实施例提供了一种基于数据库的数据处理方法,包括:
S100、获取请求的身份标识信息,并根据所述身份标识信息确定请求对象;所述请求对象包括使用对象或测试对象。
身份标识信息用于表征身份的标记信息,包括但不限于账号、用户名、IP地址等。请求对象表示发送请求的操作对象,包括但不限于系统应用的使用对象、系统开发调试的测试对象等。使用对象表示向系统发送使用操作的对象,测试对象表示向系统发送测试操作的对象。
具体地,不同请求对象发送的请求中包含各自的身份标识信息。示例性的,根据身份标识信息确定请求对象的过称如下:首先,系统的处理器接收请求对象发送的请求信息,从请求信息中提取请求的身份标识信息,然后,根据身份标识信息确定对应的请求对象。需要说明的是,身份标识信息与请求对象的类别存在对应关系,该对应关系可以预先设置。
可选地,参阅图3,所述身份标识信息包括IP地址,所述获取请求的身份标识信息,并根据所述身份标识信息确定请求对象,具体包括:
S101、通过分布式项目开发框架的拦截功能,获取请求对应的IP地址;
S102、若所述IP地址为预设地址集中的任意一个,将所述请求对象确定为测试对象;
S103、若所述IP地址不属于预设地址集,将所述请求对象确定为使用对象。
需要说明的是,分布式项目开发框架包括但不限于Spring mvc框架,Spring则为一个开放源代码的J2EE(全称为Java 2Platform Enterprise Edition,中文为Java2平台企业版)应用程序框架。
Spring是一个轻量级的AOP(Aspect Oriented Programming,面向切面编程)容器框架,Spring为Java应用程序提供基础性服务的一套框架,目的是用于简化应用程序的开发,它使得开发者只需要关心业务需求。AOP,指扩展功能不修改源代码,将功能代码从业务逻辑代码中分离出来。AOP的主要功能包括:日志记录、性能统计、安全控制、事务处理、异常处理等。Spring中的事务管理是通过AOP代理来实现的,对被代理对象的每个方法进行拦截,在方法执行前启动事务,方法执行完后根据是否有异常和异常的种类进行提交或回滚。如果要在方法执行前或后或抛出异常后加上一个自己的拦截器,或者一个环绕拦截器,在拦截器中执行一些操作,比如执行一些数据库操作,记录一些信息,这些操作通过调用一个服务类的方法来执行,这个方法也在spring事务管理拦截器的管理之下,那么这个记录方法需要在另一个事务中进行,而不是与被拦截方法在同一个事务中,不然如果被拦截方法抛出异常需要回滚时,所作的记录也会被回滚,当然有时候确实需要同时回滚,那就要放在同一个事务中。例如,基于iOS操作系统,可预先在iOS系统进程桌面管理进程(即SpringBoard进程)中注入具有预设的拦截逻辑的动态库代码。iOS系统进程桌面管理进程在初始化过程中即加载了该动态库代码。在iOS系统运行时,即可通过该已加载的注入的动态库代码拦截iOS系统中的系统守护进程发送给处于后台超时运行的应用的挂起指令。
预设地址集指测试对象的IP地址对应的集合,预设地址集根据实际应用预先确定。
示例性的,根据IP地址确定请求对象的过称如下:首先,通过Spring的AOP拦截,获取请求对应的IP地址;然后,在预设地址集中搜索请求对应的IP地址,若在预设地址集中可以搜索到请求对应的IP地址,表明请求对象为测试对象,若在预设地址集中无法搜索到请求对应的IP地址,表明请求对象为使用对象。
S200、根据请求对象确定线程本地变量的应用数据源;所述应用数据源包括第一数据源和第二数据源。
对于线程本地变量(ThreadLocal),同一个线程范围内共享变量,每个线程只能访问自己的线程,不能访问其它的线程。应用数据源表示请求对象的应用数据来源,第一数据源和第二数据源用于表示不同的数据来源。不同请求对象对应的线程本地变量的应用数据源不同,便于将不同请求对象的线程分开,使不同操作对象的操作互不干扰。
可选地,参阅图4,所述根据请求对象确定线程本地变量的应用数据源,具体包括:
S201、若所述请求对象为测试对象,将线程本地变量的应用数据源设置为第二数据源;所述第二数据源为表征灰度环境的数据源;
S202、若所述请求对象为使用对象,将所述线程本地变量的应用数据源设置为第一数据源;所述第一数据源为表征生产环境的数据源。
灰度环境表示预发布环境,为发布前的最后调试;通过灰度环境的测试,可以让测试对象根据测试的结果和反馈来修改系统的一些不足,做到查漏补缺,完善系统的功能,使系统的质量得到提高。灰度环境数据源表示测试对象操作产生的数据源。生产环境表示系统发布后,正式用户使用的应用环境;生产环境数据源表示使用对象操作产生的数据源。
具体地,若请求对象为测试对象,将线程本地变量设置为表征灰度环境数据源的第二数据源;若请求对象为使用对象,将线程本地变量设置为表征生产环境数据源的第一数据源。
S300、通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作;所述应用数据库包括第一数据库或第二数据库。
数据库标识表征数据库的标记信息,每个数据库都有一个对应的数据库标识。应用数据库表示存储请求对象产生的数据的数据库,第一数据库表示存储使用对象产生的数据的数据库,第二数据库表示存储测试对象的产生数据的数据库。
具体地,首先,通过线程本地变量获取应用数据源,并应用数据源确定对应的数据库标识;然后,根据数据库标识切换到对应的应用数据库,并在对应的应用数据库执行请求操作。
可选地,参阅图5,通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作,具体包括:
S301、若线程本地变量的应用数据源为第一数据源,将所述数据库标识确定为第一标识,根据所述第一标识获取所述第一数据库的接口作为第一接口,以执行请求操作;所述第一数据源为表征生产环境的数据源;
S302、若线程本地变量的应用数据源为第二数据源,将所述数据库标识确定为第二标识,根据所述第二标识获取所述第二数据库的接口作为第二接口,以执行请求操作;所述第二数据源为表征灰度环境的数据源。
需要说明的是,第一数据源对应的数据库标识为第一标识,第一标识对应的数据库是第一数据库,第一数据库对应的数据接口为第一接口;第二数据源对应的数据库标识为第二标识,第二标识对应的数据库是第二数据库,第二数据库对应的数据接口为第二接口。
具体地,如果线程本地变量的应用数据源为第一数据源,根据第一数据源将数据库标识设置为第一标识,根据第一标识确定第一数据库,通过第一数据库的第一接口发送请求。若线程本地变量的应用数据源为第二数据源,根据第二数据源将数据库标识设置为第二标识,根据第二标识确定第二数据库,通过第二数据库的第二接口发送请求。
在一个具体的实施例中,参阅图6,在应用系统中配置2套数据源:第一数据源为生产数据源(proddb)、第二数据源为灰度数据源(graydb),在应用系统中基于mybatis实现两套数据库操作的mapper(如一套旧数据库oracle,一套新数据库mysql),两套数据库操作的mapper分别放在2个并列的目录下,让程序启动时同时加载2套mapper。系统的具体运行流程如下:
使用对象或测试对象向应用系统发送请求操作。
应用系统接收请求操作后,基于Spring的AOP拦截,获取请求的来源IP;根据来源IP判断操作对象是使用对象还是测试对象,如果操作对象是测试对象,将线程本地变量TreadLocal设置为graydb,否则,将线程本地变量TreadLocal设置为proddb;通过线程本地变量TreadLocal中获取到数据库标识,如果数据库标识表征生产数据源,获取生产数据源对应的old_mapper执行请求操作到旧数据库oracle,如果数据库标识表征灰度数据源,获取灰度数据源对应的new_mapper执行请求操作新数据库mysql。
实施本发明实施例包括以下有益效果:本实施例提供的基于数据库的数据处理方法,首先,获取请求的身份标识信息,并根据身份标识信息确定请求对象,请求对象包括使用对象或测试对象,根据身份标识信息区分不同的请求对象;然后,根据请求对象确定线程本地变量的应用数据源,将不同请求对象对应不同的应用数据源;然后,通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作,通过应用数据源的数据库标识切换到对应的应用数据库;从而实现一个应用系统同时支持多个数据库,通过身份标识信息将使用对象或测试对象的请求发送到各自对应的数据库中,测试对象的操作在第一数据库,使用对象的操作在第二数据库,测试和使用同时进行,提前对数据库进行模拟迁移和验证,提高数据库的迁移和验证效率,另外,测试和使用互不影响,测试不影响使用的正常运行。
可选地,参阅图7,在数据验证过程中,所述方法还包括:
S400、若所述请求对象为使用对象,复制所述请求以得到两份相同的请求;
S500、将两份相同的请求分别发送给所述第一数据库和所述第二数据库。
需要说明的是,复制采用的具体方法根据实际应用确定,本实施例不做具体限制。例如,使用Nginx的Mirror指令配置指定URL的接口请求,对访问该接口的请求进行复制。
具体地,若请求对象为使用对象,表明该请求会产生实际应用的生产数据,将使用对象的请求复制得到两份相同的请求,然后将两份相同的请求分别发送给生产环境数据源对应的第一数据库和灰度环境数据源对应的第二数据库。第一数据库和第二数据库分别接收并执行请求,并分别将执行请求得到的响应信息反馈给应用系统。
可选地,参阅图8,所述方法还包括:
S600、获取所述第一数据库反馈的第一响应信息,以及获取所述第二数据库反馈的第二响应信息;
S700、根据所述第一响应信息与所述第二响应信息的一致性,确定数据库的灰度验证结果,并将所述第一响应信息发送给使用对象。
第一响应信息表征第一数据库执行请求产生的结果信息,第二响应信息表征第二数据库执行请求产生的结果信息。
应用系统分别接收第一数据库反馈的第一响应信息以及第二数据库反馈的第二响应信息;若第一响应信息与第二响应信息一致,表明迁移后的新旧两个数据库的性能相同;若第一响应信息与第二响应信息不一致,表明移后的新数据库未达到性能要求;应用系统将真实生产环境中的第一响应信息发送给使用对象,将灰度环境中的第二响应信息丢弃,以保证测试验证过程不影响系统的正常运行。
将请求对象的请求转发到生产环境的同时,同样的副本流量也转发到灰度环境,并对生产环境和灰度环境的请求反馈响应信息进行对比,从而对生产环境和灰度环境进行验证,能做到覆盖100%业务,提高数据库迁移和验证的成功率,实现自动化全测试流程,节约人工成本。
在一个具体的实施例中,电子管理系统以业务管理系统为例,业务管理系统运行在服务器,业务管理系统包括数据真实生成环境的第一数据库和灰度环境的第二数据库。功能验证过程如下:
使用对象通过终端向服务器的业务管理系统发送业务订购查询指令;
服务器的业务管理系统接收业务订购查询指令后,将业务订购查询指令复制得到两份相同的指令,并将两份相同的指令分别发送给两个数据库的接口;
两个数据库接收业务订购查询指令后,分别执行业务订购查询指令,并分别将查询结果反馈给业务管理系统;
业务订购系统接收两个反馈结果后,对两个反馈结果进行比较;如果两个反馈结果相同,表明灰度环境的第二数据库与真实生成环境的第一数据库的性能一致;如果两个反馈结果不相同,表明灰度环境的第二数据库与真实生成环境的第一数据库的性能存在差异,有待改进;另外,无论表征灰度环境的第二数据库和表征真实生成环境的第一数据库的反馈结果是否相同,将表征真实生成环境的第一数据库的反馈结果发送给终端。例如,第一数据库反馈的查询结果为:彩铃业务、流量业务和电视业务,第二数据库反馈的查询结果为:彩铃业务电视业务,则将查询结果“彩铃业务、流量业务和电视业务”反馈给终端。
在另一个具体的实施例中,电子管理系统以业务管理系统为例,业务管理系统运行在服务器,业务管理系统包括数据真实生成环境的第一数据库和灰度环境的第二数据库。功能验证过程如下:
使用对象通过终端向服务器的业务管理系统发送业务退订指令;
服务器的业务管理系统接收业务退订指令后,将业务退订指令复制得到两份相同的指令,并将两份相同的指令分别发送给两个数据库的接口;
两个数据库接收业务退订指令后,分别执行业务退订指令,并分别将退订结果反馈给业务管理系统;
业务管理系统接收两个反馈结果后,对两个反馈结果进行比较;如果两个反馈结果相同,表明灰度环境的第二数据库与真实生成环境的第一数据库的性能一致;如果两个反馈结果不相同,表明灰度环境的第二数据库与真实生成环境的第一数据库的性能存在差异,有待改进;另外,无论表征灰度环境的第二数据库和表征真实生成环境的第一数据库的反馈结果是否相同,将表征真实生成环境的第一数据库的反馈结果发送给终端。例如,第一数据库反馈的退订结果为:彩铃退订成功,第二数据库反馈的退订结果为:彩铃退订不成功,则将退订结果“彩铃退订成功”反馈给终端。
如图9所示,本发明实施例提供了一种基于数据库的数据处理系统,包括:
第一模块,用于获取请求的身份标识信息,并根据所述身份标识信息确定请求对象;所述请求对象包括使用对象或测试对象;
第二模块,用于根据请求对象确定线程本地变量的应用数据源;所述应用数据源包括第一数据源和第二数据源;
第三模块,用于通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作;所述应用数据库包括第一数据库或第二数据库。
可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
如图10所示,本发明实施例提供了一种基于数据库的数据处理装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述的方法。
可见,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
此外,本申请实施例还公开了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述的方法。同样地,上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
如图11所示,本发明实施例提供了一种基于数据库的数据处理系统,包括计算机设备以及与所述计算机设备连接的第一数据库和第二数据库;其中,
所述第一数据库,用于存储使用对象操作产生的数据;
所述第二数据库,用于存储测试对象操作产生的数据;
所述计算机设备包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述的方法。
可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
具体地,参阅图12,计算机设备1200可以包括RF(Radio Frequency,射频)电路1210、包括有一个或一个以上计算机可读存储介质的存储器1220、输入单元1230、显示单元1240、传感器1250、音频电路1260、短距离无线传输模块1270、包括有一个或者一个以上处理核心的处理器1280、以及电源12120等部件。本领域技术人员可以理解,图6中示出的设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路1210可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1280处理;另外,将涉及上行的数据发送给基站。通常,RF电路1210包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路1210还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器1220可用于存储软件程序以及模块。处理器1280通过运行存储在存储器1220的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1220可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据设备1200的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1220还可以包括存储器控制器,以提供处理器1280和输入单元1230对存储器1220的访问。虽然图6示出了RF电路1210,但是可以理解的是,其并不属于设备1200的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
输入单元1230可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1230可包括触敏表面1231以及其他输入设备1232。触敏表面1231,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1231上或在触敏表面1231附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1231可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1280,并能接收处理器1280发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1231。除了触敏表面1231,输入单元1230还可以包括其他输入设备1232。具体地,其他输入设备1232可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1240可用于显示由用户输入的信息或提供给用户的信息以及控制1200的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1240可包括显示面板1241,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1241。进一步的,触敏表面1231可覆盖在显示面板1241之上,当触敏表面1231检测到在其上或附近的触摸操作后,传送给处理器1280以确定触摸事件的类型,随后处理器1280根据触摸事件的类型在显示面板1241上提供相应的视觉输出。虽然在图6中,触敏表面1231与显示面板1241是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面1231与显示面板1241集成而实现输入和输出功能。
计算机设备1200还可包括至少一种传感器1250,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1241的亮度,接近传感器可在设备1200移动到耳边时,关闭显示面板1241和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于设备1200还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1260、扬声器1261,传声器1262可提供用户与设备1200之间的音频接口。音频电路1260可将接收到的音频数据转换后的电信号,传输到扬声器1261,由扬声器1261转换为声音信号输出;另一方面,传声器1262将收集的声音信号转换为电信号,由音频电路1260接收后转换为音频数据,再将音频数据输出处理器1280处理后,经RF电路1210以发送给另一控制设备,或者将音频数据输出至存储器1220以便进一步处理。音频电路1260还可能包括耳塞插孔,以提供外设耳机与设备1200的通信。
短距离无线传输模块1270可以是WIFI(wireless fidelity,无线保真)模块、蓝牙模块或红外线模块等。设备1200通过短距离无线传输模块1270可以与对战设备上设置的无线传输模块进行信息的传输。
处理器1280是设备1200的控制中心,利用各种接口和线路连接整个控制设备的各个部分,通过运行或执行存储在存储器1220内的软件程序和/或模块,以及调用存储在存储器1220内的数据,执行设备1200的各种功能和处理数据,从而对控制设备进行整体监控。可选的,处理器1280可包括一个或多个处理核心;可选的,处理器1280可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1250中。
设备1200还包括给各个部件供电的电源12120(比如电池),优选的,电源可以通过电源管理系统与处理器1280逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源12120还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,设备1200还可以包括摄像头、蓝牙模块等,在此不再赘述。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于上述方法实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种基于数据库的数据处理方法,其特征在于,包括:
获取请求的身份标识信息,并根据所述身份标识信息确定请求对象;所述请求对象包括使用对象或测试对象;
根据请求对象确定线程本地变量的应用数据源;所述应用数据源包括第一数据源和第二数据源;
通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作;所述应用数据库包括第一数据库或第二数据库。
2.根据权利要求1所述的方法,其特征在于,所述身份标识信息包括IP地址,所述获取请求的身份标识信息,并根据所述身份标识信息确定请求对象,具体包括:
通过分布式项目开发框架的拦截功能,获取请求对应的IP地址;
若所述IP地址为预设地址集中的任意一个,将所述请求对象确定为测试对象;
若所述IP地址不属于预设地址集,将所述请求对象确定为使用对象。
3.根据权利要求1所述的方法,其特征在于,所述根据请求对象确定线程本地变量的应用数据源,具体包括:
若所述请求对象为测试对象,将线程本地变量的应用数据源设置为第二数据源;所述第二数据源为表征灰度环境的数据源;
若所述请求对象为使用对象,将所述线程本地变量的应用数据源设置为第一数据源;所述第一数据源为表征生产环境的数据源。
4.根据权利要求1所述的方法,其特征在于,所述通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作,具体包括:
若线程本地变量的应用数据源为第一数据源,将所述数据库标识确定为第一标识,根据所述第一标识获取所述第一数据库的接口作为第一接口,以执行请求操作;所述第一数据源为表征生产环境的数据源;
若线程本地变量的应用数据源为第二数据源,将所述数据库标识确定为第二标识,根据所述第二标识获取所述第二数据库的接口作为第二接口,以执行请求操作;所述第二数据源为表征灰度环境的数据源。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
若所述请求对象为使用对象,复制所述请求以得到两份相同的请求;
将两份相同的请求分别发送给所述第一数据库和所述第二数据库。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述第一数据库反馈的第一响应信息,以及获取所述第二数据库反馈的第二响应信息;
根据所述第一响应信息与所述第二响应信息的一致性,确定数据库的灰度验证结果,并将所述第一响应信息发送给使用对象。
7.一种基于数据库的数据处理系统,其特征在于,包括:
第一模块,用于获取请求的身份标识信息,并根据所述身份标识信息确定请求对象;所述请求对象包括使用对象或测试对象;
第二模块,用于根据请求对象确定线程本地变量的应用数据源;所述应用数据源包括第一数据源和第二数据源;
第三模块,用于通过线程本地变量获取所述应用数据源对应的数据库标识,并根据所述数据库标识切换到对应的应用数据库以执行请求操作;所述应用数据库包括第一数据库或第二数据库。
8.一种基于数据库的数据处理装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-6任一项所述的方法。
9.一种存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于执行如权利要求1-6任一项所述的方法。
10.一种基于数据库的数据处理系统,其特征在于,包括计算机设备以及与所述计算机设备连接的第一数据库和第二数据库;其中,
所述第一数据库,用于存储使用对象操作产生的数据;
所述第二数据库,用于存储测试对象操作产生的数据;
所述计算机设备包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310525412.6A CN116578546A (zh) | 2023-05-11 | 2023-05-11 | 一种基于数据库的数据处理方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310525412.6A CN116578546A (zh) | 2023-05-11 | 2023-05-11 | 一种基于数据库的数据处理方法、系统、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116578546A true CN116578546A (zh) | 2023-08-11 |
Family
ID=87535276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310525412.6A Pending CN116578546A (zh) | 2023-05-11 | 2023-05-11 | 一种基于数据库的数据处理方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116578546A (zh) |
-
2023
- 2023-05-11 CN CN202310525412.6A patent/CN116578546A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105471931B (zh) | 一种查询业务数据的方法、装置和系统 | |
CN105630685A (zh) | 程序接口测试方法及装置 | |
CN107204964B (zh) | 一种权限管理的方法、装置和系统 | |
WO2015035947A1 (zh) | 一种实现无卡手机的方法、手机和服务器 | |
CN108874653B (zh) | 任务测试方法、测试机、共享服务器和可读存储介质 | |
US9928134B2 (en) | Method and apparatus for repairing dynamic link library file | |
CN116881143A (zh) | 一种数据对象复制异常排查方法、装置、设备及存储介质 | |
CN111359210A (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN103309677A (zh) | 内置资源管理方法、装置及终端 | |
CN115632942A (zh) | 联机接口配置方法、系统、计算机设备及可读存储介质 | |
CN116578546A (zh) | 一种基于数据库的数据处理方法、系统、装置及存储介质 | |
CN113961380B (zh) | 一种跨应用修复的方法、装置、设备及存储介质 | |
CN110753909A (zh) | 服务调度方法和装置、计算机设备、计算机可读存储介质 | |
CN116450597A (zh) | 一种日志的管理方法以及相关装置 | |
CN106294025B (zh) | 一种终端软体的下载方法和装置 | |
CN112732548A (zh) | 一种接口测试方法以及装置 | |
CN114189436B (zh) | 一种多集群配置部署方法、装置、电子设备和存储介质 | |
CN115883352B (zh) | 服务节点创建方法、相关设备及存储介质 | |
CN113254090B (zh) | 一种应用管理方法、装置及投影设备 | |
CN115640081A (zh) | 一种业务案件决策方法、装置、电子设备和存储介质 | |
CN116450598A (zh) | 一种资源数据处理方法、装置、电子设备及存储介质 | |
CN116521308A (zh) | 目标对象刷新方法、装置、介质及设备 | |
CN115934493A (zh) | 一种内存泄漏的检测方法、相关装置及设备 | |
CN117149619A (zh) | 文件的自动化测试方法、装置、电子设备及存储介质 | |
CN118113709A (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 |