CN117389986A - 数据库兼容性评估方法、装置、电子设备及存储介质 - Google Patents
数据库兼容性评估方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117389986A CN117389986A CN202311301790.2A CN202311301790A CN117389986A CN 117389986 A CN117389986 A CN 117389986A CN 202311301790 A CN202311301790 A CN 202311301790A CN 117389986 A CN117389986 A CN 117389986A
- Authority
- CN
- China
- Prior art keywords
- database
- query statement
- compatibility evaluation
- initial query
- source
- 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
- 238000011156 evaluation Methods 0.000 title claims abstract description 113
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000013508 migration Methods 0.000 claims abstract description 12
- 230000005012 migration Effects 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000000586 desensitisation Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming 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
-
- 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/245—Query processing
-
- 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库兼容性评估方法、装置、电子设备及存储介质,该方法包括步骤:获取源数据库中的初始查询语句;对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数;在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。即本申请提高了兼容性评估的效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据库兼容性评估方法、装置、电子设备及存储介质。
背景技术
近年来,现网业务***中,由于***升级等原因,业务***底层可能会采用新的数据库。不同数据库的查询语句的语法差异较大,各数据库之间存在不兼容的问题。业务***换用新数据库时,需要评估新数据库对业务***当前使用的源数据库的查询语句的兼容情况,从而为后续不同数据库之间的数据迁移、以及业务***针对新数据库的改造给予指导。
实际应用中,需要通过源数据库中所有的查询语句进行兼容性评估,而由于源数据库中记录有大量的查询语句,这使得兼容性评估的效率不高。
因此,实际应用中需要一种能够提高兼容性评估的效率的方案。
发明内容
本申请的主要目的在于提供一种数据库兼容性评估方法、装置、电子设备及存储介质,旨在解决兼容性评估效率不高的技术问题。
为实现上述目的,本申请提供一种数据库兼容性评估方法,所述数据库兼容性评估方法包括以下步骤:
获取源数据库中的初始查询语句;
对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数;
在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。
示例性的,所述对所述初始查询语句进行特定的处理,得到目标查询语句,包括:
从所述初始查询语句中匹配得到一组或多组重复的初始查询语句;
对各组重复的初始查询语句执行删除操作,并保留所述各组重复的初始查询语句中的一条初始查询语句,得到目标查询语句。
示例性的,所述对所述初始查询语句进行特定的处理,得到目标查询语句,包括:
从所述初始查询语句中匹配得到所述新数据库中不支持的语法对应的不支持初始查询语句;
剔除所述不支持初始查询语句,得到目标查询语句。
示例性的,所述在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告之前,包括:
根据特定的替换规则,对所述目标查询语句进行改写;
所述在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告,包括:
在所述新数据库中执行改写后的所述目标查询语句,得到数据库兼容性评估报告。
示例性的,所述数据库兼容性评估方法还包括:
获取源数据来源;
若所述源数据来源为内部生成,则通过语句采集客户端在源数据库中采集并自动生成所述初始查询语句。
示例性的,所述数据库兼容性评估方法还包括:
对所述初始查询语句进行脱敏处理。
示例性的,所述数据库兼容性评估方法还包括:
对所述目标查询语句进行格式化处理。
示例性的,为实现上述目的,本申请还提供一种数据库兼容性评估装置,所述数据库兼容性评估装置包括:
第一获取模块,用于获取源数据库中的初始查询语句;
处理模块,用于对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数;
执行模块,用于在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。
示例性的,为实现上述目的,本申请还提供一种电子设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库兼容性评估程序,所述数据库兼容性评估程序配置为实现如上所述的数据库兼容性评估方法的步骤。
示例性的,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据库兼容性评估程序,所述数据库兼容性评估程序被处理器执行时实现如上所述的数据库兼容性评估方法的步骤。
与相关技术中,需要通过源数据库中所有的查询语句进行兼容性评估,而由于源数据库中记录有大量的查询语句,导致兼容性评估的效率不高相比,本申请实施例获取源数据库中的初始查询语句;对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数;在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。本申请实施例通过减少在新数据库中执行的初始查询语句的条数,使得在对初始查询语句进行兼容性评估时,无需对源数据库中所有的查询语句进行兼容性评估,而是对条数更少的目标查询语句进行兼容性评估即可,从而提高了兼容性评估的效率。
附图说明
图1为本申请数据库兼容性评估方法一实施例的流程示意图;
图2为本申请数据库兼容性评估装置的模块示意图;
图3为本申请实施例方案涉及的硬件运行环境的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,图1为本申请数据库兼容性评估方法一实施例的流程示意图。本申请实施例提供了数据库兼容性评估方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该数据库兼容性评估方法包括:
步骤S110,获取源数据库中的初始查询语句。
步骤S120,对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数。
步骤S130,在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。
以下针对各个步骤进行详细阐述:
步骤S110,获取源数据库中的初始查询语句。
需要说明的是,本申请实施例主要用于兼容性评估任务,即对源数据库和新数据库之间的兼容性进行评估,该评估的过程可以分为四个阶段,分别为任务管理阶段、源数据获取阶段、兼容性评估阶段以及结果输出阶段。其中,任务管理阶段用于进行相应的配置,从而根据该配置执行源数据获取阶段、兼容性评估阶段以及结果输出阶段中相应的步骤。
在任务管理阶段,需要根据用户的指令进行相应的配置,包括参数配置和任务配置。其中参数配置用于配置参数,任务配置用于配置任务。
该参数包括但不限于记录源数据库(OLD_DB)的数据库类型、源数据库对应的版本信息,新数据库(NEW_DB)的数据库类型、新数据库对应的版本信息,源数据来源,源数据库的访问地址、用户名及密码,新数据库的访问地址、用户名及密码,待评估的数据库名称,采集时长。其中,待评估的数据库名称为源数据库的数据库名称;采集时长用于确定源数据对应的时间信息,例如采集时长为7天,则源数据为源数据库中最近7天内的数据。
任务信息用于记录兼容性评估任务的任务配置,该任务信息的数据格式为<任务名称、任务发起时间、任务结束时间、任务的并行度、任务的参数>。当用户触发任务创建操作时,展示任务配置界面,获取用户在该任务配置界面输入的任务信息,并基于该任务信息启动兼容性评估任务。
数据库类型包括关系型数据库、非关系型数据库(NoSQL)、键值数据库(key-value)。
其中,关系型数据库包括MySQL、Oracle、SQL Server、TDSQL(TencentDistributed SQL,一种分布式数据库)、DB2、Apache Kafka等;非关系型数据库包括BigTable、Cassandra、MongoDB等;键值(Key-Value)数据库包括Dynamo、LevelDB等。对于源数据库的数据库类型为关系型数据库,初始查询语句为SQL(Structured Query Language,结构化查询语句),该SQL包括DDL(Date Defination Language,数据定义语言)、DQL(DataQuery Language,数据查询语言)对于不同的关系型数据库,SQL存在一些差异;对于源数据库的数据库类型为非关系型数据库,初始查询语句不为SQL,例如MongoDB的初始查询语句为db.getCollection('patient')、find({},{"列名":1})等,键值数据库属于非关系型数据库中的一种。
以下分别通过关系型数据库、非关系型数据库和键值数据库,对本申请实施例进行展开说明:
对于关系型数据库:
需要说明的是,OLTP(On-Line Transaction Processing,联机事务处理过程)数据库行业正在加速发展,积极提高产品质量和市场份额,各种OLTP数据库的应用越来越广泛。
需要说明的是,参数还包括评估类型,评估类型包括对象结构,或者是对象结构和会话SQL。其中,初始查询语句为该对象结构中的DDL,或者是该DDL以及该会话SQL中的DQL。
在任务管理阶段之后,进入源数据获取阶段。
进一步的,所述数据库兼容性评估方法还包括:对所述初始查询语句进行脱敏处理。
在本实施例中,在该源数据获取阶段,需要对该源数据进行脱敏处理,从而避免业务***中的信息发生泄露,进而提高数据安全性。其中,数据脱敏(Data Masking)又称数据去隐私化或数据变形,是在给定的规则、策略下对敏感数据进行变换、修改的技术机制,能够在很大程度上解决敏感数据在非可信环境中使用的问题。根据数据保护规范和脱敏策略,对业务数据(源数据)中的敏感信息实施自动变形,实现对敏感信息的隐藏。
需要说明的是,该源数据是源数据库中存放的业务***的对象结构,或者是对象结构和会话SQL。获取源数据的方式包括但不限于内部生成、外部输入。可以理解,本申请实施例提供了多种获取源数据的方式,使得源数据来源多元化,而非单一来源。
其中,外部输入为用户按照预设输出格式自行提供源数据。具体地,外部输入可以是采用其他工具从该源数据库中自动获取相应数据后,按照该预设输出格式进行转换后得到;也可以是通过业务***根据实际使用情况按照预设输出格式编写源数据的文件得到。
在一示例性实施例中,所述数据库兼容性评估方法还包括:获取源数据来源;若所述源数据来源为内部生成,则通过语句采集客户端在源数据库中采集并自动生成所述初始查询语句。
在本实施例中,获取任务管理阶段中的参数,若其中的源数据来源为内部生成;则获取源数据的方式为通过语句采集客户端在源数据库中采集并自动生成。
具体地,按照源数据库的数据库类型和版本信息选择相应的数据采集操作方式,例如数据库类型为MySQL、版本信息为5.7,则可以通过general log日志采集得到源数据。
若评估类型为对象结构,则在确定数据采集方式之后,通过源数据库的访问地址(例如IP(Internet Protocol,网际互联协议)地址是192.168.0.1和端口号16666)、用户名及密码连上源数据库;按照第一预设数据格式和待评估的数据库名称(例如CRM(CustomerRelationship Management,客户关系管理)采集源数据库的对象结构中的源数据。其中,第一预设数据格式为<数据库名称、对象类型、DDL语句>。其中,对象类型包括表、列、页等。其中,DDL主要用于在数据库中创建新库表、删除库表,为表添加字段、索引等,该DDL语句的关键字段包括create、drop、ater等。
若评估类型为对象结构和会话SQL,则源数据包括对象结构中的数据和会话SQL中的数据。即在采集对象结构中的数据的基础上,在采集时长指定的时间周期内,还按照第二预设数据格式和待评估的数据库名称采集源数据库的会话SQL中的数据,从而得到源数据。其中,第二预设数据格式为<数据库名称、用户名称、会话主机信息、DQL语句>。其中,用户名称即与该源数据库建立的会话的用户的名称;会话主机信息即该用户建立该会话时所使用的主机的信息,该会话主机信息包括IP地址、MAC(Media Access Control Address,媒体存取控制位址)地址等;DQL用于查询数据库中表的记录(数据),该DQL语句的关键字段包括select、where等。
其中,DDL和DQL都属于SQL。
将该源数据存放在特定目录中,供后续兼容性评估阶段使用。
在另一示例性实施例中,获取任务管理阶段中的参数,若其中的源数据来源为外部输入,则获取用户(工具使用方)按照第一预设数据格式,或者是第一预设数据格式和第二预设数据格式通过上述其他工具生成的存放在特定目录的源数据。相应地,对于对象结构,第一预设数据格式为<数据库名称、对象类型、DDL语句>。其中,对象类型包括表、列、页等。其中,对象类型包括表、页等。对于会话SQL,第二预设数据格式为<数据库名称、用户名称、会话主机信息、DQL语句>。其中,用户名称即与该源数据库建立的会话的用户的名称;会话主机信息即该用户建立该会话时所使用的主机的信息,该会话主机信息包括IP地址、MAC地址等。
在源数据获取阶段之后,进入兼容性评估阶段。
在兼容性评估阶段:
步骤S120,对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数。
匹配是指在初始查询语句中匹配重复的语句,或者是根据新数据库中不支持的语法从初始查询语句中进行匹配。进行特定的处理的目的在于减少初始查询语句的条数,从而使得在新数据库中执行目标查询语句时,只需要执行更少的目标查询语句,进而提高兼容性评估的效率。
在一示例性实施例中,所述对所述初始查询语句进行特定的处理,得到目标查询语句,包括:从所述初始查询语句中匹配得到一组或多组重复的初始查询语句;对各组重复的初始查询语句执行删除操作,并保留所述各组重复的初始查询语句中的一条初始查询语句,得到目标查询语句。
在本实施例中,对于匹配重复的语句,在对所有的初始查询语句完成匹配后,特定的处理还包括删除重复的语句,使得每一初始查询语句都是唯一的,即目标查询语句中每一初始查询语句都是唯一的。例如初始查询语句中包括2条db.getCollection('patient'),则删除其中1条并保留1条。
在另一示例性实施例中,所述对所述初始查询语句进行特定的处理,得到目标查询语句,包括:从所述初始查询语句中匹配得到所述新数据库中不支持的语法对应的不支持初始查询语句;剔除所述不支持初始查询语句,得到目标查询语句。
在本实施例中,对于根据新数据库中不支持的语法从初始查询语句中进行匹配,特定的处理还包括从该初始查询语句中剔除该新数据库中不支持的语法对应的初始查询语句,得到目标查询语句。例如源数据库的数据库类型为MySQL,初始查询语句包括setvariables,这是新数据库中不支持的语法对应的初始查询语句,因此,需要将该setvariables从初始查询语句中剔除。
步骤S130,在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。
数据库兼容性评估报告通过每一条目标查询语句对应的评估信息生成,其中,该评估信息可以包括评估时间(即当前时间)、是否兼容(即是否执行成功)等。其中,兼容性可以为评估信息中兼容对应的目标查询语句占所有目标查询语句的比例。
需要说明的是,数据库兼容性评估报告中除了目标查询语句对应的评估信息,还包括上述被剔除的初始查询语句对应的评估信息。可以理解,通过确定初始查询语句的语法是否为新数据库中不支持的语法,能够在不在新数据库中执行的情况下,即可得到兼容性结果,也即在初始查询语句的语法为新数据库中不支持的语法的情况下,可以确定该初始查询语句在新数据库中不兼容。
需要说明的是,评估信息可以通过新数据库中的表来保存。具体地,在确保新数据库能访问的情况下,在新数据库中创建Assessment_Record_“任务名称”数据库,并在该Assessment_Record_“任务名称”数据库中创建OBJECT_SQL表以及导入对象结构中的数据至OBJECT_SQL表中,或者是在该Assessment_Record_“任务名称”数据库中创建OBJECT_SQL表和SESSION_SQL表以及导入对象结构中的数据至OBJECT_SQL表中、导入会话SQL中的数据至SESSION_SQL表中。
其中,OBJECT_SQL表中的字段包括源数据库的数据库类型、数据库名称、对象类型、原始DDL语句、改写后的DDL语句、是否原始DDL兼容、是否改写后DDL兼容、是否评估完成、评估时间、不兼容的原因;SESSION_SQL表中的字段包括源数据库的数据库类型、数据库名称、用户名称、会话主机信息、SQL类型、原始DQL语句、改写后的DQL语句、是否原始DQL兼容、是否改写后DQL兼容、是否评估完成、评估时间、不兼容的原因。
在新数据库中执行目标查询语句时,在新数据库中依次读取OBJECT_SQL表中每行数据,并做循环处理。针对每行数据,若字段“是否评估完成”的值为“是”,则继续执行下一行中的初始查询语句。若字段“是否评估完成”的值为“否”,则查看字段“改写后的DDL语句”中是否有内容,如果有,则在新数据库中执行字段“改写后的DDL语句”对应的值,即改写后的DDL语句,若执行成功,则设置该行的字段“是否改写后DDL兼容”的值为“是”,否则设置为“否”、并填写对应的“不兼容原因”,即字段“不兼容原因”的值为改写后DDL不兼容。若字段“改写后的DDL语句”中没有内容,则执行字段“原始DDL语句”中的值,即原始DDL语句,若执行成功,则设置该行的字段“是否原始DDL兼容”的值为“是”、否则设置为“否”、并填写对应的“不兼容原因”,即字段“不兼容原因”的值为原始DDL不兼容。并将字段“是否评估完成”的值设置为“是”,将字段“评估时间”的值设置为当前时间。
OBJECT_SQL处理完后,进行会话SQL的兼容性评估。在新数据库中依次读取OBJECT_SQL表中每行数据,并做循环处理。针对每行数据,若字段“是否评估完成”的值为“是”,则继续执行下一行。若字段“是否评估完成”的值为“否”,则查看字段“改写后的DQL语句”中是否有内容,如果有,则在新数据库中执行字段“改写后的DQL语句”的值,即改写后的DQL语句,若执行成功,则设置该行的字段“是否改写后DQL兼容”的值为“是”,否则设置为“否”、填写对应的“不兼容原因”,即改写后的DQL语句不兼容。若字段“改写后的DQL语句”中没有内容,则执行字段“原始DQL语句”的值,即原始DQL语句,若执行成功,则设置该行的字段“是否原始DQL兼容”的值为“是”、否则设置为“否”、并填写对应的“不兼容原因”,即原始DQL语句不兼容。并将字段“是否评估完成”的值设置为“是”,将字段“评估时间”的值设置为当前时间。
进一步地,所述在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告之前,包括:根据特定的替换规则,对所述目标查询语句进行改写;所述在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告,包括:在所述新数据库中执行改写后的所述目标查询语句,得到数据库兼容性评估报告。
在本实施例中,上述改写后的DDL语句以及改写后的DQL语句是通过特定的替换规则进行改写后得到的。需要说明的是,替换规则与新数据库的数据库类型和源数据库的数据库类型相关,本质上是通过该替换规则将在源数据库中适用的初始查询语句替换为在新数据库中适用的新查询语句,使得被替换的初始查询语句被执行后所实现的操作与替换后的新查询语句在被执行后所实现的操作相同。即替换规则是新数据库中的新查询语句和与之一一对应的源数据库中的初始查询语句,该对应关系是被执行后所实现的操作相同。例如通过替换规则自动将varchar2替换成text。
需要说明的是,通过设置替换规则,可以在通过新数据库执行新查询语句时,验证替换建议的可行性,这能够对后续的迁移工作给出指导建议,从而提高数据迁移的效率。
进一步地,所述数据库兼容性评估方法还包括:对所述目标查询语句进行格式化处理。
在本实施例中,为了提高代码的可维护性,还可以对目标查询语句进行格式化处理,例如按照新数据库支持语法转换(例如将SQL语句统一转成小写格式等)、将目标查询语句中多个空格缩减为一个空格等。此外,对于长查询语句,对其进行格式化还可以使其变得更加易读、易于理解。
对于非关系型数据库和键值(Key-Value)数据库,需要说明的是,其不能直接使用SQL,但有相应的查询语句,具体实施方式与上述关系型数据库的各实施例基本相同,在此不再赘述。
进一步地,依次读取OBJECT_SQL表和SESSION_SQL表中的执行结果(包括是否原始DQL兼容、是否改写后的DQL兼容等)。按照该执行结果的不同维度将数据进行统计汇总,从而统计出源数据库和新数据库的兼容度。并将其展示在页面中,以及能根据用户需求导出为结果文件供下载。
在上述各阶段完成后,在新数据库中删除该数据库名称对应的数据库,从而节省存储资源。
此外,本申请还提供一种数据库兼容性评估装置,该数据库兼容性评估装置包括:
第一获取模块20,用于获取源数据库中的初始查询语句;
处理模块21,用于对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数;
执行模块22,用于在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。
示例性的,该处理模块21具体用于:
从所述初始查询语句中匹配得到一组或多组重复的初始查询语句;
对各组重复的初始查询语句执行删除操作,并保留所述各组重复的初始查询语句中的一条初始查询语句,得到目标查询语句。
示例性的,该处理模块21具体用于:
从所述初始查询语句中匹配得到所述新数据库中不支持的语法对应的不支持初始查询语句;
剔除所述不支持初始查询语句,得到目标查询语句。
示例性的,该数据库兼容性评估装置还包括:
改写模块,用于根据特定的替换规则,对所述目标查询语句进行改写;
该执行模块22具体用于:
在所述新数据库中执行改写后的所述目标查询语句,得到数据库兼容性评估报告。
示例性的,该数据库兼容性评估装置还包括:
第二获取模块,用于获取源数据来源;
采集模块,用于若所述源数据来源为内部生成,则通过语句采集客户端在源数据库中采集并自动生成所述初始查询语句。
示例性的,该数据库兼容性评估装置还包括:
脱敏模块,用于对所述初始查询语句进行脱敏处理。
示例性的,该数据库兼容性评估装置还包括:
格式化模块,用于对所述目标查询语句进行格式化处理。
本申请数据库兼容性评估装置具体实施方式与上述数据库兼容性评估方法各实施例基本相同,在此不再赘述。
此外,本申请还提供一种电子设备。如图3所示,图3是本申请实施例方案涉及的硬件运行环境的结构示意图。
如图3所示,该电子设备可以包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301、通信接口302和存储器303通过通信总线304完成相互间的通信,存储器303,用于存放计算机程序;处理器301,用于执行存储器303上所存放的程序时,实现数据库兼容性评估方法的步骤。
上述电子设备提到的通信总线304可以是外设部件互连标准(PeripheralComponentInterconnect,PCI)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线304可以分为地址总线、数据总线和控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口302用于上述电子设备与其他设备之间的通信。
存储器303可以包括随机存取存储器(Random Access Memory,RMD),也可以包括非易失性存储器(Non-Volatile Memory,NM),例如至少一个磁盘存储器。可选的,存储器303还可以是至少一个位于远离前述处理器301的存储装置。
上述的处理器301可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请电子设备具体实施方式与上述数据库兼容性评估方法各实施例基本相同,在此不再赘述。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据库兼容性评估程序,所述数据库兼容性评估程序被处理器执行时实现如上所述的数据库兼容性评估方法的步骤。
本申请计算机可读存储介质具体实施方式与上述数据库兼容性评估方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。还应理解的是,虽然术语“第一”、“第二”等在文本中在一些本申请实施例中用来描述各种元素,但是这些元素不应该受到这些术语的限制。这些术语只是用来将一个元素与另一元素区分开。例如,第一表格可以被命名为第二表格,并且类似地,第二表格可以被命名为第一表格,而不背离各种所描述的实施例的范围。第一表格和第二表格都是表格,但是它们不是同一表格。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据库兼容性评估方法,其特征在于,所述数据库兼容性评估方法包括以下步骤:
获取源数据库中的初始查询语句;
对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数;
在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。
2.如权利要求1所述的数据库兼容性评估方法,其特征在于,所述对所述初始查询语句进行特定的处理,得到目标查询语句,包括:
从所述初始查询语句中匹配得到一组或多组重复的初始查询语句;
对各组重复的初始查询语句执行删除操作,并保留所述各组重复的初始查询语句中的一条初始查询语句,得到目标查询语句。
3.如权利要求1所述的数据库兼容性评估方法,其特征在于,所述对所述初始查询语句进行特定的处理,得到目标查询语句,包括:
从所述初始查询语句中匹配得到所述新数据库中不支持的语法对应的不支持初始查询语句;
剔除所述不支持初始查询语句,得到目标查询语句。
4.如权利要求1所述的数据库兼容性评估方法,其特征在于,所述在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告之前,包括:
根据特定的替换规则,对所述目标查询语句进行改写;
所述在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告,包括:
在所述新数据库中执行改写后的所述目标查询语句,得到数据库兼容性评估报告。
5.如权利要求1所述的数据库兼容性评估方法,其特征在于,所述数据库兼容性评估方法还包括:
获取源数据来源;
若所述源数据来源为内部生成,则通过语句采集客户端在源数据库中采集并自动生成所述初始查询语句。
6.如权利要求1所述的数据库兼容性评估方法,其特征在于,所述数据库兼容性评估方法还包括:
对所述初始查询语句进行脱敏处理。
7.如权利要求1所述的数据库兼容性评估方法,其特征在于,所述数据库兼容性评估方法还包括:
对所述目标查询语句进行格式化处理。
8.一种数据库兼容性评估装置,其特征在于,所述数据库兼容性评估装置包括:
第一获取模块,用于获取源数据库中的初始查询语句;
处理模块,用于对所述初始查询语句进行特定的处理,得到目标查询语句;所述特定的处理至少包括对所述初始查询语句的匹配;所述目标查询语句的条数少于所述初始查询语句的条数;
执行模块,用于在新数据库中执行所述目标查询语句,得到数据库兼容性评估报告;所述数据库兼容性评估报告用于评估新数据库与所述源数据库的兼容性;所述新数据库为所述源数据库进行数据迁移的目标数据库。
9.一种电子设备,其特征在于,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库兼容性评估程序,所述数据库兼容性评估程序配置为实现如权利要求1至7中任一项所述的数据库兼容性评估方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据库兼容性评估程序,所述数据库兼容性评估程序被处理器执行时实现如权利要求1至7中任一项所述的数据库兼容性评估方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311301790.2A CN117389986A (zh) | 2023-10-09 | 2023-10-09 | 数据库兼容性评估方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311301790.2A CN117389986A (zh) | 2023-10-09 | 2023-10-09 | 数据库兼容性评估方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117389986A true CN117389986A (zh) | 2024-01-12 |
Family
ID=89467593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311301790.2A Pending CN117389986A (zh) | 2023-10-09 | 2023-10-09 | 数据库兼容性评估方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117389986A (zh) |
-
2023
- 2023-10-09 CN CN202311301790.2A patent/CN117389986A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8782604B2 (en) | Sandbox support for metadata in running applications | |
CN109284323B (zh) | 检测数据的管理方法及装置 | |
CN109739828B (zh) | 一种数据处理方法、设备及计算机可读存储介质 | |
CN108573019B (zh) | 一种数据迁移方法、装置、电子设备及可读存储介质 | |
US20070073675A1 (en) | Database query translation | |
CN111221791A (zh) | 一种多源异构数据导入数据湖的方法 | |
CN113204571B (zh) | 涉及写入操作的sql执行方法、装置及存储介质 | |
CN105608126A (zh) | 一种建立海量数据库二级索引的方法和装置 | |
US20210124752A1 (en) | System for Data Collection, Aggregation, Storage, Verification and Analytics with User Interface | |
CN110799961A (zh) | 在数据库中创建和删除租户的***和方法 | |
CN112163025A (zh) | 数据库数据导出方法、装置、计算机设备及存储介质 | |
CN114661715A (zh) | 数据库的数据处理方法及装置、存储介质和电子设备 | |
CN107239568B (zh) | 分布式索引实现方法及装置 | |
CN116737113B (zh) | 面向海量科学数据的元数据目录管理***及方法 | |
CN116483707A (zh) | 测试方法、装置、设备、存储介质及程序产品 | |
CN115757174A (zh) | 一种数据库的差异检测方法及装置 | |
CN117389986A (zh) | 数据库兼容性评估方法、装置、电子设备及存储介质 | |
CN110222105B (zh) | 数据汇总处理方法及装置 | |
CN114819631A (zh) | 一种多任务的可视化方法、装置、计算机设备及存储介质 | |
JP2018109898A (ja) | データマイグレーションシステム | |
CN112612818A (zh) | 一种数据处理方法及装置、计算设备和存储介质 | |
CN111651531A (zh) | 数据导入方法、装置、设备及计算机存储介质 | |
CN111723104A (zh) | 一种数据处理***中语法分析的方法、装置及*** | |
KR102276290B1 (ko) | 대용량 테스트 데이터 생성장치 | |
CN116302206B (zh) | 一种基于MQ的presto数据源热加载方法 |
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 |