CN117493378B - 一种多数据源切换的方法及*** - Google Patents
一种多数据源切换的方法及*** Download PDFInfo
- Publication number
- CN117493378B CN117493378B CN202410005451.8A CN202410005451A CN117493378B CN 117493378 B CN117493378 B CN 117493378B CN 202410005451 A CN202410005451 A CN 202410005451A CN 117493378 B CN117493378 B CN 117493378B
- Authority
- CN
- China
- Prior art keywords
- data
- features
- sql
- data source
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000000605 extraction Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000002123 temporal 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多数据源切换的方法及***,涉及数据源切换领域,所述方法包括:配置数据源库,连接待连接数据源,若所述待连接数据源连接成功,则分别获取所述数据源库中所有数据源的若干历史操作信息和所述待连接数据源的第一操作信息,分别提取所有所述历史操作信息和所述第一操作信息的数据,获得若干历史数据集合和第一数据集合;基于所有所述历史数据集合和所述第一数据集合获得结果集合,基于所述结果集合获得切换数据源,将所述待连接数据源更新为所述切换数据源,可以解决在大量数据源的场景下,无法快速找到需求的目标数据和目标数据源的问题。
Description
技术领域
本发明涉及数据源切换领域,具体地,涉及一种多数据源切换的方法及***。
背景技术
数据源(Data Source)顾名思义,数据的来源,是指数据库应用程序所使用的数据库或者数据库服务器,是连接到数据库的一类路径,它包含了访问数据库的信息(地址、用户名、密码等),是提供某种所需要数据的器件或原始媒体。在数据源中存储了所有建立数据库连接的信息。就像通过指定文件名称可以在文件***中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。
但目前很多互联网公司都有自己的数据库服务器,每个服务器有大量不同类型的数据库,而每个数据库又包含了大量的数据源,数据源中又包含了大量的数据,在使用过程中,经常会遇到切库的需求(即切换数据源),但由于数据源的不断创建,数量一直增多,在使用大量数据源后或长时间不使用时,容易遗忘每个数据源包含了哪些数据,进行了哪些数据操作,从而无法快速找到需求的目标数据和目标数据源。
发明内容
为了解决在大量数据源的场景下,无法快速找到需求的目标数据和目标数据源的问题,本发明提供了一种多数据源切换的方法,所述方法包括:
配置数据源库,所述数据源库包含若干数据源,每个所述数据源均对应一个第一信息,所述第一信息包括第一地址、第一用户名、第一密码、第一类型和第一唯一标识;
获取待连接数据源的第二信息,判断所述第二信息是否包括所述第一唯一标识;
若所述第二信息包括所述第一唯一标识,则判断所述第二信息与所述第一信息是否一致,若是则连接所述待连接数据源,若否则返回错误信息;
若所述第二信息不包括所述第一唯一标识,则基于所述第二信息进行所述待连接数据源的连接测试,若连接测试成功则创建所述待连接数据源,将所述待连接数据源添加至所述数据源库,生成所述待连接数据源的第二唯一标识,连接所述待连接数据源,若连接测试失败则返回错误信息;
若所述待连接数据源连接成功,则分别获取所述数据源库中所有所述数据源的若干历史操作信息和所述待连接数据源的第一操作信息,分别提取所有所述历史操作信息和所述第一操作信息的数据,获得若干历史数据集合和第一数据集合,每个所述历史数据集合包括若干第一数据特征、若干第一SQL特征和若干第一代码特征,所述数据源与所述历史数据集合一一对应,所述第一数据集合包括若干第二数据特征、若干第二SQL特征和若干第二代码特征;
基于所有所述历史数据集合和所述第一数据集合获得结果集合,基于所述结果集合获得切换数据源,将所述待连接数据源更新为所述切换数据源。
本方法原理:获取待连接数据源的信息,根据信息中是否包含唯一标识判断待连接数据源是否已存在数据源库中,若已存在则进一步判断信息是否与数据源库中的信息一致,若一致则直接连接,若不一致则返回错误信息;若不存在则先进行连接测试,测试成功则将创建待连接数据源,生成唯一标识后将其添加至数据源库,以及连接该数据源,测试失败则返回错误信息。连接成功后,分别获取数据源库中数据源和待连接数据源的操作信息,从操作信息中分别提取数据获得包含数据特征、SQL特征和代码特征的数据集合,通过数据集合获得切换数据源,并将其更新为待连接数据源。
先判断其是否存在、是否连接信息正确和是否连接成功,可以保证数据源的有效性,获取与操作信息对应的数据特征和与执行操作信息对应的SQL特征和代码特征,并根据其获得切换数据源,用户可以通过数据特征了解到每个数据源中的存储数据,通过SQL和代码了解到每个数据源执行了哪些操作,目前的操作进度,进而根据存储数据和操作信息快速寻求到目标数据和目标数据源,且存储数据和操作信息也可帮助用户回忆起之前的操作记录,从而快速找到目标数据和目标数据源。
考虑用户希望在大量数据源中,快速寻求目标数据以及多用户使用数据源,本方法将数据源中的数据先按照用途、类型或者大小等进行分类,再获取分类中的数据特征,可以根据数据特征快速找到目标数据,且每个数据源的数据特征清晰明了,有助于用户对数据源的掌握,以及根据目标数据找到目标数据源。
进一步地,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一数据特征和所有所述第二数据特征的具体步骤包括:
分别获取所有所述历史操作信息和所述第一操作信息对应的若干历史数据和若干第一数据;基于预设分类规则将所有所述历史数据和所有所述第一数据进行分类,获得若干历史分类集合和若干第一分类集合;将所有所述历史分类集合和所有所述第一分类集合分别进行特征提取,获得所有所述第一数据特征和所有所述第二数据特征。
考虑大量数据源和多用户使用数据源的场景下,用户不知数据源中的哪些数据进行了操作,进行了哪些操作,目前的操作进度,以及对数据源的增删改查、标注和绘画等操作场景,本方法获取执行数据操作对应的SQL语句和代码,分别提取SQL语句和代码中的特征,有助于用户掌握数据源的数据操作和了解操作进度,同时用户可以根据特征寻求目标数据和目标数据源。
进一步地,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一SQL特征和所有所述第二SQL特征的具体步骤包括:
分别获取执行所有所述历史操作信息和所述第一操作信息的若干第一SQL语句和若干第二SQL语句;分别提取所有所述第一SQL语句和所有所述第二SQL语句的关键词,获得按提取顺序排列的若干第一SQL特征集合和若干第二SQL特征集合,所述第一SQL特征集合与所述第一SQL语句一一对应,所述第二SQL特征集合与所述第二SQL语句一一对应,每个所述第一SQL特征集合和所述第二SQL特征集合分别包含若干所述第一SQL特征和若干所述第二SQL特征。
关键词是指SQL语句中具有特殊含义的单词或短语,如select、where、insert…into…、和update等。
进一步地,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一代码特征和所有所述第二代码特征的具体步骤包括:
配置函数调用库,所述函数调用库包含若干常用类,每个所述常用类包含若干常用方法;
分别获取执行所有所述历史操作信息和所述第一操作信息的若干第一函数和若干第二函数;基于所述函数调用库分别提取所有所述第一函数和所有所述第二函数的常用类和常用方法,获得按提取顺序排列的若干第一关键集合和若干第二关键集合,每个所述第一关键集合和第二关键集合分别包含若干所述第一代码特征和若干所述第二代码特征,每个所述第一代码特征包括若干第一常用类特征和若干第一常用方法特征,每个所述第二代码特征包括若干第二常用类特征和若干第二常用方法特征。
常用类是指在代码中,对具有共同属性和行为的一类事务的抽象描述,共同属性被描述为类中的数据成员,共同行为被描述为类中的成员函数,通常分为内部类、Object类、包装类、数学类、时间类、字符串、String Builder、StringBuffer和DecimalFormat。
常用方法是指具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
考虑用户可以根据不同的特征或结合不同的特征寻找目标数据和目标数据源,可以更具有针对性、更准确且快速的找到目标数据和目标数据源。
进一步地,基于所有所述历史数据集合和所述第一数据集合获得结果集合的具体步骤包括:
基于所有所述第一数据特征和所有所述第一数据特征获得第一子结果集合;基于所有所述第一SQL特征和所有所述第二SQL特征获得第二子结果集合;基于所有所述第一代码特征和基于所有所述第二代码特征获得第三子结果集合和第四子结果集合;基于所述第一子结果集合和/或所述第二子结果集合和/或所述第三子结果集合和/或所述第四子结果集合获得所述结果集合。
考虑数据源中存在大量数据,本方法计算数据源库中数据源与待连接数据源的数据特征的相似性,根据相似性进行排序,获得相似性最高的目标数据,可以准确且快速的找到目标数据和目标数据源。
进一步地,基于所有所述第一数据特征和所有所述第一数据特征获得第一子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一数据特征和所述第一数据集合中的所有所述第二数据特征的特征相似度,获得第一相似度集合,所述第一相似度集合包括若干数据特征相似度,基于所述第一相似度集合将所有所述数据特征相似度进行排序获得所述第一子结果集合。
考虑执行的SQL语句的不同,本方法计算数据源库中数据源与待连接数据源的SQL特征的结构相似性,根据结构相似性进行排序,获得结构相似性最高的目标数据,可以准确且快速的找到目标数据和目标数据源。
进一步地,基于所有所述第一SQL特征和所有所述第二SQL特征获得第二子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一SQL特征集合和所述第一数据集合中的所有所述第二SQL特征集合的SQL结构相似度,获得第二相似集合,所述第二相似集合包含若干SQL特征相似度,基于所述第二相似集合将所有所述SQL特征相似度进行排序获得所述第二子结果集合。
考虑调用函数的不同,本方法计算数据源库中数据源与待连接数据源的代码特征的相似性,根据相似性进行排序,获得相似性最高的目标数据,可以准确且快速的找到目标数据和目标数据源。
进一步地,基于所有所述第一代码特征和基于所有所述第二代码特征获得第三子结果集合的具体步骤包括:计算每个所述历史数据集合中的所有所述第一关键集合和所述第一数据集合中的所有所述第二关键集合的常用类相似度和常用方法相似度,获得第三相似集合,所述第三相似集合包含若干代码特征相似度,基于所述第三相似集合将所有所述代码特征相似度进行排序获得所述第三子结果集合。
考虑代码可能存在调用函数相同但顺序不同的场景,本方法将调用函数的顺序添加到计算因子,计算数据源库中数据源与待连接数据源的代码特征的结构相似性,根据结构相似性进行排序,获得结构相似性最高的目标数据,可以更加准确且快速的找到目标数据和目标数据源。
进一步地,基于所有所述第一代码特征和基于所有所述第二代码特征获得第四子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一关键集合和所述第一数据集合中的所有所述第二关键集合的常用类结构相似度和常用方法结构相似度,获得第四相似集合,所述第四相似集合包含若干代码结构特征相似度,基于所述第四相似集合将所有所述代码结构特征相似度进行排序获得所述第四子结果集合。
考虑需同时连接多个数据源或跨数据源使用的场景,本方法将需同时打开的数据源添加同源标签,可同时连接多个数据源,用户可同时使用多个数据源,且不需另存连接信息或空间,减少资源的占用。
进一步地,所述方法还包括:
若所述待连接数据源打开成功,且所述待连接数据源的数量大于一,则添加所述待连接数据源的同源标签,所述同源标签用于同时打开多个关联的数据源。
本发明还提供一种多数据源切换的***,所述***包括:
资源模块:用于配置数据源库,所述数据源库包含若干数据源,每个所述数据源均对应一个第一信息,所述第一信息包括第一地址、第一用户名、第一密码、第一类型和第一唯一标识;
连接模块:用于获取待连接数据源的第二信息,判断所述第二信息是否包括所述第一唯一标识;
若所述第二信息包括所述第一唯一标识,则判断所述第二信息与所述第一信息是否一致,若是则连接所述待连接数据源,若否则返回错误信息;
若所述第二信息不包括所述第一唯一标识,则基于所述第二信息进行所述待连接数据源的连接测试,若连接测试成功则创建所述待连接数据源,将所述待连接数据源添加至所述数据源库,生成所述待连接数据源的第二唯一标识,连接所述待连接数据源,若连接测试失败则返回错误信息;
处理模块:用于若所述待连接数据源连接成功,则分别获取所述数据源库中所有所述数据源的若干历史操作信息和所述待连接数据源的第一操作信息,分别提取所有所述历史操作信息和所述第一操作信息的数据,获得若干历史数据集合和第一数据集合,每个所述历史数据集合包括若干第一数据特征、若干第一SQL特征和若干第一代码特征,所述数据源与所述历史数据集合一一对应,所述第一数据集合包括若干第二数据特征、若干第二SQL特征和若干第二代码特征;
切换模块:用于基于所有所述历史数据集合和所述第一数据集合获得结果集合,基于所述结果集合获得切换数据源,将所述待连接数据源更新为所述切换数据源。
本***的原理和效果与本方法相似,对于本***不进行相应的赘述。
本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
1.先判断待连接数据源是否存在、是否连接信息正确和是否连接成功,可以保证数据源的有效性。
2.获取数据源库中数据源的数据特征,可以了解每个数据源中存储的数据,根据数据特征找到目标数据和目标数据源。
3.获取数据源库中数据源的SQL特征和代码特征,可以了解每个数据源中的哪些数据进行了操作,进行了哪些操作,目前的操作进度,进而掌握数据源的数据操作和操作进度,同时可以根据SQL特征和代码特征找到目标数据和目标数据源。
4.计算数据特征的相似度,可以找到与目标数据最相似的数据和数据源。
5.计算SQL特征的结构相似度,可以找到与执行SQL语句最相似的目标数据和目标数据源。
6.计算代码特征的相似度,可以找到与调用函数最相似的目标数据和目标数据源。
7.计算代码特征的结构相似度,将调用函数的顺序加入计算,可以更准确的找到与调用函数最相似的目标数据和目标数据源。
8.将代码特征、SQL特征和代码特征结合使用,可以更有针对性、更准确和更快速的找到目标数据和目标数据源。
9.多数据源添加同源标签,可同时打开多个数据源,不需另存连接信息或空间,减少资源的占用。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;
图1是本发明中一种多数据源切换的方法的流程示意图;
图2是本发明中一种多数据源切换的方法中获得历史分类集合和第一分类集合的流程示意图;
图3是本发明中一种多数据源切换的方法中获得切换数据源的流程示意图;
图4是本发明中一种多数据源切换的***的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例1
参考图1-图3,本实施例提供了一种多数据源切换的方法,所述方法包括:
配置数据源库,所述数据源库包含若干数据源,每个所述数据源均对应一个第一信息,所述第一信息包括第一地址、第一用户名、第一密码、第一类型和第一唯一标识;
获取待连接数据源的第二信息,判断所述第二信息是否包括所述第一唯一标识;
若所述第二信息包括所述第一唯一标识,则判断所述第二信息与所述第一信息是否一致,若是则连接所述待连接数据源,若否则返回错误信息;
若所述第二信息不包括所述第一唯一标识,则基于所述第二信息进行所述待连接数据源的连接测试,若连接测试成功则创建所述待连接数据源,将所述待连接数据源添加至所述数据源库,生成所述待连接数据源的第二唯一标识,连接所述待连接数据源,若连接测试失败则返回错误信息;
若所述待连接数据源连接成功,则分别获取所述数据源库中所有所述数据源的若干历史操作信息和所述待连接数据源的第一操作信息,分别提取所有所述历史操作信息和所述第一操作信息的数据,获得若干历史数据集合和第一数据集合,每个所述历史数据集合包括若干第一数据特征、若干第一SQL特征和若干第一代码特征,所述数据源与所述历史数据集合一一对应,所述第一数据集合包括若干第二数据特征、若干第二SQL特征和若干第二代码特征;
其中,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一数据特征和所有所述第二数据特征的具体步骤包括:
分别获取所有所述历史操作信息和所述第一操作信息对应的若干历史数据和若干第一数据;基于预设分类规则将所有所述历史数据和所有所述第一数据进行分类,获得若干历史分类集合和若干第一分类集合;将所有所述历史分类集合和所有所述第一分类集合分别进行特征提取,获得所有所述第一数据特征和所有所述第二数据特征。本实施例中,预设分类规则可以为数据类型、数据用途和数据大小等,数据特征可以为字段、图案、颜色、图层和特殊值等。
基于所有所述历史数据集合和所述第一数据集合获得结果集合,基于所述结果集合获得切换数据源,将所述待连接数据源更新为所述切换数据源。
其中,基于所有所述历史数据集合和所述第一数据集合获得结果集合的具体步骤可以包括:
基于所有所述第一数据特征和所有所述第一数据特征获得第一子结果集合;基于所述第一子结果集合获得所述结果集合。
其中,基于所有所述第一数据特征和所有所述第一数据特征获得第一子结果集合的具体步骤包括:
根据相似度算法计算每个所述历史数据集合中的所有所述第一数据特征和所述第一数据集合中的所有所述第二数据特征的特征相似度,获得第一相似度集合,所述第一相似度集合包括若干数据特征相似度,基于所述第一相似度集合将所有所述数据特征相似度按大小进行排序获得所述第一子结果集合。本实施例中,相似度算法可以为欧几里德距离、曼哈顿距离或余弦相似度等相似度算法。
在更为具体的实施方案中,还可以记录数据特征的次数,根据次数进一步确定切换数据源。
实施例2
参考图1-图3,在实施例一的基础上,本实施例中,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一SQL特征和所有所述第二SQL特征的具体步骤包括:
分别获取执行所有所述历史操作信息和所述第一操作信息的若干第一SQL语句和若干第二SQL语句;分别提取所有所述第一SQL语句和所有所述第二SQL语句的关键词,获得按提取顺序排列的若干第一SQL特征集合和若干第二SQL特征集合,所述第一SQL特征集合与所述第一SQL语句一一对应,所述第二SQL特征集合与所述第二SQL语句一一对应,每个所述第一SQL特征集合和所述第二SQL特征集合分别包含若干所述第一SQL特征和若干所述第二SQL特征。本实施例中,SQL特征可以为关键词,即SQL语句中具有特殊含义的单词或短语。
基于所有所述历史数据集合和所述第一数据集合获得结果集合的具体步骤可以包括:
基于所有所述第一SQL特征和所有所述第二SQL特征获得第二子结果集合;基于所述第二子结果集合获得所述结果集合。
其中,基于所有所述第一SQL特征和所有所述第二SQL特征获得第二子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一SQL特征集合和所述第一数据集合中的所有所述第二SQL特征集合的SQL结构相似度,如第一SQL特征集合为{insert、into、where},第二SQL特征集合为{insert、into、where、order、by},进行结构的顺序匹配,其中前三个SQL特征相同且顺序也相同,则SQL结构相似度为3/5,获得第二相似集合,所述第二相似集合包含若干SQL特征相似度,基于所述第二相似集合将所有所述SQL特征相似度进行排序获得所述第二子结果集合。
在更为具体的实施方案中,还可以记录SQL特征的次数,根据次数进一步确定切换数据源。
实施例3
参考图1-图3,在上述实施例的基础上,本实施例中,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一代码特征和所有所述第二代码特征的具体步骤包括:
配置函数调用库,所述函数调用库包含若干常用类,每个所述常用类包含若干常用方法;
分别获取执行所有所述历史操作信息和所述第一操作信息的若干第一函数和若干第二函数;基于所述函数调用库分别提取所有所述第一函数和所有所述第二函数的常用类和常用方法,获得按提取顺序排列的若干第一关键集合和若干第二关键集合,每个所述第一关键集合和第二关键集合分别包含若干所述第一代码特征和若干所述第二代码特征,每个所述第一代码特征包括若干第一常用类特征和若干第一常用方法特征,每个所述第二代码特征包括若干第二常用类特征和若干第二常用方法特征。
基于所有所述历史数据集合和所述第一数据集合获得结果集合的具体步骤可以包括:
基于所有所述第一代码特征和基于所有所述第二代码特征获得第三子结果集合;基于所述第三子结果集合获得所述结果集合。
其中,基于所有所述第一代码特征和基于所有所述第二代码特征获得第三子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一关键集合和所述第一数据集合中的所有所述第二关键集合的常用类相似度和常用方法相似度,如第一关键集合为{Object、Object.toString、Object.equals、Object.clone},第二关键集合为{Object、Object.toString、Object.clone、Object.equals、Object.getClass},进行常用类相似度计算,均为Object,则常用类相似度为1,进行常用方法相似度计算,其中三个方法相同,则常用方法相似度为3/4,获得第三相似集合,所述第三相似集合包含若干代码特征相似度,基于所述第三相似集合将所有所述代码特征相似度进行排序获得所述第三子结果集合。
在更为具体的实施方案中,还可以记录常用类和常用方法的次数,根据次数进一步确定切换数据源。
实施例4
参考图1-图3,在上述实施例的基础上,本实施例中,基于所有所述历史数据集合和所述第一数据集合获得结果集合的具体步骤可以包括:
基于所有所述第一代码特征和基于所有所述第二代码特征获得第四子结果集合;基于所述第四子结果集合获得所述结果集合。
其中,基于所有所述第一代码特征和基于所有所述第二代码特征获得第四子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一关键集合和所述第一数据集合中的所有所述第二关键集合的常用类结构相似度和常用方法结构相似度,如第一关键集合为{Object、Object.toString、Object.equals、Object.clone},第二关键集合为{Object、Object.toString、Object.clone、Object.equals、Object.getClass},进行常用类相似度计算,均为Object且顺序相同,则常用类相似度为1,进行常用方法相似度计算,虽然其中三个常用方法相同,但顺序不同,则常用方法相似度为1/4,获得第四相似集合,所述第四相似集合包含若干代码结构特征相似度,基于所述第四相似集合将所有所述代码结构特征相似度进行排序获得第四子结果集合。
在更为具体的实施方案中,还可以记录常用类和常用方法的次数,根据次数进一步确定切换数据源。
实施例5
参考图1-图3,在上述实施例的基础上,本实施例中,上述技术方案可单独或结合使用,
基于所述第一子结果集合和/或所述第二子结果集合和/或所述第三子结果集合和/或所述第四子结果集合获得所述结果集合。
实施例6
在上述实施例的基础上,本实施例中,所述方法还包括:
若所述待连接数据源打开成功,且所述待连接数据源的数量大于一,则添加所述待连接数据源的同源标签,所述同源标签用于同时打开多个关联的数据源。
实施例7
参考图4,在上述实施例的基础上,本实施例提供了一种多数据源切换的***,所述***包括:
资源模块:用于配置数据源库,所述数据源库包含若干数据源,每个所述数据源均对应一个第一信息,所述第一信息包括第一地址、第一用户名、第一密码、第一类型和第一唯一标识;
连接模块:用于获取待连接数据源的第二信息,判断所述第二信息是否包括所述第一唯一标识;
若所述第二信息包括所述第一唯一标识,则判断所述第二信息与所述第一信息是否一致,若是则连接所述待连接数据源,若否则返回错误信息;
若所述第二信息不包括所述第一唯一标识,则基于所述第二信息进行所述待连接数据源的连接测试,若连接测试成功则创建所述待连接数据源,将所述待连接数据源添加至所述数据源库,生成所述待连接数据源的第二唯一标识,连接所述待连接数据源,若连接测试失败则返回错误信息;
处理模块:用于若所述待连接数据源连接成功,则分别获取所述数据源库中所有所述数据源的若干历史操作信息和所述待连接数据源的第一操作信息,分别提取所有所述历史操作信息和所述第一操作信息的数据,获得若干历史数据集合和第一数据集合,每个所述历史数据集合包括若干第一数据特征、若干第一SQL特征和若干第一代码特征,所述数据源与所述历史数据集合一一对应,所述第一数据集合包括若干第二数据特征、若干第二SQL特征和若干第二代码特征;
切换模块:用于基于所有所述历史数据集合和所述第一数据集合获得结果集合,基于所述结果集合获得切换数据源,将所述待连接数据源更新为所述切换数据源。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种多数据源切换的方法,其特征在于,所述方法包括:
配置数据源库,所述数据源库包含若干数据源,每个所述数据源均对应一个第一信息,所述第一信息包括第一地址、第一用户名、第一密码、第一类型和第一唯一标识;
获取待连接数据源的第二信息,判断所述第二信息是否包括所述第一唯一标识;
若所述第二信息包括所述第一唯一标识,则判断所述第二信息与所述第一信息是否一致,若是则连接所述待连接数据源,若否则返回错误信息;
若所述第二信息不包括所述第一唯一标识,则基于所述第二信息进行所述待连接数据源的连接测试,若连接测试成功则创建所述待连接数据源,将所述待连接数据源添加至所述数据源库,生成所述待连接数据源的第二唯一标识,连接所述待连接数据源,若连接测试失败则返回错误信息;
若所述待连接数据源连接成功,则分别获取所述数据源库中所有所述数据源的若干历史操作信息和所述待连接数据源的第一操作信息,分别提取所有所述历史操作信息和所述第一操作信息的数据,获得若干历史数据集合和第一数据集合,每个所述历史数据集合包括若干第一数据特征、若干第一SQL特征和若干第一代码特征,所述数据源与所述历史数据集合一一对应,所述第一数据集合包括若干第二数据特征、若干第二SQL特征和若干第二代码特征;
基于所有所述历史数据集合和所述第一数据集合获得结果集合,基于所述结果集合获得切换数据源,将所述待连接数据源更新为所述切换数据源。
2.根据权利要求1所述的一种多数据源切换的方法,其特征在于,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一数据特征和所有所述第二数据特征的具体步骤包括:
分别获取所有所述历史操作信息和所述第一操作信息对应的若干历史数据和若干第一数据;基于预设分类规则将所有所述历史数据和所有所述第一数据进行分类,获得若干历史分类集合和若干第一分类集合;将所有所述历史分类集合和所有所述第一分类集合分别进行特征提取,获得所有所述第一数据特征和所有所述第二数据特征。
3.根据权利要求2所述的一种多数据源切换的方法,其特征在于,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一SQL特征和所有所述第二SQL特征的具体步骤包括:
分别获取执行所有所述历史操作信息和所述第一操作信息的若干第一SQL语句和若干第二SQL语句;分别提取所有所述第一SQL语句和所有所述第二SQL语句的关键词,获得按提取顺序排列的若干第一SQL特征集合和若干第二SQL特征集合,所述第一SQL特征集合与所述第一SQL语句一一对应,所述第二SQL特征集合与所述第二SQL语句一一对应,每个所述第一SQL特征集合和所述第二SQL特征集合分别包含若干所述第一SQL特征和若干所述第二SQL特征。
4.根据权利要求3所述的一种多数据源切换的方法,其特征在于,将所有所述历史操作信息和所述第一操作信息分别进行提取获得所有所述第一代码特征和所有所述第二代码特征的具体步骤包括:
配置函数调用库,所述函数调用库包含若干常用类,每个所述常用类包含若干常用方法;
分别获取执行所有所述历史操作信息和所述第一操作信息的若干第一函数和若干第二函数;基于所述函数调用库分别提取所有所述第一函数和所有所述第二函数的常用类和常用方法,获得按提取顺序排列的若干第一关键集合和若干第二关键集合,每个所述第一关键集合和第二关键集合分别包含若干所述第一代码特征和若干所述第二代码特征,每个所述第一代码特征包括若干第一常用类特征和若干第一常用方法特征,每个所述第二代码特征包括若干第二常用类特征和若干第二常用方法特征。
5.根据权利要求4所述的一种多数据源切换的方法,其特征在于,基于所有所述历史数据集合和所述第一数据集合获得结果集合的具体步骤包括:
基于所有所述第一数据特征和所有所述第一数据特征获得第一子结果集合;基于所有所述第一SQL特征和所有所述第二SQL特征获得第二子结果集合;基于所有所述第一代码特征和基于所有所述第二代码特征获得第三子结果集合和第四子结果集合;基于所述第一子结果集合和/或所述第二子结果集合和/或所述第三子结果集合和/或所述第四子结果集合获得所述结果集合。
6.根据权利要求5所述的一种多数据源切换的方法,其特征在于,基于所有所述第一数据特征和所有所述第一数据特征获得第一子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一数据特征和所述第一数据集合中的所有所述第二数据特征的特征相似度,获得第一相似度集合,所述第一相似度集合包括若干数据特征相似度,基于所述第一相似度集合将所有所述数据特征相似度进行排序获得所述第一子结果集合。
7.根据权利要求5所述的一种多数据源切换的方法,其特征在于,基于所有所述第一SQL特征和所有所述第二SQL特征获得第二子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一SQL特征集合和所述第一数据集合中的所有所述第二SQL特征集合的SQL结构相似度,获得第二相似集合,所述第二相似集合包含若干SQL特征相似度,基于所述第二相似集合将所有所述SQL特征相似度进行排序获得所述第二子结果集合。
8.根据权利要求5所述的一种多数据源切换的方法,其特征在于,基于所有所述第一代码特征和基于所有所述第二代码特征获得第三子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一关键集合和所述第一数据集合中的所有所述第二关键集合的常用类相似度和常用方法相似度,获得第三相似集合,所述第三相似集合包含若干代码特征相似度,基于所述第三相似集合将所有所述代码特征相似度进行排序获得所述第三子结果集合。
9.根据权利要求5所述的一种多数据源切换的方法,其特征在于,基于所有所述第一代码特征和基于所有所述第二代码特征获得第四子结果集合的具体步骤包括:
计算每个所述历史数据集合中的所有所述第一关键集合和所述第一数据集合中的所有所述第二关键集合的常用类结构相似度和常用方法结构相似度,获得第四相似集合,所述第四相似集合包含若干代码结构特征相似度,基于所述第四相似集合将所有所述代码结构特征相似度进行排序获得所述第四子结果集合。
10.根据权利要求1所述的一种多数据源切换的方法,其特征在于,所述方法还包括:
若所述待连接数据源打开成功,且所述待连接数据源的数量大于一,则添加所述待连接数据源的同源标签,所述同源标签用于同时打开多个关联的数据源。
11.一种多数据源切换的***,其特征在于,所述***包括:
资源模块:用于配置数据源库,所述数据源库包含若干数据源,每个所述数据源均对应一个第一信息,所述第一信息包括第一地址、第一用户名、第一密码、第一类型和第一唯一标识;
连接模块:用于获取待连接数据源的第二信息,判断所述第二信息是否包括所述第一唯一标识;
若所述第二信息包括所述第一唯一标识,则判断所述第二信息与所述第一信息是否一致,若是则连接所述待连接数据源,若否则返回错误信息;
若所述第二信息不包括所述第一唯一标识,则基于所述第二信息进行所述待连接数据源的连接测试,若连接测试成功则创建所述待连接数据源,将所述待连接数据源添加至所述数据源库,生成所述待连接数据源的第二唯一标识,连接所述待连接数据源,若连接测试失败则返回错误信息;
处理模块:用于若所述待连接数据源连接成功,则分别获取所述数据源库中所有所述数据源的若干历史操作信息和所述待连接数据源的第一操作信息,分别提取所有所述历史操作信息和所述第一操作信息的数据,获得若干历史数据集合和第一数据集合,每个所述历史数据集合包括若干第一数据特征、若干第一SQL特征和若干第一代码特征,所述数据源与所述历史数据集合一一对应,所述第一数据集合包括若干第二数据特征、若干第二SQL特征和若干第二代码特征;
切换模块:用于基于所有所述历史数据集合和所述第一数据集合获得结果集合,基于所述结果集合获得切换数据源,将所述待连接数据源更新为所述切换数据源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410005451.8A CN117493378B (zh) | 2024-01-03 | 2024-01-03 | 一种多数据源切换的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410005451.8A CN117493378B (zh) | 2024-01-03 | 2024-01-03 | 一种多数据源切换的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117493378A CN117493378A (zh) | 2024-02-02 |
CN117493378B true CN117493378B (zh) | 2024-03-08 |
Family
ID=89676855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410005451.8A Active CN117493378B (zh) | 2024-01-03 | 2024-01-03 | 一种多数据源切换的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493378B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408899A (zh) * | 2008-11-21 | 2009-04-15 | 北京中企开源信息技术有限公司 | 一种网站多数据源切换方法和装置 |
WO2020115864A1 (ja) * | 2018-12-06 | 2020-06-11 | 株式会社日立製作所 | データ管理方法、データ管理システム及びプログラム |
CN113986950A (zh) * | 2021-10-27 | 2022-01-28 | 建信金融科技有限责任公司 | 一种sql语句处理方法、装置、设备及存储介质 |
CN114942933A (zh) * | 2022-04-14 | 2022-08-26 | 中国银行股份有限公司 | 一种自动更新数据库的方法及相关装置 |
CN115374083A (zh) * | 2022-08-22 | 2022-11-22 | 平安壹钱包电子商务有限公司 | 数据源的切换方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372891B2 (en) * | 2013-12-13 | 2016-06-21 | Red Hat, Inc. | System and method for querying hybrid multi data sources |
-
2024
- 2024-01-03 CN CN202410005451.8A patent/CN117493378B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408899A (zh) * | 2008-11-21 | 2009-04-15 | 北京中企开源信息技术有限公司 | 一种网站多数据源切换方法和装置 |
WO2020115864A1 (ja) * | 2018-12-06 | 2020-06-11 | 株式会社日立製作所 | データ管理方法、データ管理システム及びプログラム |
CN113986950A (zh) * | 2021-10-27 | 2022-01-28 | 建信金融科技有限责任公司 | 一种sql语句处理方法、装置、设备及存储介质 |
CN114942933A (zh) * | 2022-04-14 | 2022-08-26 | 中国银行股份有限公司 | 一种自动更新数据库的方法及相关装置 |
CN115374083A (zh) * | 2022-08-22 | 2022-11-22 | 平安壹钱包电子商务有限公司 | 数据源的切换方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
张宾."集成SH架构中多数据源问题的研究".《成都信息工程学院学报》.2008,第23卷(第2期),第157-161页. * |
Also Published As
Publication number | Publication date |
---|---|
CN117493378A (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115563287B (zh) | 一种获取关联对象的数据处理*** | |
CN110532353B (zh) | 基于深度学习的文本实体匹配方法、***、装置 | |
US20050267902A1 (en) | Database and method of generating same | |
CN108829780B (zh) | 文本检测方法、装置、计算设备及计算机可读存储介质 | |
GB2331816A (en) | Searching a database using a phonetically encoded inverted index | |
WO2007008987A1 (en) | Molecular keyword indexing for chemical structure database storage, searching and retrieval | |
CN107239450B (zh) | 基于交互上下文处理自然语言方法 | |
EP3748507B1 (en) | Automated software testing | |
JP2012230713A (ja) | 検索方法、類似度計算方法、類似度計算及び同一文書照合システムと、そのプログラム | |
CN110969517B (zh) | 一种招投标生命周期关联方法、***、存储介质及计算机设备 | |
EP3699779A1 (en) | Error correction method and apparatus, and computer readable medium | |
CN109885641A (zh) | 一种数据库中文全文检索的方法及*** | |
CN114691721A (zh) | 图数据的查询方法、装置、电子设备及存储介质 | |
CN108062422A (zh) | 一种分页查询的排序方法、智能终端、***及存储介质 | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
CN117493378B (zh) | 一种多数据源切换的方法及*** | |
CN110196952B (zh) | 程序代码的搜索处理方法、装置、设备及存储介质 | |
US20220284172A1 (en) | Machine learning technologies for structuring unstructured data | |
CN114816518A (zh) | 基于simhash的源代码中开源成分筛选识别方法及*** | |
CN107203512B (zh) | 用于从用户的自然语言输入中提取关键元素的方法 | |
CN112417091A (zh) | 一种文本检索方法及装置 | |
US10261972B2 (en) | Methods and systems for similarity matching | |
CN117725087B (zh) | 一种基于重排序的代码搜索去偏差方法及*** | |
US11120054B2 (en) | Hierarchical label generation for data entries | |
KR102661768B1 (ko) | 추천 질의문 생성 방법 |
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 |