CN112363994A - 数据库的处理方法、装置、电子装置和存储介质 - Google Patents
数据库的处理方法、装置、电子装置和存储介质 Download PDFInfo
- Publication number
- CN112363994A CN112363994A CN202011164002.6A CN202011164002A CN112363994A CN 112363994 A CN112363994 A CN 112363994A CN 202011164002 A CN202011164002 A CN 202011164002A CN 112363994 A CN112363994 A CN 112363994A
- Authority
- CN
- China
- Prior art keywords
- sql
- database
- databases
- acquiring
- configuration
- 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 33
- 238000012545 processing Methods 0.000 claims abstract description 57
- 238000013467 fragmentation Methods 0.000 claims abstract description 30
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000013508 migration Methods 0.000 claims description 27
- 230000005012 migration Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 15
- 239000012634 fragment Substances 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种数据库的处理方法、装置、电子装置和存储介质,其中,该处理方法包括:获取结构化查询语言SQL语句并进行解析;利用预设的分片规则配置,获取到该SQL语句中的N个数据库,并获取与该N个数据库相匹配的N个SQL执行结果;其中,N为大于1的自然数;将该N个SQL执行结果进行合并处理,进而得到数据库处理结果。通过本申请,解决了数据库的处理效率低的问题,实现了高效、准确的分表分库数据处理。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及数据库的处理方法、装置、电子装置和存储介质。
背景技术
目前,单一的数据库服务器已经不足以存储所有的数据,所以需要按照一系列规则对数据库做分库分表的处理,以提高数据库操作的性能。在相关技术中,有很多开源框架可以实现分库分表以及数据的迁移,例如Sharding-JDBC,在Java的JDBC层提供的额外服务,它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖。然而,Sharding-JDBC不支持数据迁移,当需要数据迁移时,仍然需要开发者进行额外的大量工作,导致在相关技术中数据库的效率较低。
针对相关技术中数据库的处理效率低的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据库的处理方法、装置、电子装置和存储介质,以至少解决相关技术中数据库的处理效率低的问题。
第一方面,本申请实施例提供了一种数据库的处理方法,所述方法包括:
获取结构化查询语言(Structured Query Language,简称为SQL)语句并进行解析;
利用预设的分片规则配置,获取到所述SQL语句中的N个数据库,并获取与所述N个数据库相匹配的N个SQL执行结果;其中,N为大于1的自然数;
将所述N个SQL执行结果进行合并处理,进而得到数据库处理结果。
在其中一些实施例中,所述获取与所述N个数据库相匹配的N个SQL执行结果之后,所述将所述N个SQL执行结果进行合并处理之前,所述方法还包括:
根据所述分片规则配置,将所述N个数据库的名称,均改写为所述分片规则配置中的规则名称。
在其中一些实施例中,所述获取SQL语句并进行解析包括:
获取需要解析的所述SQL语句;
在根据获取的所述SQL语句检测到需要分库的情况下,根据分库规则对所述SQL语句进行解析;或者,
在根据获取的所述SQL语句检测到需要分表的情况下,根据分表规则对所述SQL语句进行解析。
在其中一些实施例中,所述利用预设的分片规则配置,获取所述SQL语句中的N个数据库之前,所述方法还包括:
在检测到不需要分库且不需要分表的情况下,直接获取所述SQL语句的执行结果,进而得到所述数据库处理结果。
在其中一些实施例中,所述得到所述数据库处理结果之后,所述方法还包括:
在利用数据迁移模块进行数据迁移的情况下,通过数据双写得到所述N个数据库之间的同步结果。
在其中一些实施例中,所述利用预设的分片规则配置,获取所述SQL语句中的N个数据库之前,所述方法还包括:
将所述分片规则配置、数据源配置、所述数据源配置的代理配置,均注入到项目配置文件中。
在其中一些实施例中,所述获取与所述N个数据库相匹配的N个SQL执行结果包括:
利用数据库路由获取所述N个SQL执行结果。
第二方面,本申请实施例提供了一种数据库的处理装置,所述装置包括:SQL解析模块、分片规则模块和结果模块;
所述SQL解析模块,用于获取SQL语句并进行解析;
所述分片规则模块,用于利用预设的分片规则配置,获取到所述SQL语句中的N个数据库,并获取与所述N个数据库相匹配的N个SQL执行结果;其中,N为大于1的自然数;
所述结果模块,用于将所述N个SQL执行结果进行合并处理,进而得到数据库处理结果。
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的数据库的处理方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的数据库的处理方法。
相比于相关技术,本申请实施例提供的一种数据库的处理方法、装置、电子装置和存储介质,通过获取结构化查询语言SQL语句并进行解析;利用预设的分片规则配置,获取到该SQL语句中的N个数据库,并获取与该N个数据库相匹配的N个SQL执行结果;其中,N为大于1的自然数;将该N个SQL执行结果进行合并处理,进而得到数据库处理结果,解决了数据库的处理效率低的问题,实现了高效、准确的分表分库数据处理。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为根据本申请实施例的一种应用场景的示意图;
图2为根据本申请实施例的一种数据库处理方法的流程图;
图3为根据本申请实施例的一种分表分库框架的示意图;
图4为根据本申请实施例的另一种数据库处理方法的流程图;
图5为根据本申请实施例的又一种数据库处理方法的流程图;
图6为根据本申请优选实施例的一种数据库处理架构的示意图;
图7为根据本申请优选实施例的一种数据库处理方法的流程图;
图8为根据本申请实施例的一种数据库处理装置的结构框图;
图9为根据本发明实施例的一种计算机设备内部的结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的数据库处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器14通过网络进行通信。终端102获取SQL语句;服务器104利用预设的分片规则配置,获取该SQL语句中的不同数据库连接,并通过数据库路由分别执行不同数据库的SQL语句,将执行结果合并处理后得到数据库处理结果;该服务器104将该数据库处理结果发送至该终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在本实施例中,提供了一种数据库的处理方法,图2为根据本申请实施例的一种数据库处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取SQL语句并进行解析。其中,用户可以通过终端102输入SOL语句,包括增加、删除、更改、查询SQL语句等操作。
步骤S204,利用预设的分片规则配置,获取该SQL语句中的N个数据库;其中,N为大于1的自然数。
需要说明的是,该分片规则配置为本申请中设计搭建的分表分库框架中的配置;图3为根据本申请实施例的一种分表分库框架的示意图,如图3所示,根据需求可以将该分表分库框架分为八个模块:数据源配置、分片规则配置、持久层代理配置、数据库路由、分布式事务模块、结果合并模块、数据迁移模块和数据水平扩展模块。
其中,在通过Maven,将该分表分库框架依赖导入到开发人员项目后,可以将该分片规则配置、数据源配置、该数据源配置的代理配置,均注入到项目配置文件中,并配置注解使用,因此开发人员也可以对于该分表分库框架中的类进行一些功能的增强。
此外,数据库路由和结果合并模块,可以让开发人员像操作单表一样来操作多库多表;分布式事务模块可以让开发人员像平常开发一样,多数据库的事务像操作单数据库一致;数据迁移模块可以在存储有原始数据时,进行平滑的存量数据迁移以及增量数据同步;数据扩展模块可以让开发人员在遇到分库分表后的性能瓶颈后继续平滑的扩展。
可选地,该分表分库框架中的分片规则配置可以利用常用分片算法实现;例如,利用哈希取模算法的多条记录分片字段的哈希取模的值,进而实现分片规则的设置;此外,还可以通过字符串范围取模分片算法或简单取模等分片算法实现配置。
步骤S204,获取与该N个数据库相匹配的N个SQL执行结果;将该N个SQL执行结果进行合并处理,进而得到数据库处理结果。
其中,SQL执行结果可以是任意SQL语句的增、删、改、查操作结果;在本实施例中,可以利用分库分表框架的数据库路由获取该N个SQL执行结果,并且可以利用该分库分表框架的结果合并模块进行合并处理;具体地,结果合并处理中需要根据解析的语句排序、函数顺序等对各SQL执行结果进行排序合并,合并得到的数据库处理结果可以反馈给终端102,或者存储在服务器104中。可以理解的是,通过该分库分表框架,可以自动获取不同数据库连接,执行不同数据库中的SQL语句,以及进行结果合并处理,因此无需开发人员进行过多的操作。
在相关技术中,在项目后期需要进行分库分表时,通常通过依赖大的框架,例如Sharding-JDBC来分库分表,并且需要开发人员进行额外的大量工作,导致数据库的处理效率低下。
而本申请实施例通过上述步骤S202至步骤S204,利用分表分库框架的分片规则配置,获取到不同数据库连接,并分别执行不同数据库的SQL语句,最终合并处理执行结果,以得到数据库处理结果,实现了分库后的事务原子性,使得开发人员无需担心分库后事务的原子性。并且,对于任意SQL语句中的增、删、改、查操作,都可以通过将该分库分表操作导入开发项目,使得开发人员可以像操作单表一样操作多库多表,不改变开发的思维方式,从而避免了分库分表带来的技术难点问题以及后期进行数据扩展迁移时的麻烦,解决了数据库的处理效率低的问题,实现了高效、准确的分表分库数据处理。
在其中一些实施例中,提供了一种数据库的处理方法,图4为根据本申请实施例的另一种数据库处理方法的流程图,如图4所示,该流程包括如下步骤:
步骤S402,根据该分片规则配置,将该N个数据库的名称,均改写为该分片规则配置中的规则名称;其中,进行改写SQL语句中的数据库和数据库表名称为执行配置的规则名称;需要说明的是,在开发人员导入分表分库框架到项目中后,可以根据实际需要修改或设置该分片规则配置,以便自适应进行SQL改写。
通过上述步骤S402,利用分表分库框架中的分片规则配置,直接改写SQL语句中不同数据库表名,而开发人员在这一过程中只需要修改该分片规则配置,就能实现SQL改写,从而减少了开发人员的开发工作量,进一步提高了数据库的处理效率。
在其中一些实施例中,提供了一种数据库的处理方法,图5为根据本申请实施例的又一种数据库处理方法的流程图,如图5所示,该流程包括如下步骤:
步骤S502,获取需要解析的该SQL语句;在根据获取的SQL语句检测到需要分库的情况下,根据分库规则对SQL语句进行解析;或者,在根据该获取的SQL语句检测到需要分表的情况下,根据分表规则对SQL语句进行解析。
其中,该分库规则和该分表规则,可以设置为垂直切分模式,即把单一的表拆分成多个表,并分散到不同的数据库上;或者,可以设置为水平切分模式,即根据表中数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库上。需要说明的是,在检测到不需要分库且不需要分表的情况下,说明数据库部署较为合理,无需进行分库分表,因此可以直接获取该SQL语句的执行结果,并该执行结果作为上述数据库处理结果。
通过上述步骤S502,获取到不同数据库连接之前,可以预先判断是否要分表分库,并通过分库规则或分表规则对获取的SQL语句进行解析,从而实现了在分库分表之前的自动判断,避免了数据库的冗余操作,进一步提高了数据库处理的效率。
在其中一些实施例中,在得到该数据库处理结果之后,该数据库处理方法还包括如下步骤:在利用数据迁移模块进行数据迁移的情况下,通过数据双写得到该N个数据库之间的同步结果。
其中,数据迁移是一种将离线存储与在线存储融合的技术,它将高速、高容量的非在线存储设备作为磁盘设备的下一级设备,然后将磁盘中常用的数据按指定的策略自动迁移到磁带库(简称带库)等二级大容量存储设备上;在迁移的同时还会有数据的写入,由于数据应该保证完整性,也就是说在迁移之后需要保证新的库和旧的库的数据是一致的,并且迁移的过程需要做到可以回滚,这样一旦迁移的过程中出现问题,可以立刻回滚到源库不会对系统的可用性造成影响,因此在数据迁移过程中还需要利用数据双写来保证不同数据库之间的同步。
通过上述实施例,通过数据双写,提供数据迁移的存量数据迁移,以及增量数据的同步实现,使得开发者可以直接通过本框架平滑的从单表过渡到多库多表,从而提高了数据库处理中分库分表的准确性。
应该理解的是,虽然图2、图4和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4和图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
下面结合实际应用场景对本发明的实施例进行详细说明:在实际项目开发过程中,开发人员通过Maven,将分库分表框架依赖导入到开发者项目中,然后将数据源配置、分片配置、以及代理的配置注入到配置文件中,并配置注解使用,开发者也可以对于框架中的类进行一些功能的增强。其中,该分库分表框架可以包括三个部分:配置层、路由层和数据层;在配置层可以进行数据源配置、分片规则配置,以及持久层代理的配置;路由层进行分库分表后的数据操作路由;数据层则进行数据迁移、数据扩展的操作。本实施例中,该分库分表框架支持Java语言进行,且基于Spring框架以及MyBatis框架搭建的项目。
图6为根据本申请优选实施例的一种数据库处理架构的示意图,如图6所示,多个项目分布部署在数据库上,且多个项目之间业务代码相同;每个项目内部实现功能包括:分片规则配置、SQL解析、SQL路由、SQL改写、结果归并和数据双写。
图7为根据本申请优选实施例的一种数据库处理方法的流程图,如图7所示,该数据库处理方法的具体实施步骤如下:
步骤S702,获取到需要解析的SQL语句;其中,开发人员在项目中输入增删改查操作的SQL语句。
步骤S704,判断是否需要分库;若是,则获取到分库规则,然后执行步骤S708。若分库判断结果为否,即说明不需要分库,则判断是否需要分表,若是,获取到分表规则,然后执行步骤S708。
步骤S706,若分表结果判断为否,则执行SQL语句,然后直接执行步骤S714。
步骤S708,解析SQL语句;根据分库分表的规则获取到不同数据库连接。
步骤S710,将SQL语句中的数据库和数据库表名称改写为执行配置的规则名称。
步骤S712,利用数据库路由,分别执行不同数据库的的SQL语句;合并执行结果,然后执行步骤S714。
步骤S714,返回结果。
需要说明的是,随着公司业务量的增加,无法避免数据逐渐增加的问题。另外类似于订单轨迹、埋点之类的数据,可能会导致需要处理的数据达到几千万甚至亿级别。如果还是使用单表进行一个查询,那么性能是非常差的。在这种情况下,需要对单表进行分库分表操作;但是如果一个前期使用单表的,并且数据量达到了亿级,进行一次分库分表迁移和操作,代价是很大的,对于开发的挑战也非常大,分库分表后期的一个水平扩展也是一个工程量比较大的点,甚至可能会停机维护,这是无法接受的。
本申请优选实施例中,通过上述分库分表框架,基于Java语言,为使用JDBC连接协议连接数据库的项目提供分库分表平滑迁移与水平扩展的功能;如果需要分库分表,开发人员只需要在项目中接入本框架即可,使用方式与原有方式基本一致,无需开发进行过多的操作,且通过分库分表框架可以实现数据平滑的迁移。
本实施例还提供了一种数据库处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8为根据本申请实施例的一种数据库处理装置的结构框图,如图8所示,该装置包括:SQL解析模块82、分片规则模块84和结果模块86。
该SQL解析模块82,用于获取SQL语句并进行解析;该分片规则模块84,用于利用预设的分片规则配置,获取到SQL语句中的N个数据库,并获取与该N个数据库相匹配的N个SQL执行结果;其中,N为大于1的自然数;该结果模块86,用于将该N个SQL执行结果进行合并处理,进而得到数据库处理结果。
通过上述实施例,分片规则模块84利用分表分库框架的分片规则配置,获取到不同数据库连接,并分别执行不同数据库的SQL语句,最终,通过结果模块合并处理执行结果,以得到数据库处理结果,从而实现了分库后的事务原子性,使得开发人员无需担心分库后事务的原子性。并且,对于任意SQL语句中的增、删、改、查操作,都可以通过将该分库分表操作导入开发项目,使得开发人员可以像操作单表一样操作多库多表,不改变开发的思维方式,从而避免了分库分表带来的技术难点问题以及后期进行数据扩展迁移时的麻烦,解决了数据库的处理效率低的问题,实现了高效、准确的分表分库数据处理。
在其中一些实施例中,该处理装置还包括改写模块;该改写模块用于根据该分片规则配置,将该N个数据库的名称,均改写为该分片规则配置中的规则名称。
在其中一些实施例中,该处理装置还包括解析模块;该解析模块用于获取需要解析的该SQL语句;该解析模块在根据获取的该SQL语句检测到需要分库的情况下,根据分库规则对该SQL语句进行解析;或者,在根据获取的该SQL语句检测到需要分表的情况下,根据分表规则对该SQL语句进行解析。
在其中一些实施例中,该解析模块还用于在检测到不需要分库且不需要分表的情况下,直接获取该SQL语句的执行结果,进而得到该数据库处理结果。
在其中一些实施例中,该处理装置还包括同步模块;该同步模块用于在利用数据迁移模块进行数据迁移的情况下,通过数据双写得到该N个数据库之间的同步结果。
在其中一些实施例中,该处理装置还包括配置模块;该配置模块用于将该分片规则配置、数据源配置、该数据源配置的代理配置,均注入到项目配置文件中。
在其中一些实施例中,该SQL执行模块84还用于利用数据库路由获取该N个SQL执行结果。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在其中一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,图9为根据本发明实施例的一种计算机设备内部的结构图,如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储分片规则配置。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库的处理方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取SQL语句并进行解析;
S2,利用预设的分片规则配置,获取该SQL语句中的N个数据库,并获取与该N个数据库相匹配的N个SQL执行结果;其中,N为大于1的自然数。
S3,将该N个SQL执行结果进行合并处理,进而得到数据库处理结果。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的数据库的处理方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种数据库的处理方法。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据库的处理方法,其特征在于,所述方法包括:
获取结构化查询语言SQL语句并进行解析;
利用预设的分片规则配置,获取所述SQL语句中的N个数据库,并获取与所述N个数据库相匹配的N个SQL执行结果;其中,N为大于1的自然数;
将所述N个SQL执行结果进行合并处理,进而得到数据库处理结果。
2.根据权利要求1所述的处理方法,其特征在于,所述利用预设的分片规则配置,获取所述SQL语句中的N个数据库之后,所述获取与所述N个数据库相匹配的N个SQL执行结果之前,所述方法还包括:
根据所述分片规则配置,将所述N个数据库的名称,均改写为所述分片规则配置中的规则名称。
3.根据权利要求1所述的处理方法,其特征在于,所述获取结构化查询语言SQL语句并进行解析包括:
获取需要解析的所述SQL语句;
在根据获取的所述SQL语句检测到需要分库的情况下,根据分库规则对所述SQL语句进行解析;或者,
在根据获取的所述SQL语句检测到需要分表的情况下,根据分表规则对所述SQL语句进行解析。
4.根据权利要求3所述的处理方法,其特征在于,所述利用预设的分片规则配置,获取所述SQL语句中的N个数据库之前,所述方法还包括:
在检测到不需要分库且不需要分表的情况下,直接获取所述SQL语句的执行结果,进而得到所述数据库处理结果。
5.根据权利要求1所述的处理方法,其特征在于,所述得到所述数据库处理结果之后,所述方法还包括:
在利用数据迁移模块进行数据迁移的情况下,通过数据双写得到所述N个数据库之间的同步结果。
6.根据权利要求1所述的处理方法,其特征在于,所述利用预设的分片规则配置,获取所述SQL语句中的N个数据库之前,所述方法还包括:
将所述分片规则配置、数据源配置、所述数据源配置的代理配置,均注入到项目配置文件中。
7.根据权利要求1至6任一项所述的处理方法,其特征在于,所述获取与所述N个数据库相匹配的N个SQL执行结果包括:
利用数据库路由获取所述N个SQL执行结果。
8.一种数据库的处理装置,其特征在于,所述装置包括:SQL解析模块、分片规则模块和结果模块;
所述SQL解析模块,用于获取SQL语句并进行解析;
所述分片规则模块,用于利用预设的分片规则配置,获取所述SQL语句中的N个数据库,并获取与所述N个数据库相匹配的N个SQL执行结果;其中,N为大于1的自然数;
所述结果模块,用于将所述N个SQL执行结果进行合并处理,进而得到数据库处理结果。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的数据库的处理方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项所述的数据库的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011164002.6A CN112363994A (zh) | 2020-10-27 | 2020-10-27 | 数据库的处理方法、装置、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011164002.6A CN112363994A (zh) | 2020-10-27 | 2020-10-27 | 数据库的处理方法、装置、电子装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112363994A true CN112363994A (zh) | 2021-02-12 |
Family
ID=74510889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011164002.6A Pending CN112363994A (zh) | 2020-10-27 | 2020-10-27 | 数据库的处理方法、装置、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363994A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925841A (zh) * | 2021-03-26 | 2021-06-08 | 瀚高基础软件股份有限公司 | 分布式jdbc实现方法、设备及计算机可读存储介质 |
CN113297250A (zh) * | 2021-05-28 | 2021-08-24 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库多表关联查询的方法及系统 |
CN113407519A (zh) * | 2021-07-17 | 2021-09-17 | 广州汇思信息科技股份有限公司 | 一种数据库的适配装置、装置、计算机设备和存储介质 |
CN113448948A (zh) * | 2021-07-12 | 2021-09-28 | 中国银行股份有限公司 | 数据迁移方法及装置 |
CN114238322A (zh) * | 2021-12-10 | 2022-03-25 | 安徽兆尹信息科技股份有限公司 | 一种基于Sharding-JDBC内核的数据库分库分表插入方法 |
CN114676141A (zh) * | 2022-03-31 | 2022-06-28 | 北京泰迪熊移动科技有限公司 | 一种数据处理方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682021A (zh) * | 2015-11-09 | 2017-05-17 | 五八同城信息技术有限公司 | 数据库迁移方法及装置 |
CN108205559A (zh) * | 2016-12-19 | 2018-06-26 | 腾讯科技(深圳)有限公司 | 一种数据管理方法及其设备 |
CN108628986A (zh) * | 2018-04-27 | 2018-10-09 | 深圳市牛鼎丰科技有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN110046181A (zh) * | 2019-03-13 | 2019-07-23 | 平安科技(深圳)有限公司 | 基于数据库分布式存储的数据路由的方法和装置 |
CN110990400A (zh) * | 2019-11-20 | 2020-04-10 | 浙江大搜车软件技术有限公司 | 数据库查询方法、装置、计算机设备和存储介质 |
CN111209280A (zh) * | 2019-12-31 | 2020-05-29 | 上海钧正网络科技有限公司 | 一种分库分表方法及设备 |
-
2020
- 2020-10-27 CN CN202011164002.6A patent/CN112363994A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682021A (zh) * | 2015-11-09 | 2017-05-17 | 五八同城信息技术有限公司 | 数据库迁移方法及装置 |
CN108205559A (zh) * | 2016-12-19 | 2018-06-26 | 腾讯科技(深圳)有限公司 | 一种数据管理方法及其设备 |
CN108628986A (zh) * | 2018-04-27 | 2018-10-09 | 深圳市牛鼎丰科技有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN110046181A (zh) * | 2019-03-13 | 2019-07-23 | 平安科技(深圳)有限公司 | 基于数据库分布式存储的数据路由的方法和装置 |
CN110990400A (zh) * | 2019-11-20 | 2020-04-10 | 浙江大搜车软件技术有限公司 | 数据库查询方法、装置、计算机设备和存储介质 |
CN111209280A (zh) * | 2019-12-31 | 2020-05-29 | 上海钧正网络科技有限公司 | 一种分库分表方法及设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925841A (zh) * | 2021-03-26 | 2021-06-08 | 瀚高基础软件股份有限公司 | 分布式jdbc实现方法、设备及计算机可读存储介质 |
CN113297250A (zh) * | 2021-05-28 | 2021-08-24 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库多表关联查询的方法及系统 |
CN113448948A (zh) * | 2021-07-12 | 2021-09-28 | 中国银行股份有限公司 | 数据迁移方法及装置 |
CN113407519A (zh) * | 2021-07-17 | 2021-09-17 | 广州汇思信息科技股份有限公司 | 一种数据库的适配装置、装置、计算机设备和存储介质 |
CN114238322A (zh) * | 2021-12-10 | 2022-03-25 | 安徽兆尹信息科技股份有限公司 | 一种基于Sharding-JDBC内核的数据库分库分表插入方法 |
CN114238322B (zh) * | 2021-12-10 | 2024-04-12 | 安徽兆尹信息科技股份有限公司 | 一种基于Sharding-JDBC内核的数据库分库分表插入方法 |
CN114676141A (zh) * | 2022-03-31 | 2022-06-28 | 北京泰迪熊移动科技有限公司 | 一种数据处理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112363994A (zh) | 数据库的处理方法、装置、电子装置和存储介质 | |
US9135289B2 (en) | Matching transactions in multi-level records | |
US7984042B2 (en) | System and method for providing highly available database performance | |
CN112905595A (zh) | 一种数据查询方法、装置及计算机可读存储介质 | |
US7822710B1 (en) | System and method for data collection | |
CN111414403B (zh) | 数据访问方法和装置、数据存储方法和装置 | |
CN104572689A (zh) | 数据同步方法、装置及系统 | |
GB2519779A (en) | Triplestore replicator | |
CN106569896B (zh) | 一种数据分发及并行处理方法和系统 | |
US10866960B2 (en) | Dynamic execution of ETL jobs without metadata repository | |
Reza et al. | Prunejuice: pruning trillion-edge graphs to a precise pattern-matching solution | |
CN111737228B (zh) | 数据库的分库分表方法及装置 | |
CN117421302A (zh) | 一种数据处理方法及相关设备 | |
US20230138113A1 (en) | System for retrieval of large datasets in cloud environments | |
CN112231410B (zh) | 适用于大数据的数据处理方法、装置、设备及介质 | |
CN115203339A (zh) | 多数据源整合方法、装置、计算机设备及存储介质 | |
CN115455006A (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN112231409A (zh) | 数据库同步的初始化装载方法、装置、设备和存储介质 | |
CN107169098B (zh) | 数据搬运方法、数据搬运装置及电子设备 | |
Baban et al. | Comparison of different implementation of Inverted indexes in Hadoop | |
CN115840786B (zh) | 一种数据湖数据同步方法及装置 | |
Blöcher et al. | ROME: All Overlays Lead to Aggregation, but Some Are Faster than Others | |
US20230247111A1 (en) | Runtime module conversion | |
GUELFI et al. | A distributed and scalable vertex-centric SPARQL engine: design, implementation and optimization |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210212 |
|
RJ01 | Rejection of invention patent application after publication |