CN115408370B - 数据库迁移评估方法和系统、计算机设备、存储介质 - Google Patents
数据库迁移评估方法和系统、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN115408370B CN115408370B CN202211314714.0A CN202211314714A CN115408370B CN 115408370 B CN115408370 B CN 115408370B CN 202211314714 A CN202211314714 A CN 202211314714A CN 115408370 B CN115408370 B CN 115408370B
- Authority
- CN
- China
- Prior art keywords
- statement
- target
- query statement
- executed
- 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.)
- Active
Links
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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/242—Query formulation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据库迁移评估方法和系统、计算机设备、存储介质,属于计算机技术领域。该方法包括:采集模块从源数据库中获取源查询语句;对源查询语句进行语句去重处理得到待执行查询语句;评估模块从采集模块中获取待执行查询语句;获取目标数据库对待执行查询语句处理的第一执行结果;根据第一执行结果确定待执行查询语句的兼容结果;根据兼容结果和待执行查询语句得到兼容性评估报告;将兼容结果表示兼容的待执行查询语句作为目标查询语句,并获取目标数据库对目标查询语句处理的第二执行结果;根据第二执行结果和目标查询语句的预设执行结果得到性能评估报告。本申请实施例能够准确高效地实现对数据库的迁移评估。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据库迁移评估方法和系统、计算机设备、存储介质。
背景技术
数据库的迁移需要对源数据库中的结构化查询语言(Structured QueryLanguage,SQL)语句进行评估,以根据评估结果使其中需要运行的各类SQL语句都能满足在目标数据库环境中的稳定运行。然而,现有的数据库迁移评估方法生成的对数据库迁移过程中的SQL评估信息并不完整,从而影响后续的数据库迁移。因此,如何提出一种能够准确高效地实现对数据库的迁移评估,成为了亟待解决的技术问题。
发明内容
本申请实施例的主要目的在于提出了一种数据库迁移评估方法和系统、计算机设备、存储介质,能够准确高效地实现对数据库的迁移评估。
为实现上述目的,本申请实施例的第一方面提出了一种数据库迁移评估方法,所述方法包括:
采集模块响应于预设数据采集信号,从源数据库中获取源查询语句;
所述采集模块对所述源查询语句进行语句去重处理,得到待执行查询语句;
评估模块响应于预设评估信号,从所述采集模块中获取所述待执行查询语句;
所述评估模块将所述待执行查询语句发送给目标数据库,并获取所述目标数据库对所述待执行查询语句进行执行处理得到的第一执行结果;
所述评估模块根据所述第一执行结果确定所述待执行查询语句的兼容结果;
所述评估模块根据所述兼容结果和所述待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告;
所述评估模块将所述兼容结果表示兼容的所述待执行查询语句作为目标查询语句,将所述目标查询语句发送给所述目标数据库,并获取所述目标数据库对所述目标查询语句进行执行处理得到的第二执行结果;
所述评估模块根据所述第二执行结果和所述目标查询语句的预设执行结果对预设第二模板进行填充处理,得到性能评估报告。
在一些实施例中,所述采集模块响应于预设数据采集信号,从源数据库中获取源查询语句,包括:
所述采集模块获取所述源数据库的历史采集截止信息,所述历史采集截止信息用于表征所述采集模块在前一次响应所述预设数据采集信号时在所述源数据库进行数据采集的截止位置信息;
所述采集模块根据当前所述预设数据采集信号和所述历史采集截止信息对所述源数据库进行数据采集,获取所述源查询语句和当前采集截止信息,并将所述当前采集截止信息更新所述历史采集截止信息。
在一些实施例中,所述采集模块对所述源查询语句进行语句去重处理,得到待执行查询语句,包括:
所述采集模块对所述源查询语句进行字面量移除,得到第一处理语句;
所述采集模块对所述第一处理语句进行注释移除,得到第二处理语句;
所述采集模块对所述第二处理语句进行空字符合并,得到第三处理语句;
所述采集模块对所述第三处理语句进行语句去重,得到待执行查询语句。
在一些实施例中,所述评估模块将所述待执行查询语句发送给目标数据库,并获取所述目标数据库对所述待执行查询语句进行执行处理得到的第一执行结果,包括:
所述评估模块将所述待执行查询语句发送给目标数据库,并向所述目标数据库发送执行处理信号;
所述目标数据库响应于所述执行处理信号,从所述采集模块中获取所述待执行查询语句的数据对象信息;
所述目标数据库根据所述数据对象信息设置执行配置信息;
所述目标数据库根据所述执行配置信息对所述待执行查询语句进行执行处理,得到第一执行结果,并将所述第一执行结果发送至所述评估模块。
在一些实施例中,所述评估模块根据所述第一执行结果确定所述待执行查询语句的兼容结果,包括:
若所述第一执行结果为执行成功,所述评估模块确定待执行查询语句的兼容结果为兼容;
若所述第一执行结果为执行失败,所述评估模块确定待执行查询语句的兼容结果为不兼容。
在一些实施例中,在所述评估模块根据所述第一执行结果确定所述待执行查询语句的兼容结果之后,所述方法还包括:
若所述待执行查询语句兼容结果为不兼容,所述评估模块对所述待执行查询语句进行字面量移除,得到第一改写语句;
所述评估模块对所述第一改写语句进行注释移除,得到第二改写语句;
所述评估模块根据预设置的改写规则库对所述第二改写语句进行语句改写,得到第三改写语句;
所述评估模块对所述第三改写语句进行规范化还原处理,得到目标改写语句;
所述评估模块将所述目标改写语句发送给所述目标数据库,并获取所述目标数据库对所述目标查询语句进行执行处理得到的第三执行结果;
若所述第三执行结果为执行成功,所述评估模块确定所述目标改写语句的兼容结果为兼容。
在一些实施例中,所述评估模块将所述兼容结果表示兼容的所述待执行查询语句作为目标查询语句,将所述目标查询语句发送给所述目标数据库,并获取所述目标数据库对所述目标查询语句进行执行处理得到的第二执行结果,包括:
所述评估模块获取所述源数据库的绑定变量数据,将所述兼容结果表示兼容的所述待执行查询语句作为目标查询语句,并将所述绑定变量数据、所述目标查询语句和执行处理信号发送给所述目标数据库;
所述目标数据库响应于所述执行处理信号,根据所述绑定变量数据对所述目标查询语句进行执行处理,得到第二执行结果,并将所述第二执行结果发送至所述评估模块。
为实现上述目的,本申请实施例的第二方面提出了一种数据库迁移评估系统,所述系统包括:
采集模块,所述采集模块用于响应于预设数据采集信号,从源数据库中获取源查询语句;对所述源查询语句进行语句去重处理,得到待执行查询语句;
评估模块,所述评估模块用于响应于预设评估信号,从所述采集模块中获取所述待执行查询语句;将所述待执行查询语句发送给目标数据库,并获取所述目标数据库对所述待执行查询语句进行执行处理得到的第一执行结果;根据所述第一执行结果确定所述待执行查询语句的兼容结果;根据所述兼容结果和所述待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告;将所述兼容结果表示兼容的所述待执行查询语句作为目标查询语句,将所述目标查询语句发送给所述目标数据库,并获取所述目标数据库对所述目标查询语句进行执行处理得到的第二执行结果;根据所述第二执行结果和所述目标查询语句的预设执行结果对预设第二模板进行填充处理,得到性能评估报告。
为实现上述目的,本申请实施例的第三方面提出了一种计算机设备,包括:
至少一个存储器;
至少一个处理器;
至少一个计算机程序;
所述至少一个计算机程序被存储在所述至少一个存储器中,所述至少一个处理器执行所述至少一个计算机程序以实现上述第一方面所述的数据库迁移评估方法。
为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使计算机执行上述第一方面所述的数据库迁移评估方法。
本申请实施例提出的一种数据库迁移评估方法和系统、计算机设备、存储介质,通过采集模块响应于预设数据采集信号,从源数据库中获取源查询语句,并对源查询语句进行语句去重处理,得到待执行查询语句。评估模块响应于预设评估信号,从采集模块中获取待执行查询语句。然后将待执行查询语句发送给目标数据库,并获取目标数据库对待执行查询语句进行执行处理得到的第一执行结果。评估模块根据第一执行结果确定待执行查询语句的兼容结果,并根据该兼容结果和待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告。之后,将兼容结果表示兼容的待执行查询语句作为目标查询语句,将目标查询语句发送给目标数据库,并获取目标数据库对目标查询语句进行执行处理得到的第二执行结果。最后,根据第二执行结果和目标查询语句的预设执行结果对预设第二模板进行填充处理,得到性能评估报告。本申请实施例能够准确高效地实现对数据库的迁移评估。
附图说明
图1是本申请实施例提供的数据库迁移评估方法的第一流程图;
图2是图1中的步骤S110的流程图;
图3是图1中的步骤S120的流程图;
图4是图1中的步骤S140的流程图;
图5是本申请实施例提供的数据库迁移评估方法的第二流程图;
图6是图1中的步骤S170的流程图;
图7是本申请实施例提供的数据库迁移评估系统的结构示意图;
图8是本申请实施例提供的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
结构化查询语言(Structured Query Language,SQL):是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
目前,企业内部数据库种类越来越多,也就随之带来各种异构数据库之间的迁移需求。数据库系统的迁移,不仅仅涉及到数据库数据本身的迁移,还包括将连接至源数据库的应用系统迁移到目标数据库环境中。应用系统一般都是使用SQL语句与数据库进行交互通讯。所以在正式迁移之前,往往都无可避免的需要对源数据库中的SQL语句进行评估,以根据评估结果使其中需要运行的各类SQL语句都能满足在目标数据库环境中的稳定运行。
SQL评估根据其最终目的的不同,又可以分为两类:(1)兼容性评估:主要是评估解决SQL能否执行的问题,即SQL语法在目标数据库中能否执行,不兼容的SQL会引起应用系统的部分功能运行异常,从而在迁移后会报错;(2)性能评估:要是评估解决SQL执行的效率的问题,在兼容性满足的前提下,评估在同等数据量与相似硬件条件下,SQL在目标数据库中的执行性能是否会出现下降,性能下降的SQL在迁移后不会导致应用系统的功能异常,从而导致其执行效率降低。
然而,现有的数据库迁移评估方法多采用一次性采集分析的方案,即仅通过连接到源数据库执行SQL采集,然后执行分析,最后输出报告。但实际上数据库迁移是一个系统性工程,通常都需要经过长期的改造适配,在此期间源库和目标库的SQL运行环境可能随时都会发生变化。而且由于大部分业务流程都有一定的周期性,一次性的SQL采集通常无法采集到整个业务流程中的所有SQL,存在较大的漏采的可能性。同时,现有的数据库迁移评估方法中缺少对不兼容SQL的改写流程,且针对不兼容的SQL,需要人工来分类处理和改写,从而导致工作量巨大。除此之外,现有的数据库迁移评估方法中未涉及关于SQL性能方面的评估,但实际上数据库迁移后,SQL性能变化也是迁移成功与否的一个重要考虑方面。
综上,现有的数据库迁移评估方法生成的对数据库迁移过程中的SQL评估信息并不完整,从而影响后续的数据库迁移。因此,如何提出一种能够准确高效地实现对数据库的迁移评估,成为了亟待解决的技术问题。
基于此,本申请实施例提供了一种数据库迁移评估方法和系统、计算机设备、存储介质,能够准确高效地实现对数据库的迁移评估。
本申请实施例提供的数据库迁移评估方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现数据库迁移评估方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络个人计算机(Personal Computer,PC)、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
请参阅图1,图1是本申请实施例提供的数据库迁移评估方法的一个可选的流程图,图1中的方法可以具体包括但不限于步骤S110至步骤S180,下面结合图1对这八个步骤进行详细介绍。
步骤S110,采集模块响应于预设数据采集信号,从源数据库中获取源查询语句;
步骤S120,采集模块对源查询语句进行语句去重处理,得到待执行查询语句;
步骤S130,评估模块响应于预设评估信号,从采集模块中获取待执行查询语句;
步骤S140,评估模块将待执行查询语句发送给目标数据库,并获取目标数据库对待执行查询语句进行执行处理得到的第一执行结果;
步骤S150,评估模块根据第一执行结果确定待执行查询语句的兼容结果;
步骤S160,评估模块根据兼容结果和待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告;
步骤S170,评估模块将兼容结果表示兼容的待执行查询语句作为目标查询语句,将目标查询语句发送给目标数据库,并获取目标数据库对目标查询语句进行执行处理得到的第二执行结果;
步骤S180,评估模块根据第二执行结果和目标查询语句的预设执行结果对预设第二模板进行填充处理,得到性能评估报告。
在一些实施例的步骤S110中,客户端设备或服务端设备向采集模块发送预设数据采集信号,该预设数据采集信号用于启动采集模块对源数据库进行数据采集。采集模块接收到预设数据采集信号,通过响应于预设数据采集信号,从源数据库中获取源查询语句。具体地,采集模块将获取到的多个源查询语句存储到资料库中。
需要说明的是,采集模块可以通过编写网络爬虫或者脚本程序,进行有目标性地向源数据库进行数据捕获。
需要说明的是,采集模块在从源数据库中获取源查询语句的同时,获取该源查询语句对应的数据对象信息,该数据对象信息用于表征源查询语句的数据来源类型信息。
需要说明的是,进行数据库迁移的源数据库可以为不同类型的数据库,如Oracle、MySQL、DB2、PostagreSQL等,但每次进行的数据库迁移只针对一个源数据库,通过访问源数据库中的数据字典,例如:Oracle中的gv$sqlarea性能视图,以获取到需要进行评估的源查询语句。
需要说明的是,采集模块、评估模块、源数据库和目标数据的连接关系并不作具体限定。
本申请实施例采用直连源数据库的方法,持续性地执行采集、规范化、去重流程,因此,即使单次采集存在漏采的可能,但时间拉长,采集的源查询语句也会越来越丰富,更能贴近真实的全量业务SQL规模。
请参阅图2,图2是本申请实施例提供的步骤S110的一个可选的流程图,在本申请的一些实施例中,步骤S110具体可以包括但不限于步骤S210至步骤S220,下面结合图2对这两个步骤进行详细介绍。
步骤S210,采集模块获取源数据库的历史采集截止信息,历史采集截止信息用于表征采集模块在前一次响应预设数据采集信号时在源数据库进行数据采集的截止位置信息;
步骤S220,采集模块根据当前预设数据采集信号和历史采集截止信息对源数据库进行数据采集,获取源查询语句和当前采集截止信息,并将当前采集截止信息更新历史采集截止信息。
在一些实施例的步骤S210中,为了避免重复的数据采集,减小每次进行数据采集的数据量,采集模块接收预设数据采集信号后,先获取源数据库的历史采集截止信息,该历史采集截止信息用于表征采集模块在前一次响应预设数据采集信号时在源数据库进行数据采集的截止位置信息。
需要说明的是,历史采集截止信息可以为前一次响应预设数据采集信号时,在源数据库进行数据采集的最后一条源查询语句的活跃时间或最后采集的最大时间。具体地,采集模块进行数据采集时,会记录每条源查询语句的时间簇,从而确定历史采集截止信息。
在一些实施例的步骤S220中,采集模块通过响应该预设数据采集信号,根据历史采集截止信息对当前批次的源数据库进行数据采集,以获取源查询语句和当前采集截止信息,并将当前采集截止信息更新为历史采集截止信息,以便于下一次的数据采集。本申请实施例通过记录当前批次源查询语句的最后活跃或采集时间,在下一次采集时,能够根据最后活跃时间与采集时间,做对应时间后的增量数据采集,以便减小每次采集的数据量,提高数据采集的效率。
在一些实施例的步骤S120中,为了避免源查询语句中重复类型语句或无效信息对数据迁移评估效率的影响,采集模块获取到源查询语句后,需要对源查询语句进行语句去重处理,从而提高对数据库的迁移评估的效率。
请参阅图3,图3是本申请实施例提供的步骤S120的一个可选的流程图,在本申请的一些实施例中,步骤S120具体可以包括但不限于步骤S310至步骤S340,下面结合图3对这四个步骤进行详细介绍。
步骤S310,采集模块对源查询语句进行字面量移除,得到第一处理语句;
步骤S320,采集模块对第一处理语句进行注释移除,得到第二处理语句;
步骤S330,采集模块对第二处理语句进行空字符合并,得到第三处理语句;
步骤S340,采集模块对第三处理语句进行语句去重,得到待执行查询语句。
在一些实施例的步骤S310至步骤S330中,为了避免源查询语句中重复类型语句或无效信息对数据迁移评估效率的影响,采集模块首先对源查询语句进行规范化处理,该规范化处理包括字面量移除、注释移除、空字符合并等操作。具体地,采集模块首先对源查询语句进行字面量移除,得到第一处理语句,以消除源查询语句中的变量值,从而便于判断SQL语句的处理过程是否相同。然后,采集模块对第一处理语句进行注释移除,得到第二处理语句,以剔除对数据迁移评估没有作用的多行注释或单行注释。之后,采集模块对第二处理语句进行空字符合并,得到第三处理语句,以避免对无效空字符的判断导致对评估效率的影响。
需要说明的是,字面量移除是消除源查询语句中的变量值,从而便于判断SQL语句的处理过程是否相同。例如,对于同一条SQL采用不同的变量值进行多次执行的实际处理过程是相同的,如,获取的两个源查询语句分别为“select * from t where name = 'a'”和“select * from t where name = 'b'”,这两条语句的区别就是变量的不同,但实际的处理过程相同,则规范化处理后统一处理成:“select * from t where name = '@1@'”,以提高数据库迁移评估的效率。
需要说明的是,对每条源查询语句进行规范化处理得到第三处理语句后,对第三处理语句进行特征值计算,如利用MD5信息摘要算法进行特征值计算,以得到每条源查询语句的唯一标识sql_hash。
在一些实施例的步骤S340中,采集模块对规范化处理后的第三处理语句进行语句去重,得到待执行查询语句。具体地,采集模块根据第三处理语句计算得到的唯一标识sql_hash进行字符比较,当两条第三处理语句对应的唯一标识sql_hash相同,则保留最先采集的第三处理语句,丢弃后面唯一标识sql_hash相同的语句。本申请会将去重后的待执行查询语句的原始的源查询语句和对应的唯一标识sql_hash共同存储到采集模块的资料库中。
需要说明的是,本申请提供的采集模块可以实时对采集的源查询语句进行语句去重,遇到重复的源查询语句直接丢弃,遇到新采集源查询语句实时进行记录并分析。
本申请实施例通过实时对采集的源查询语句进行语句去重处理,能够减少源数据库中采集结果的数据量大小,同时避免数据库迁移评估大量同类SQL的重复分析。
在一些实施例的步骤S130中,当需要对源数据库中的数据进行评估时,客户端或服务端向评估模块发送预设评估信号,评估模块响应于该预设评估信号,从采集模块中获取待执行查询语句。具体地,评估模块从采集模块的资料库中调用进行评估的待执行查询语句。
在一些实施例的步骤S140中,为了评估源数据库的应用系统是否能够正确迁移到目标数据库环境中,需要对源数据库中的语句在目标数据库中进行模拟执行,即评估模块将待执行查询语句发送给目标数据库,并获取目标数据库对待执行查询语句进行执行处理得到的第一执行结果。
请参阅图4,图4是本申请实施例提供的步骤S140的一个可选的流程图,在本申请的一些实施例中,步骤S140具体可以包括但不限于步骤S410至步骤S440,下面结合图4对这四个步骤进行详细介绍。
步骤S410,评估模块将待执行查询语句发送给目标数据库,并向目标数据库发送执行处理信号;
步骤S420,目标数据库响应于执行处理信号,从采集模块中获取待执行查询语句的数据对象信息;
步骤S430,目标数据库根据数据对象信息设置执行配置信息;
步骤S440,目标数据库根据执行配置信息对待执行查询语句进行执行处理,得到第一执行结果,并将第一执行结果发送至评估模块。
在一些实施例的步骤S410中,为了评估源数据库的应用系统是否能够正确迁移到目标数据库环境中,评估模块将待执行查询语句发送给目标数据库,并向目标数据库发送执行处理信号,该执行处理信号用于表示让目标数据库对源数据库中的语句进行模拟执行。
在一些实施例的步骤S420中,目标数据库响应于接收的执行处理信号,从采集模块中获取待执行查询语句的数据对象信息,该数据对象信息用于表征源查询语句的数据来源类型信息。
在一些实施例的步骤S430中,对于不同源数据库获取的待执行查询语句,其对应的数据获取方式并不同,则需要目标数据库根据数据对象信息设置执行配置信息,该执行配置信息用于表示需要设置的搜索路径,将所有的数据对象信息设置到搜索路径中,根据搜索路径依次找表,从而确保能够根据待执行查询语句找到对应的数据表。
在一些实施例的步骤S440中,目标数据库根据执行配置信息对待执行查询语句进行执行处理。具体地,对目标数据库设置好执行配置信息后,目标数据库根据待执行查询语句从各自的命名空间中找对应的数据表,得到第一执行结果,并将第一执行结果发送至评估模块。本申请实施例通过对待执行查询语句进行模拟执行处理,能够准确地判断该待执行查询语句的兼容性。
在一些实施例的步骤S150中,步骤S150具体包括以下任一种情况:
若第一执行结果为执行成功,评估模块确定待执行查询语句的兼容结果为兼容;
若第一执行结果为执行失败,评估模块确定待执行查询语句的兼容结果为不兼容。
具体地,在模拟执行过程中,若第一执行结果为执行成功,即模拟执行成功,如待执行查询语句在迁移后不会导致应用系统的功能异常,则评估模块可以确定待执行查询语句的兼容结果为兼容,兼容表示该语句可以正确地从源数据库迁移到目标数据库。若第一执行结果为执行失败,即模拟执行失败,如待执行查询语句会引起应用系统的部分功能运行异常,从而在迁移后会报错,则评估模块确定待执行查询语句的兼容结果为不兼容,不兼容表示该语句不能正确地从源数据库迁移到目标数据库。
请参阅图5,图5是本申请实施例提供的数据库迁移评估方法的另一个可选的流程图,在一些实施例中,在步骤S150之后,本申请提供的数据库迁移评估方法具体还可以包括但不限于步骤S510至步骤S560,下面结合图5对这六个步骤进行详细介绍。
步骤S510,若待执行查询语句兼容结果为不兼容,评估模块对待执行查询语句进行字面量移除,得到第一改写语句;
步骤S520,评估模块对第一改写语句进行注释移除,得到第二改写语句;
步骤S530,评估模块根据预设置的改写规则库对第二改写语句进行语句改写,得到第三改写语句;
步骤S540,评估模块对第三改写语句进行规范化还原处理,得到目标改写语句;
步骤S550,评估模块将目标改写语句发送给目标数据库,并获取目标数据库对目标查询语句进行执行处理得到的第三执行结果;
步骤S560,若第三执行结果为执行成功,评估模块确定目标改写语句的兼容结果为兼容。
在一些实施例的步骤S510和步骤S520中,为了实现对不兼容的待执行查询语句的自动化改写,以更高效地满足目标数据库的运行要求。具体地,若待执行查询语句兼容结果为不兼容,为了消除待执行查询语句中部分SQL元素对预设改写规则的影响,评估模块通过调用改写模块进行改写操作。首先,对待执行查询语句进行规范化处理,即改写操作对待执行查询语句进行字面量移除,得到第一改写语句。字面量移除操作可参考上述步骤S310中的说明,在此不再赘述。之后,改写模块对第一改写语句进行注释移除,得到第二改写语句,注释移除操作可参考上述步骤S320中的说明,在此不再赘述。
在一些实施例的步骤S530中,为了使不兼容的待执行查询语句能够兼容到目标数据库,评估模块根据预设置的改写规则库对第二改写语句进行语句改写,得到第三改写语句。需要说明的是,该改写规则库中包括多个从源数据库到目标数据库的语法改写规则,根据改写规则库中的多个语法改写规则对规划化处理后的第二改写语句进行语句改写,得到第三改写语句。
在一些实施例的步骤S540中,评估模块对第三改写语句进行规范化还原处理,即在对不兼容的待执行查询语句改写完成后,根据对待执行查询语句的字面量移除、注释移除等规范化操作,对改写后的第三改写语句进行注释、字面量等元素的还原,以得到目标改写语句。
在一些实施例的步骤S550中,对不兼容的待执行查询语句改写并还原后,评估模块将目标改写语句发送给目标数据库,以通过目标数据库对改写后的目标改写语句再次进行模拟操作,重新判断该语句的兼容性,即评估模块获取到目标数据库对目标查询语句进行执行处理得到的第三执行结果。
在一些实施例的步骤S560中,若第三执行结果为执行成功,评估模块确定目标改写语句的兼容结果为兼容。具体地,在模拟执行过程中,若第三执行结果为执行成功,表示模拟执行成功,如目标改写语句在迁移后不会导致应用系统的功能异常,则评估模块可以确定改写后的目标改写语句的兼容结果为兼容,即表示改写后的目标改写语句可以从源数据库迁移到目标数据库。
需要说明的是,若第三执行结果为执行失败,即模拟执行失败,如目标改写语句会引起应用系统的部分功能运行异常,从而在迁移后会报错,则评估模块确定目标改写语句的兼容结果为不兼容,则说明当前的目标改写语句为目标数据库不支持的类别。
在一些实施例的步骤S160中,为了实现对源数据库到目标数据库的迁移过程的兼容性分析,评估模块根据兼容结果和待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告。本申请实施例通过将兼容结果和待执行查询语句进行结构化的汇总,即将其填充至预设的第一模板,便于直观地获得数据分析信息。
需要说明的是,第一模板可以为超文本标记语言(Hyper Text Markup Language,HTML)汇总模板、Excel汇总模板等形式对分析结果进行展示,HTML汇总模板可以用于统计包括兼容查询语句的分类汇总、不兼容查询语句的分类汇总、各应用的查询语句支持度汇总等;Excel汇总模板可以用于统计包括SQL兼容性数据、针对不兼容SQL的改写方案以及改写列表、不兼容SQL的异常汇总等。
在一些实施例的步骤S170中,由于对SQL性能方面的评估也是迁移成功与否的一个重要考虑方面,为了更完整得实现对数据库的迁移评估,评估模块将兼容结果表示兼容的待执行查询语句作为目标查询语句,将目标查询语句发送给目标数据库,并获取目标数据库对目标查询语句进行执行处理得到的第二执行结果。
需要说明的是,目标查询语句包括兼容的待执行查询语句和兼容的目标改写语句。
请参阅图6,图6是本申请实施例提供的步骤S170的一个可选的流程图,在一些实施例中,步骤S170具体可以包括但不限于步骤S610至步骤S620,下面结合图6对这两个步骤进行详细介绍。
步骤S610,评估模块获取源数据库的绑定变量数据,将兼容结果表示兼容的待执行查询语句作为目标查询语句,并将绑定变量数据、目标查询语句和执行处理信号发送给目标数据库;
步骤S620,目标数据库响应于执行处理信号,根据绑定变量数据对目标查询语句进行执行处理,得到第二执行结果,并将第二执行结果发送至评估模块。
在一些实施例的步骤S610中,评估模块获取源数据库的绑定变量数据,即对兼容的源查询语句,对该源查询语句进行数据解析,得到绑定变量数据。将兼容结果表示兼容的待执行查询语句作为目标查询语句,并将绑定变量数据、目标查询语句和执行处理信号发送给目标数据库,以将绑定变量数据带入具体的目标查询语句对应的事务进行真实语句执行。
需要说明的是,绑定变量数据指的是在源数据库中真实执行时候的变量值,将绑定变量数据带入具体的目标查询语句得到真实执行语句,例如目标查询语句可能为“select * from t where name=:b1”,则这个查询语句是不能直接执行的,因为“:b1”是个绑定变量,相当于一个占位符,在性能评估的时候,需要将其替换为捕获到的绑定变量数据,即替换后的真实执行语句可以为“select * from t where name='hongye'”。
在一些实施例的步骤S620中,目标数据库响应于执行处理信号,根据绑定变量数据对目标查询语句进行执行处理,具体地,目标数据库启动事务,根据将绑定变量数据放入目标查询语句进行真实执行处理,得到第二执行结果,该第二执行结果包括目标执行计划、目标执行时间和目标执行效率等。目标数据库将该第二执行结果发送至评估模块。
需要说明的是,评估模块从目标数据库中获取到目标执行计划后,会对该目标执行计划进行执行计划步骤分析,以识别执行计划中的性能异常步骤,并在报告结果中进行特殊标识展示。需要说明的是,特殊标识展示指的是在性能评估报告中,会对分析中发现的执行计划性能异常的步骤,用特殊的颜色标识出来,并根据发现的问题不同,采用不同的颜色标识,同时,对各个不同颜色标识也会在执行计划章节中有对应颜色的解释说明。
需要说明的是,目标数据库在执行完成后,通过事务回退也能确保目标查询语句不会对已有的数据造成任何影响。
需要说明的是,评估模块在采集源查询语句时,也获取了该源查询语句对应的源执行信息,该源执行信息包括实际执行计划、实际执行时间、目标执行效率等,以根据第二执行结果和源执行信息对数据库迁移过程进行性能评估。
需要说明的是,评估模块会获取对目标查询语句的多次执行处理后的多个目标执行时间,为了消除单次执行性能误差的影响,将对多个目标执行时间进行均值处理,得到平均执行时间,根据该平均执行时间和实际执行时间进行性能比对分析。
需要说明的是,在实际应用中,根据得到的兼容性评估报告和性能评估报告进行信息提示。
在一些实施例的步骤S180中,为了实现对源数据库到目标数据库的迁移过程的性能对比分析,评估模块根据第二执行结果和目标查询语句的预设执行结果对预设第二模板进行填充处理,得到性能评估报告。本申请实施例通过将第二执行结果和目标查询语句的预设执行结果进行结构化的汇总,即将其填充至预设的第二模板,便于直观地获得性能对比分析信息。
需要说明的是,预设执行结果就是上述目标查询语句对应的源执行信息。
需要说明的是,第二模板可以为HTML汇总模板、Excel汇总模板等形式对分析结果进行展示,HTML汇总模板可以用于统计包括性能对比汇总,即包括具体的执行计划、执行方案等;Excel汇总数据可以包括性能数据比对等。
请参阅图7,图7是本申请实施例提供的数据库迁移评估系统的结构示意图,该系统可以实现上述实施例的数据库迁移评估方法,该系统包括采集模块710、源数据库720、评估模块730和目标数据库740。
采集模块710,该采集模块710用于响应于预设数据采集信号,从源数据库720中获取源查询语句;对源查询语句进行规范化处理,得到待执行查询语句;
评估模块730,该评估模块730用于响应于预设评估信号,从采集模块710中获取待执行查询语句;将待执行查询语句发送给目标数据库740,并获取目标数据库740对待执行查询语句进行执行处理得到的第一执行结果;根据第一执行结果确定待执行查询语句的兼容结果;根据兼容结果和待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告;将兼容结果表示兼容的待执行查询语句作为目标查询语句,将目标查询语句发送给目标数据库740,并获取目标数据库740对目标查询语句进行执行处理得到的第二执行结果。之后,根据第二执行结果和目标查询语句的预设执行结果对预设第二模板进行填充处理,得到性能评估报告。
需要说明的是,本申请实施例的数据库迁移评估系统用于实现上述实施例的数据库迁移评估方法,本申请实施例的数据库迁移评估系统与前述的数据库迁移评估方法相对应,具体的处理过程请参照前述的数据库迁移评估方法,在此不再赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括:至少一个存储器,至少一个处理器,至少一个计算机程序,至少一个计算机程序被存储在至少一个存储器中,至少一个处理器执行至少一个计算机程序以实现上述实施例中任一种的数据库迁移评估方法。该计算机设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图8,图8示意了另一实施例的一种计算机设备的硬件结构,该计算机设备包括:
处理器810,可以采用通用的中央处理器(Central Processing Unit,CPU)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器820,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器820可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器820中,并由处理器810来调用执行本申请实施例的数据库迁移评估方法;
输入/输出接口830,用于实现信息输入及输出;
通信接口840,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线850,在设备的各个组件(例如处理器810、存储器820、输入/输出接口830和通信接口840)之间传输信息;
其中处理器810、存储器820、输入/输出接口830和通信接口840通过总线850实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序用于使计算机执行上述实施例中数据库迁移评估方法。
本申请实施例提供的一种数据库迁移评估方法和系统、计算机设备、存储介质,首先,为了自动持续性从源数据库抓取增量的查询语句,通过采集模块获取源数据库的历史采集截止信息,历史采集截止信息用于表征采集模块在前一次响应预设数据采集信号时在源数据库进行数据采集的截止位置信息。采集模块根据当前预设数据采集信号和历史采集截止信息对源数据库进行数据采集,获取源查询语句和当前采集截止信息,并将当前采集截止信息更新历史采集截止信息。为了避免源查询语句中重复类型语句或无效信息对数据迁移评估效率的影响,采集模块首先对源查询语句进行语句去重处理,即对源查询语句进行字面量移除、注释移除、空字符合并和语句去重,得到待执行查询语句。评估模块响应于预设评估信号,从采集模块中获取待执行查询语句。为了评估源数据库的应用系统是否能够正确迁移到目标数据库环境中,评估模块将待执行查询语句发送给目标数据库,并向目标数据库发送执行处理信号。目标数据库响应于执行处理信号,从采集模块中获取待执行查询语句的数据对象信息,并根据数据对象信息设置执行配置信息,从而根据执行配置信息对待执行查询语句进行执行处理,得到第一执行结果,并将第一执行结果发送至评估模块。评估模块根据第一执行结果确定待执行查询语句的兼容结果。为了实现对不兼容的待执行查询语句的自动化改写,以更高效地满足目标数据库的运行要求,若待执行查询语句兼容结果为不兼容,评估模块对待执行查询语句进行字面量移除和注释移除,得到第二改写语句。之后,评估模块根据预设置的改写规则库对第二改写语句进行语句改写,得到第三改写语句,并对第三改写语句进行规范化还原处理,得到目标改写语句。评估模块将目标改写语句发送给目标数据库,并获取目标数据库对目标查询语句进行执行处理得到的第三执行结果。若第三执行结果为执行成功,评估模块确定目标改写语句的兼容结果为兼容,若第三执行结果为执行失败,则评估模块确定目标改写语句的兼容结果为不兼容,则说明当前的目标改写语句为目标数据库不支持的类别。根据该兼容结果和待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告。再然后,评估模块获取源数据库的绑定变量数据,将兼容结果表示兼容的待执行查询语句作为目标查询语句,并将绑定变量数据、目标查询语句和执行处理信号发送给目标数据库。目标数据库响应于执行处理信号,根据绑定变量数据对目标查询语句进行执行处理,得到第二执行结果,并将第二执行结果发送至评估模块。最后,根据第二执行结果和目标查询语句的预设执行结果对预设第二模板进行填充处理,得到性能评估报告。由于现有的方案通常采用一次性采集的方法,即采用一次性采集、分析、出报告的流程,而数据库中的业务SQL又会存在周期性的变化,那么无论何时采集,均可能存在漏采风险,而本申请实施例能够采用直连源数据库,并自动持续性地从源数据库执行采集、规范化、去重流程,避免数据漏采的情况,更能贴近真实的全量业务SQL规模。由于现有的方法对于不兼容的SQL仅仅是简单给出失败原因,这对于不兼容SQL的整改还存在巨大的人工工作量,而本申请实施例能够提供针对不兼容SQL的自动改写功能,能针对绝大部分不兼容的SQL逻辑进行针对性的语法改写,使其满足目标数据库中的运行要求。现有的方法对SQL的兼容性分析,都仅仅是关注SQL语法的兼容性,而忽略了SQL性能的变化,在实际迁移过程中,即使SQL语法无异常,但若性能下降严重,也会导致迁移项目的失败。而本申请实施例中不仅考虑到SQL语法的兼容性,也会对SQL的性能变化情况进行对比分析,同时针对目标端性能下降的SQL,还会进一步分析SQL性能异常的步骤,为SQL优化提供具体的理论依据。因此,本申请实施例能够准确高效地实现对数据库的迁移评估。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1至6中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“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 (6)
1.一种数据库迁移评估方法,其特征在于,所述方法包括:
采集模块获取源数据库的历史采集截止信息,并根据当前的预设数据采集信号和所述历史采集截止信息对所述源数据库进行数据采集,得到源查询语句和当前采集截止信息,并将所述当前采集截止信息更新为所述历史采集截止信息;其中,所述历史采集截止信息用于表征所述采集模块在前一次响应所述预设数据采集信号时在所述源数据库进行数据采集的截止位置信息;
所述采集模块对所述源查询语句进行字面量移除,得到第一处理语句;所述采集模块对所述第一处理语句进行注释移除,得到第二处理语句;所述采集模块对所述第二处理语句进行空字符合并,得到第三处理语句;所述采集模块对所述第三处理语句进行语句去重,得到待执行查询语句;
评估模块响应于预设评估信号,从所述采集模块中获取所述待执行查询语句;
所述评估模块将所述待执行查询语句发送给目标数据库,并向所述目标数据库发送执行处理信号;所述目标数据库响应于所述执行处理信号,从所述采集模块中获取所述待执行查询语句的数据对象信息;所述目标数据库根据所述数据对象信息设置执行配置信息;所述目标数据库根据所述执行配置信息对所述待执行查询语句进行执行处理,得到第一执行结果,并将所述第一执行结果发送至所述评估模块;
所述评估模块根据所述第一执行结果确定所述待执行查询语句的兼容结果;
所述评估模块根据所述兼容结果和所述待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告;
若所述评估模块确定所述待执行查询语句的兼容结果为不兼容,所述评估模块对所述待执行查询语句进行字面量移除,得到第一改写语句;所述评估模块对所述第一改写语句进行注释移除,得到第二改写语句;所述评估模块根据预设置的改写规则库对所述第二改写语句进行语句改写,得到第三改写语句;所述评估模块对所述第三改写语句进行规范化还原处理,得到目标改写语句;所述评估模块将所述目标改写语句发送给所述目标数据库,并获取所述目标数据库对所述目标改写语句进行执行处理得到的第三执行结果;若所述第三执行结果为执行成功,所述评估模块确定所述目标改写语句的所述兼容结果为兼容;
所述评估模块将所述兼容结果表示兼容的所述待执行查询语句作为目标查询语句,将所述目标查询语句发送给所述目标数据库,并获取所述目标数据库对所述目标查询语句进行执行处理得到的第二执行结果;
所述评估模块根据所述第二执行结果和所述目标查询语句的预设执行结果进行性能评估,并根据所述第二执行结果和所述预设执行结果对预设第二模板进行填充处理,得到性能评估报告;所述第二执行结果包括目标执行计划,所述评估模块根据所述目标执行计划进行执行计划步骤分析,以识别所述目标执行计划中的性能异常步骤,并在所述性能评估报告中对所述性能异常步骤进行标识展示;其中,所述第一模板包括超文本标记语言汇总模板和Excel汇总模板,则所述评估模块根据所述超文本标记语言汇总模板统计包括兼容查询语句的分类汇总、不兼容查询语句的分类汇总、各应用的查询语句支持度汇总的所述兼容性评估报告;所述评估模块根据所述Excel汇总模板还统计包括兼容查询语句、不兼容查询语句的改写内容、不兼容查询语句的异常汇总的所述兼容性评估报告;所述第二模板包括所述超文本标记语言汇总模板和所述Excel汇总模板,所述评估模块还根据所述超文本标记语言汇总模板和所述Excel汇总模板统计性能对比汇总信息。
2.根据权利要求1所述的方法,其特征在于,所述评估模块根据所述第一执行结果确定所述待执行查询语句的兼容结果,包括:
若所述第一执行结果为执行成功,所述评估模块确定待执行查询语句的兼容结果为兼容;
若所述第一执行结果为执行失败,所述评估模块确定待执行查询语句的兼容结果为不兼容。
3.根据权利要求1或2所述的方法,其特征在于,所述评估模块将所述兼容结果表示兼容的所述待执行查询语句作为目标查询语句,将所述目标查询语句发送给所述目标数据库,并获取所述目标数据库对所述目标查询语句进行执行处理得到的第二执行结果,包括:
所述评估模块获取所述源数据库的绑定变量数据,将所述兼容结果表示兼容的所述待执行查询语句作为目标查询语句,并将所述绑定变量数据、所述目标查询语句和执行处理信号发送给所述目标数据库;
所述目标数据库响应于所述执行处理信号,根据所述绑定变量数据对所述目标查询语句进行执行处理,得到第二执行结果,并将所述第二执行结果发送至所述评估模块。
4.一种数据库迁移评估系统,其特征在于,所述系统包括:
采集模块,所述采集模块用于获取源数据库的历史采集截止信息,并根据当前的预设数据采集信号和所述历史采集截止信息对所述源数据库进行数据采集,得到源查询语句和当前采集截止信息,并将所述当前采集截止信息更新为所述历史采集截止信息;其中,所述历史采集截止信息用于表征所述采集模块在前一次响应所述预设数据采集信号时在所述源数据库进行数据采集的截止位置信息;所述采集模块对所述源查询语句进行字面量移除,得到第一处理语句;所述采集模块对所述第一处理语句进行注释移除,得到第二处理语句;所述采集模块对所述第二处理语句进行空字符合并,得到第三处理语句;所述采集模块对所述第三处理语句进行语句去重,得到待执行查询语句;
评估模块,所述评估模块用于响应于预设评估信号,从所述采集模块中获取所述待执行查询语句;所述评估模块将所述待执行查询语句发送给目标数据库,并向所述目标数据库发送执行处理信号;所述目标数据库响应于所述执行处理信号,从所述采集模块中获取所述待执行查询语句的数据对象信息;所述目标数据库根据所述数据对象信息设置执行配置信息;所述目标数据库根据所述执行配置信息对所述待执行查询语句进行执行处理,得到第一执行结果,并将所述第一执行结果发送至所述评估模块;根据所述第一执行结果确定所述待执行查询语句的兼容结果;根据所述兼容结果和所述待执行查询语句对预设的第一模板进行填充处理,得到兼容性评估报告;若所述评估模块确定所述待执行查询语句的兼容结果为不兼容,所述评估模块对所述待执行查询语句进行字面量移除,得到第一改写语句;所述评估模块对所述第一改写语句进行注释移除,得到第二改写语句;所述评估模块根据预设置的改写规则库对所述第二改写语句进行语句改写,得到第三改写语句;所述评估模块对所述第三改写语句进行规范化还原处理,得到目标改写语句;所述评估模块将所述目标改写语句发送给所述目标数据库,并获取所述目标数据库对所述目标改写语句进行执行处理得到的第三执行结果;若所述第三执行结果为执行成功,所述评估模块确定所述目标改写语句的所述兼容结果为兼容;将所述兼容结果表示兼容的所述待执行查询语句作为目标查询语句,将所述目标查询语句发送给所述目标数据库,并获取所述目标数据库对所述目标查询语句进行执行处理得到的第二执行结果;根据所述第二执行结果和所述目标查询语句的预设执行结果进行性能评估,并根据所述第二执行结果和所述预设执行结果对预设第二模板进行填充处理,得到性能评估报告;所述第二执行结果包括目标执行计划,所述评估模块根据所述目标执行计划进行执行计划步骤分析,以识别所述目标执行计划中的性能异常步骤,并在所述性能评估报告中对所述性能异常步骤进行标识展示;其中,所述第一模板包括超文本标记语言汇总模板和Excel汇总模板,则所述评估模块根据所述超文本标记语言汇总模板统计包括兼容查询语句的分类汇总、不兼容查询语句的分类汇总、各应用的查询语句支持度汇总的所述兼容性评估报告;所述评估模块根据所述Excel汇总模板还统计包括兼容查询语句、不兼容查询语句的改写内容、不兼容查询语句的异常汇总的所述兼容性评估报告;所述第二模板包括所述超文本标记语言汇总模板和所述Excel汇总模板,所述评估模块还根据所述超文本标记语言汇总模板和所述Excel汇总模板统计性能对比汇总信息。
5.一种计算机设备,其特征在于,包括:
至少一个存储器;
至少一个处理器;
至少一个计算机程序;
所述至少一个计算机程序被存储在所述至少一个存储器中,所述至少一个处理器执行所述至少一个计算机程序以实现:
如权利要求1至3中任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使计算机执行:
如权利要求1至3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211314714.0A CN115408370B (zh) | 2022-10-26 | 2022-10-26 | 数据库迁移评估方法和系统、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211314714.0A CN115408370B (zh) | 2022-10-26 | 2022-10-26 | 数据库迁移评估方法和系统、计算机设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115408370A CN115408370A (zh) | 2022-11-29 |
CN115408370B true CN115408370B (zh) | 2023-03-14 |
Family
ID=84168645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211314714.0A Active CN115408370B (zh) | 2022-10-26 | 2022-10-26 | 数据库迁移评估方法和系统、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115408370B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115563088B (zh) * | 2022-12-08 | 2023-07-25 | 广东睿江云计算股份有限公司 | 不同类型的数据库的数据迁移方法及迁移系统 |
CN117370316A (zh) * | 2023-12-07 | 2024-01-09 | 本原数据(北京)信息技术有限公司 | 数据库的高可用管理方法和装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258989A (zh) * | 2020-02-14 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 数据库迁移评估方法、装置、存储介质和计算机设备 |
CN111708753A (zh) * | 2020-05-18 | 2020-09-25 | 北京金山云网络技术有限公司 | 数据库迁移的评估方法、装置、设备及计算机存储介质 |
CN113806331A (zh) * | 2021-08-13 | 2021-12-17 | 阿里云计算有限公司 | 数据处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5555550B2 (ja) * | 2010-06-09 | 2014-07-23 | 株式会社インフォース | データ変換方法、その装置およびそのプログラム |
US9311345B2 (en) * | 2012-10-09 | 2016-04-12 | Sap Se | Template based database analyzer |
EP3657351B1 (en) * | 2018-11-22 | 2023-11-15 | Accenture Global Solutions Limited | Smart data transition to cloud |
CN113946559A (zh) * | 2020-07-17 | 2022-01-18 | 华为技术有限公司 | 数据处理方法、目标数据库系统及数据处理系统 |
-
2022
- 2022-10-26 CN CN202211314714.0A patent/CN115408370B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258989A (zh) * | 2020-02-14 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 数据库迁移评估方法、装置、存储介质和计算机设备 |
CN111708753A (zh) * | 2020-05-18 | 2020-09-25 | 北京金山云网络技术有限公司 | 数据库迁移的评估方法、装置、设备及计算机存储介质 |
CN113806331A (zh) * | 2021-08-13 | 2021-12-17 | 阿里云计算有限公司 | 数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115408370A (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115408370B (zh) | 数据库迁移评估方法和系统、计算机设备、存储介质 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
CN109448100B (zh) | 三维模型格式转换方法、系统、计算机设备及存储介质 | |
AU2017268630A1 (en) | Method, device, server and storage apparatus of reviewing SQL | |
US9400733B2 (en) | Pattern matching framework for log analysis | |
JP6996812B2 (ja) | 分散データベースにおけるデータブロックを処理する方法、プログラム、およびデバイス | |
CN111459698A (zh) | 一种数据库集群故障自愈方法及装置 | |
CN114510267B (zh) | 基于Linux系统的程序ABI接口兼容性计算方法 | |
CN110647531A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
CN109446262B (zh) | 一种数据汇聚方法及装置 | |
CN111611207B (zh) | 状态数据处理方法、装置及计算机设备 | |
CN112817866A (zh) | 录制回放方法、装置、系统、计算机设备以及存储介质 | |
CN112579578A (zh) | 基于元数据的数据质量管理方法、装置、系统及服务器 | |
CN111611276A (zh) | 数据查询方法、装置及存储介质 | |
CN116126950A (zh) | 实时物化视图系统和方法 | |
CN112988776B (zh) | 文本解析规则的更新方法、装置、设备及可读存储介质 | |
CN112508440B (zh) | 数据质量评估方法、装置、计算机设备及存储介质 | |
EP2904520A1 (en) | Reference data segmentation from single to multiple tables | |
CN109977104B (zh) | 数据管理方法及装置 | |
CN110309206B (zh) | 订单信息采集方法及系统 | |
CN116701406A (zh) | 数据比对方法和装置、计算机设备及存储介质 | |
CN116303427A (zh) | 数据处理方法及装置、电子设备和存储介质 | |
CN115510139A (zh) | 数据查询方法和装置 | |
CN115033592A (zh) | 基于数据库的sql语句处理方法、装置、设备及存储介质 | |
CN111209138A (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 |