CN111324606B - 数据分片的方法及装置 - Google Patents
数据分片的方法及装置 Download PDFInfo
- Publication number
- CN111324606B CN111324606B CN202010076351.6A CN202010076351A CN111324606B CN 111324606 B CN111324606 B CN 111324606B CN 202010076351 A CN202010076351 A CN 202010076351A CN 111324606 B CN111324606 B CN 111324606B
- Authority
- CN
- China
- Prior art keywords
- data
- slicing
- stored
- target
- application program
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2219—Large Object storage; 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据分片的方法及装置,所述方法包括:接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略;其中,每个所述数据分片策略均通过由web界面输入的配置信息得到;依据所述目标数据分片策略对所述待存储数据进行数据分片,得到多个分片数据;将所述多个分片数据分别存储到多个数据库中。运用本申请实施例提供数据分片的方法,可通过在本申请提供的web操作界面中,配置并自动生成相应的数据分片策略,以对待存储数据自动进行数据分片储存。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及到一种数据分片的方法及装置。
背景技术
随着科学技术的发展,物联网设备产生的数据周期性成几何倍数增长,日益增长的物联网数据对数据库储存造成了极大的负载。为有效减小数据库的负载压力,目前常采用数据分片的方式,将数据分片并分别存储在不同的数据库中。
但由于现有技术中实现数据分片的前提需要配置相应的配置文件,编写配置文件上比较复杂、运维成本较高;且当分片规则发生改动需要修改配置文件时,需要在修改后重新启动相应的系统,导致容易引起数据库分片业务异常中断。
发明内容
有鉴于此,本申请提供了一种数据分片的方法及装置,可通过在本申请提供的web操作界面中,配置并自动生成相应的数据分片策略,以对待存储数据自动进行数据分片储存。
为实现上述目的,本申请实施例提供如下技术方案:
本申请第一方面提供了一种数据分片的方法,包括:
接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略;其中,每个所述数据分片策略均通过由web界面输入的配置信息得到;
依据所述目标数据分片策略对所述待存储数据进行数据分片,得到多个分片数据;
将所述多个分片数据分别存储到多个数据库中。
可选的,所述接收到应用程序的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略,包括:
接收到应用程序的待存储数据时,获取所述应用程序的标识;
遍历预先建立的标识对应表,从所述标识对应表中匹配出所述应用程序的标识对应的数据分片策略;其中,所述标识对应表包括:每一个所述数据分片策略以及对应的应用程序的标识。
可选的,所述数据分片策略的生成方法,包括:
获取所述web界面输入的配置信息;所述配置信息包括分片数据的数据量、分片维度、建表语句和多个数据库;
其中,所述分片数据的数据量用于指示将所述待存储数据拆分成多个分片数据;所述分片维度用于指示对所述待存储数据的分片方式;所述建表语句用于生成分片表,所述分片表用于写入所述分片数据;所述多个数据库用于存储所述分片表;
依据所述配置信息,生成数据分片策略。
可选的,所述将所述多个分片数据分别存储到多个数据库中,包括:
将所述多个分片数据分别写入预先生成的一个分片表中,得到多个目标分片表;
向所述多个数据库中的一个数据库,依次存储所述多个目标分片表;
若多个所述目标分片表还剩余有未存储到数据库的目标分片表,则向所述多个数据库中除存储有所述目标分片表的数据库之外的一个数据库,存储所述多个目标分片表中被剩余的目标分片表,直至所有的目标分片表均存储在数据库中。
可选的,所述将所述多个分片子表分别存储到多个数据库之后,还包括:
接收数据的读取请求;其中,所述数据的读取请求中携带有目标数据的特征字段;
基于所述特征字段,依据预先配置的路由规则读取所述目标数据所在路由地址,其中,所述路由地址包括所述目标数据所在的表和库;
基于所述路由地址,读取并反馈所述目标数据。
可选的,上述数据分片的方法,还包括:
获取应用程序接口接收的数据操作指令;其中,所述数据操作指令包括对所述数据库中存储的数据的增加指令、删除指令、修改指令和查看指令;
对数据库中存储的数据,执行所述数据操作指令对应的操作。
本申请第二方面提供了一种数据分片的控制装置,包括:
筛选单元,用于接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略;其中,每个所述数据分片策略均通过由web界面输入的配置信息得到;
分片单元,用于依据所述目标数据分片策略对所述待存储数据进行数据分片,得到多个分片数据;
存储单元,用于将所述多个分片数据分别存储到多个数据库中。
可选的,所述筛选单元,包括:
第一获取单元,用于接收到应用程序的待存储数据时,获取所述应用程序的标识;
遍历单元,用于遍历预先建立的标识对应表,从所述标识对应表中匹配出所述应用程序的标识对应的数据分片策略;其中,所述标识对应表包括:每一个所述数据分片策略以及对应的应用程序的标识。
可选的,上述数据分片的装置,还包括:
第二获取单元,用于获取所述web界面输入的配置信息;所述配置信息包括分片数据的数据量、分片维度、建表语句和多个数据库;
其中,所述分片数据的数据量用于指示将所述待存储数据拆分成多个分片数据;所述分片维度用于指示对所述待存储数据的分片方式;所述建表语句用于生成分片表,所述分片表用于写入所述分片数据;所述多个数据库用于存储所述分片表;
生成单元,用于依据所述配置信息,生成数据分片策略。
可选的,所述存储单元,包括:
写入单元,用于将所述多个分片数据分别写入预先生成的一个分片表中,得到多个目标分片表;
第一存储子单元,用于向所述多个数据库中的一个数据库,依次存储所述多个目标分片表;
第二存储子单元,用于若多个所述目标分片表还剩余有未存储到数据库的目标分片表,则向所述多个数据库中除存储有所述目标分片表的数据库之外的一个数据库,存储所述多个目标分片表中被剩余的目标分片表,直至所有的目标分片表均存储在数据库中。
可选的,上述的数据分片的装置,还包括:
接收单元,用于接收数据的读取请求;其中,所述数据的读取请求中携带有目标数据的特征字段;
读取单元,用于基于所述特征字段,依据预先配置的路由规则读取所述目标数据所在路由地址,其中,所述路由地址包括所述目标数据所在的表和库;
反馈单元,用于基于所述路由地址,读取并反馈所述目标数据。
可选的,上述的数据分片的装置,还包括:
第三获取单元,用于获取应用程序接口接收的数据操作指令;其中,所述数据操作指令包括对所述数据库中存储的数据的增加指令、删除指令、修改指令和查看指令;
执行单元,用于对数据库中存储的数据,执行所述数据操作指令对应的操作。
与现有技术相比,本申请具有以下优点:
本申请实施例提供的方法中,接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略;其中,每个所述数据分片策略均通过由web界面输入的配置信息得到;依据所述目标数据分片策略对所述待存储数据进行数据分片,得到多个分片数据;将所述多个分片数据分别存储到多个数据库中。还需要说明,所述应用程序对应的目标数据分片策略,通过在本申请提供的web操作界面配置并自动生成,因此无需技术人员编写复杂的配置文件,降低了系统运维成本;且当分片规则发生改动时,也只需在web界面做相应的配置修改,修改后自动执行,无需重新启动相应的系统,很好了保持了业务的连续性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种数据分片的方法的流程图;
图2为本发明实施例提供的一种步骤S101的实现方法的流程图;
图3为本发明实施例提供的一种步骤S103的实现方法的流程图;
图4为本发明另一实施例提供的一种分片数据的读取方法的流程图;
图5为本发明实施例提供的一种数据分片的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要说明的是,发明人在对现有技术的研究中发现,目前在对待存储数据执行的数据分片操作中,一般采用配置文件的形式,将配置文件放到应用程序中跟随应用程序并行启动。例如sharding-jdbc的包的使用方式就需要编写一个xml格式的配置文件,如此,在实际的运用过程中便会产生许多问题。一来配置文件的编写上相对复杂,技术门槛高,且如果配置文件配置错误还会引起数据库分片异常导致业务错乱;二来维护成本太高,当分片的规则发生变化或者有新的分片需要配置必须要修改配置文件时,需要重新启动应用程序,影响现实系统的运行。
有鉴于此,为有效解决上述问题,本申请实施例提供了一种数据分片的方法。
首先需要说明的是,在执行本申请实施例公开的数据分片的方法之前,需要通过web界面输入配置信息,完成数据分片策略的构建。在初期阶段,可以预先向每一个应用程序提供一个用于配置数据分片策略的web界面,并获取应用程序(用户)在web界面所配置的一系列信息,以基于配置信息生成每一个应用程序所对应的数据分片策略。其中,数据分片策略用于指示如何对代存储数据进行分片并存储。
可选的,通过web界面输入配置信息,完成数据分片策略的构建的实现方式如下:
获取用户在web界面输入的分片数据的数据量。其中,分片数据的数据量用于指示将所述待存储数据拆分成多个分片数据,换言之,该数据量即是一个单位大小,需要将待存储数据拆分成多个该数据量大小的分片数据。例如当一个待存储数据为1200GB,且预先在web界面配置的分片数据的数据量为30GB时,则该待存储数据可拆分为40个数据量为30GB分片数据。
获取用户在web界面输入的分片维度。其中,分片维度用于指示对所述待存储数据的分片方式。分片维度在web界面中可以以一种可选项进行展示,选项中例如可包括时间、地区、哈希等;需要说明的是,选取了一种方式作为本申请实施例的分片维度后,在后续的操作中将作为路由规则的依据。其中,路由规则用于在多个数据中路由到指定数据。
获取用户在web界面输入的建表语句。其中,建表语句用于生成格式统一的分片表,并可相应的指定该分片表中用于分片的索引列。另外,分片表用于写入分片数据,以得到在不同数据库存储数据都能保持格式统一的数据表。
获取在用户web界面输入的多个数据库。其中,数据库是用户指定用于存储待存储数据的“仓库”,其存储对象的形式为表。因此本申请实施例中,需要将待存储数据写入分片表中,进而将分片表路由存储至不同数据库。
需要说明的是,本申请实施例中,在web界面配置信息时,界面中提供了整体的框架,用户只需进行简单的选择和配置,而无需大花笔墨的撰写配置文件;且web界面中对各种配置错误都有详细的提示,从而有效避免因为配置错误导致分片信息不准确业务数据错乱的问题,极大的减轻了运维成本和开发人员的工作量。
基于上述中获取到的分片数据的数据量、分片维度、建表语句和多个数据库,可以自动构建应用程序所对应的数据分片策略。
本申请实施例提供的数据分片的方法,可参照图1,该方法包括:
S101、接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出应用程序对应的目标数据分片策略。
其中,每个数据分片策略均通过由web界面输入的配置信息得到。
本申请实施例中,应用程序在连续执行业务功能时,会不间断的写入待存储数据;这些待存储数据具体与该应用程序所展开的业务相关,在后续的业务中也或将需要用到,具有重要的利用价值,需要对其进行存储。而通常使用的存储方式为数据库存储,例如MYSQL、MYCAT等常用的数据库。
换言之,接收到应用程序写入的待存储数据也即是应用程序请求对数据进行存储,而对数据进行存储则需要通过数据分片策略的指示。其中,在本申请实施例中,每一个应用程序都有一个与之对应的数据分片策略,因此需要从多个数据分片策略中,选出写入待存储数据的那一个应用程序所对应的数据分片策略,即文中写到的目标数据分片策略。
可选的,本申请另一实施例中,从多个数据分片策略中筛选出应用程序对应的目标数据分片策略的方式,可参照图2,包括:
S201、接收到应用程序的待存储数据时,获取应用程序的标识。
本申请实施例中,应用程序的标识例如是数据写入端的IP地址。
S202、遍历预先建立的标识对应表,从标识对应表中匹配出所述应用程序的标识对应的数据分片策略。
还需要说明的是,本申请预先配置有一个标识对应表,在该标识对应表中,预先建立有每一个应用程序的标识和数据分片策略的对应关系。这种对应关系的建立基础在于每个应用程序配置的数据分片策略或皆有所不同,因此将各个应用程序所配置的数据分片策略,分别作为各个应用程序所对应的目标数据分片策略。
S102、依据目标数据分片策略对待存储数据进行数据分片,得到多个分片数据。
承接上文实例,本申请实施例中,目标数据分片策略指代应用程序所对应的数据分片策略。因此,在接收到应用程序写入的代存储数据时,可依据目标数据分片策略中对待存储数据进行数据分片。可选的,可依据目标数据分片策略中的分片维度,确定对待存储数据的分片方式,例如为哈希分片;并依据设定的分片数据的数据量确定每个分片数据的大小,例如为上文中的30GB。由此,便得到类似于一条“将待存储数据按哈希切片的方式拆分成多个分片数据,且每个分片数据的数据量大小不超过30GB”的程序指令。
当然,本申请实施例提供的数据方式包括并不仅限于上述中的数据分片的方式,在数据量大小和分片维度上可以多种不同的组合方式。
S103、将多个分片数据分别存储到多个数据库中。
承接上文,本申请实施例中,将待存储数据按一定的维度和数据量拆分为多个分片数据之后,则执行将多个分片数据存储到多个数据库中。在设定上,数据库用来存储数据的对象为表,因此需要将分片数据写入表中,才能进行相应的存储业务。由此,可根据目标数据分片策略中提供的建表语句生成相应的分片表,再将分片数据写入到分片表中,以分片表的形式将分片数据存储到数据库中。
可选的,本申请另一实施例中,将多个分片数据分别存储到多个数据库的方式,可参照图3,包括:
S301、将多个分片数据分别写入预先生成的一个分片表中,得到多个目标分片表。
本申请实施例中,可以预留一定数量的分片表,其中,该分片表通过数据分片策略中配置的建表语句自动生成。在将待存储数据拆分为多个分片数据后,可将各个分片数据分别写入到一个分片表中,得到多个目标分片表。进而便可将多个目标分片表分别存储到多个数据库中。
需要说明的是,由于一个分片数据的数据量通常会很大,一个分片表或将无法写入一个完整的分片数据。可选的,可采用多个分片表写入同一个分片数据,并对表格加以序号区分。例如:分片表1~分片表5000用于写入第一个分片数据;分片表5001~分片表10000用于写入第二个分片数据……以此类推。
S302、向多个数据库中的一个数据库,依次存储多个目标分片表。
本申请实施例中,多个数据库中的一个数据库可以通过配置而映射得到指定的数据库,也可以采取随机的方式,选择多个数据库中的任意一个数据库。
承接步骤S301中的内容,若第一个分片数据写入的分片表包括分片表1~分片表5000,理论上按“一库一片”的原则,这5000个分片表皆应该存储在同一个数据库中。但由于数据库承载量有限,如若待存储的分片表的数据量超出了数据库的承载量,则需要将超出承载量的部分分片表存储到另一个数据库中。当然,该方式仅作为可选的备用操作,因为数据库的承载量目前是巨大的,且还支持扩容操作。
S303、若还剩余有未存储到数据库的目标分片表,则向多个数据库中除存储有目标分片表的数据库之外的一个数据库,存储所述多个目标分片表中被剩余的目标分片表,直至所有的目标分片表均存储在数据库中。
本申请实施例中,生成的多个目标分片表中携带有完整的待存储数据,因此需要将所有的目标分片表都存储到数据库当中。因此,基于一库一片的原则,承接上述实例,当分片表1~分片表5000所写入的第一分片数据均存储到多个数据库中的其中一个数据库时,则向多个数据库中除存储有目标分片表的数据库之外的一个数据库,执行存储分片表5001~分片表10000的操作。并且,在存储完成后,继续判断是否还有未存储到数据库中的目标分片表,若有,例如分片表N~分片表N+5000,则向第N个数据库存储该分片表N~分片表N+5000所写入的分片数据。
若将所有的分片表均存储在不同的数据库中,则结束本次对待存储数据的分片存储工作,并反馈到上级。
当然,本申请实施例提供的数据分片的方法可在应用程序写入的待存储数据较大,且应用程序预先配置好了数据分片策略的情况下执行。应用本申请提供的方法,能有效的分散数据量,减小单台服务器资源所面临的读取/写入压力,使数据库具备良好的水平拓展功能。而对于数据量小且没有配置相应的数据分片规则的待存储业务,也可执行常规的数据存储操作,而无需进行数据分片。
本申请实施例提供的数据分片的方法中,接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略;其中,每个所述数据分片策略均通过由web界面输入的配置信息得到;依据目标数据分片策略对待存储数据进行数据分片,得到多个分片数据;将多个分片数据分别存储到多个数据库中。还需要说明,应用程序对应的目标数据分片策略,通过在本申请提供的web操作界面配置并自动生成,因此无需技术人员编写复杂的配置文件,降低了系统运维成本;且当分片规则发生改动时,也只需在web界面做相应的配置修改,修改后自动执行,无需重新启动相应的系统,很好了保持了业务的连续性。
可选的,本申请另一实施例还提供了一种对分片数据的读取方法,用于在将多个分片子表分别存储到多个数据库之后,对数据进行读取操作。可参照图4,该方法包括:
S401、接收数据的读取请求;其中,所述数据的读取请求中携带有目标数据的特征字段。
本申请实施例中,数据的读取请求可由相应的应用程序发出。或出于业务需求,该应用程序当前需要读取到目标数据;其中,目标数据指代待存储数据中的某一项数据。并且,该数据的读取请求中携带有目标数据的特征字段,可通过对请求进行解析分析得到。
还需要说明的是,特征字段可以是建表语句中声明的索引列,索引列用于索引到各个数据所在的存储位置。
S402、基于特征字段,依据预先配置的路由规则读取目标数据所在路由地址。其中,所述路由地址包括所述目标数据所在的表和库。
本申请实施例中提供了一种路由规则引擎,用于进行数据库缓存管理。由此,在后续对数据进行读取时,可基于解析请求得到的特征字段,利用路由规则读取到目标数据所在路由地址,即可以是目标数据所在的分片表和所在的数据库的位置。
S403、基于路由地址,读取并反馈所述目标数据。
在读取到目标数据后,向相应的应用程序反馈该目标数据。需要说明的是,在特殊情况下,当应用程序需要读取的目标数据为多个,且分别存储在不同的分片表中时,则需要对读取到的多个目标数据进行聚合操作,得到聚合后的目标数据。因此,本申请实施例提供了一种sql解析聚合引擎,负责对处理应用程序的sql请求进行解析处理,并把处理得到的sql指令根据路由规则引擎进行拆分,并发处理多个分片表和多个数据库,得到执行结果后进行聚合操作,最终返回给应用程序需要的数据或操作结果。
本申请实施例提供的方法中,在对待存储数据进行分片存储之后,若应用程序发起数据的读取请求,则可基于读取请求中携带有目标数据的特征字段,依据预先配置的路由规则读取目标数据所在路由地址,读取并反馈所述目标数据。
可选的,本申请另一实施提供的数据分片的方法中,还提供了一种应用程序接口。在将多个分片子表分别存储到多个数据库之后,可通过获取应用程序接口接收的数据操作指令,对数据库中存储的数据执行所述数据操作指令对应的操作。其中,所述数据操作指令包括对所述数据库中存储的数据的增加指令、删除指令、修改指令和查看指令。
本申请实施例还提供了一种数据分片的装置,可参照图5,包括:
筛选单元501,用于接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出应用程序对应的目标数据分片策略;其中,每个数据分片策略均通过由web界面输入的配置信息得到;
分片单元502,用于依据目标数据分片策略对待存储数据进行数据分片,得到多个分片数据;
存储单元503,用于将多个分片数据分别存储到多个数据库中。
本实施例中,筛选单元501、分片单元502及存储单元503的具体执行过程,可参见对应图1的方法实施例内容,此处不再赘述。
本本申请实施例提供的数据分片的装置中,筛选单元501接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出应用程序对应的目标数据分片策略;其中,每个数据分片策略均通过由web界面输入的配置信息得到;分片单元502依据目标数据分片策略对待存储数据进行数据分片,得到多个分片数据;存储单元503最终将多个分片数据分别存储到多个数据库中。由此可见,运用本申请实施例提供的数据分片的装置,无需技术人员编写复杂的配置文件,降低了系统运维成本;且当分片规则发生改动时,也只需在web界面做相应的配置修改,修改后自动执行,无需重新启动相应的系统,很好了保持了业务的连续性。
可选的,本申请另一实施例中,筛选单元501,包括:
第一获取单元,用于接收到应用程序的待存储数据时,获取所述应用程序的标识;
遍历单元,用于遍历预先建立的标识对应表,从所述标识对应表中匹配出所述应用程序的标识对应的数据分片策略;其中,所述标识对应表包括:每一个所述数据分片策略以及对应的应用程序的标识。
本实施例中,第一获取单元和遍历单元的具体执行过程,可参见对应图2的方法实施例内容,此处不再赘述。
可选的,本申请另一实施例中,数据分片的装置,还包括:
第二获取单元,用于获取所述web界面输入的配置信息;所述配置信息包括分片数据的数据量、分片维度、建表语句和多个数据库;
其中,所述分片数据的数据量用于指示将所述待存储数据拆分成多个分片数据;所述分片维度用于指示对所述待存储数据的分片方式;所述建表语句用于生成分片表,所述分片表用于写入所述分片数据;所述多个数据库用于存储所述分片表;
生成单元,用于依据所述配置信息,生成数据分片策略。
本实施例中,第二获取单元和生成单元的具体执行过程,可参见对应图1的方法实施例内容,此处不再赘述。
可选的,本申请另一实施例中,存储单元503,包括:
写入单元,用于将所述多个分片数据分别写入预先生成的一个分片表中,得到多个目标分片表;
第一存储子单元,用于向所述多个数据库中的一个数据库,依次存储所述多个目标分片表;
第二存储子单元,用于若多个所述目标分片表还剩余有未存储到数据库的目标分片表,则向所述多个数据库中除存储有所述目标分片表的数据库之外的一个数据库,存储所述多个目标分片表中被剩余的目标分片表,直至所有的目标分片表均存储在数据库中。
本实施例中,写入单元、第一存储子单元和第二存储子单元的具体执行过程,可参见对应图3的方法实施例内容,此处不再赘述。
可选的,本申请另一实施例中,数据分片的装置,还包括:
接收单元,用于接收数据的读取请求;其中,所述数据的读取请求中携带有目标数据的特征字段;
读取单元,用于基于所述特征字段,依据预先配置的路由规则读取所述目标数据所在路由地址,其中,所述路由地址包括所述目标数据所在的表和库;
反馈单元,用于基于所述路由地址,读取并反馈所述目标数据。
本实施例中,接收单元、读取单元和反馈单元的具体执行过程,可参见对应图4的方法实施例内容,此处不再赘述。
可选的,本申请另一实施例中,数据分片的装置,还包括:
第三获取单元,用于获取应用程序接口接收的数据操作指令;其中,所述数据操作指令包括对所述数据库中存储的数据的增加指令、删除指令、修改指令和查看指令;
执行单元,用于对数据库中存储的数据,执行所述数据操作指令对应的操作。
本实施例中,第三获取单元和执行单元的具体执行过程,可参见对应图1的方法实施例内容,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要注意的是,本说明书中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种数据分片的方法,其特征在于,包括:
接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略;其中,每个所述数据分片策略均通过由web界面输入的配置信息得到;
依据所述目标数据分片策略对所述待存储数据进行数据分片,得到多个分片数据;
将所述多个分片数据分别存储到多个数据库中;
所述接收到应用程序的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略,包括:
接收到应用程序的待存储数据时,获取所述应用程序的标识;
遍历预先建立的标识对应表,从所述标识对应表中匹配出所述应用程序的标识对应的数据分片策略;其中,所述标识对应表包括:每一个所述数据分片策略以及对应的应用程序的标识;
所述数据分片策略的生成方法,包括:
获取所述web界面输入的配置信息;所述配置信息包括分片数据的数据量、分片维度、建表语句和多个数据库;
其中,所述分片数据的数据量用于指示将所述待存储数据拆分成多个分片数据;所述分片维度用于指示对所述待存储数据的分片方式;所述建表语句用于生成分片表,所述分片表用于写入所述分片数据;所述多个数据库用于存储所述分片表;
依据所述配置信息,生成数据分片策略。
2.根据权利要求1所述的方法,其特征在于,所述将所述多个分片数据分别存储到多个数据库中,包括:
将所述多个分片数据分别写入预先生成的一个分片表中,得到多个目标分片表;
向所述多个数据库中的一个数据库,依次存储所述多个目标分片表;
若多个所述目标分片表还剩余有未存储到数据库的目标分片表,则向所述多个数据库中除存储有所述目标分片表的数据库之外的一个数据库,存储所述多个目标分片表中被剩余的目标分片表,直至所有的目标分片表均存储在数据库中。
3.根据权利要求1所述的方法,其特征在于,所述将所述多个分片数据分别存储到多个数据库之后,还包括:
接收数据的读取请求;其中,所述数据的读取请求中携带有目标数据的特征字段;
基于所述特征字段,依据预先配置的路由规则读取所述目标数据所在路由地址;其中,所述路由地址包括所述目标数据所在的表和库;
基于所述路由地址,读取并反馈所述目标数据。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取应用程序接口接收的数据操作指令;其中,所述数据操作指令包括对所述数据库中存储的数据的增加指令、删除指令、修改指令和查看指令;
对数据库中存储的数据,执行所述数据操作指令对应的操作。
5.一种数据分片的装置,其特征在于,包括:
筛选单元,用于接收到应用程序写入的待存储数据时,从多个数据分片策略中筛选出所述应用程序对应的目标数据分片策略;其中,每个所述数据分片策略均通过由web界面输入的配置信息得到;
分片单元,用于依据所述目标数据分片策略对所述待存储数据进行数据分片,得到多个分片数据;
存储单元,用于将所述多个分片数据分别存储到多个数据库中;
所述筛选单元,包括:
第一获取单元,用于接收到应用程序的待存储数据时,获取所述应用程序的标识;
遍历单元,用于遍历预先建立的标识对应表,从所述标识对应表中匹配出所述应用程序的标识对应的数据分片策略;其中,所述标识对应表包括:每一个所述数据分片策略以及对应的应用程序的标识;
所述装置还包括:
第二获取单元,用于获取所述web界面输入的配置信息;所述配置信息包括分片数据的数据量、分片维度、建表语句和多个数据库;
其中,所述分片数据的数据量用于指示将所述待存储数据拆分成多个分片数据;所述分片维度用于指示对所述待存储数据的分片方式;所述建表语句用于生成分片表,所述分片表用于写入所述分片数据;所述多个数据库用于存储所述分片表;
生成单元,用于依据所述配置信息,生成数据分片策略。
6.根据权利要求5所述的装置,其特征在于,所述存储单元,包括:
写入单元,用于将所述多个分片数据分别写入预先生成的一个分片表中,得到多个目标分片表;
第一存储子单元,用于向所述多个数据库中的一个数据库,依次存储所述多个目标分片表;
第二存储子单元,用于若多个所述目标分片表还剩余有未存储到数据库的目标分片表,则向所述多个数据库中除存储有所述目标分片表的数据库之外的一个数据库,存储所述多个目标分片表中被剩余的目标分片表,直至所有的目标分片表均存储在数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010076351.6A CN111324606B (zh) | 2020-01-23 | 2020-01-23 | 数据分片的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010076351.6A CN111324606B (zh) | 2020-01-23 | 2020-01-23 | 数据分片的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324606A CN111324606A (zh) | 2020-06-23 |
CN111324606B true CN111324606B (zh) | 2023-06-09 |
Family
ID=71172121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010076351.6A Active CN111324606B (zh) | 2020-01-23 | 2020-01-23 | 数据分片的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324606B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112001160B (zh) * | 2020-08-27 | 2023-07-28 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113612705B (zh) * | 2021-08-02 | 2023-08-22 | 广西电网有限责任公司 | 基于哈希算法分片及重组的电网监控系统数据传输方法 |
CN116303753A (zh) * | 2021-12-09 | 2023-06-23 | 中兴通讯股份有限公司 | 分布式数据库的分片方法、装置、电子设备和存储介质 |
CN114238333A (zh) * | 2021-12-17 | 2022-03-25 | 中国邮政储蓄银行股份有限公司 | 数据拆分方法、装置以及设备 |
CN115002102A (zh) * | 2022-06-20 | 2022-09-02 | 杭州安恒信息技术股份有限公司 | 一种大文件分片上传方法、装置、设备、存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015876A (zh) * | 2016-10-10 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种业务请求处理方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
CN103139262A (zh) * | 2011-11-25 | 2013-06-05 | 上海聚力传媒技术有限公司 | 一种为网页资源播放器提供资源访问数据的方法与设备 |
CN104252537B (zh) * | 2014-09-18 | 2019-05-21 | 彩讯科技股份有限公司 | 基于邮件特征的索引分片方法 |
CN105426407A (zh) * | 2015-11-02 | 2016-03-23 | 浪潮软件集团有限公司 | 一种基于内容分析的web数据采集方法 |
US20180284956A1 (en) * | 2017-04-03 | 2018-10-04 | Sap Se | Fragmentation and messaging across web applications |
CN107239382A (zh) * | 2017-06-23 | 2017-10-10 | 深圳市冬泉谷信息技术有限公司 | 一种容器应用的日志处理方法及系统 |
CN108153849B (zh) * | 2017-12-20 | 2020-10-23 | 杭州登虹科技有限公司 | 一种数据库表切分方法、装置、系统和介质 |
US10346378B1 (en) * | 2018-11-30 | 2019-07-09 | Slack Technologies, Inc. | Data storage architecture for an enterprise communication system |
CN110401719A (zh) * | 2019-07-30 | 2019-11-01 | 成都摹客科技有限公司 | web端上传数据的方法、装置、系统及存储介质 |
-
2020
- 2020-01-23 CN CN202010076351.6A patent/CN111324606B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015876A (zh) * | 2016-10-10 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种业务请求处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111324606A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324606B (zh) | 数据分片的方法及装置 | |
US11422853B2 (en) | Dynamic tree determination for data processing | |
US9489443B1 (en) | Scheduling of splits and moves of database partitions | |
US9971823B2 (en) | Dynamic replica failure detection and healing | |
KR101925696B1 (ko) | 대규모 데이터 스트림들의 획득, 저장, 및 소비를 위한 관리 서비스 | |
US8677366B2 (en) | Systems and methods for processing hierarchical data in a map-reduce framework | |
US8150889B1 (en) | Parallel processing framework | |
US20100313063A1 (en) | Mitigating reduction in availability level during maintenance of nodes in a cluster | |
US11275667B2 (en) | Handling of workload surges in a software application | |
US11991094B2 (en) | Metadata driven static determination of controller availability | |
US11308066B1 (en) | Optimized database partitioning | |
US20190102477A1 (en) | Novel metadata relationships in a configuration management database | |
US9898518B2 (en) | Computer system, data allocation management method, and program | |
WO2018063723A1 (en) | Flexible in-memory column store placement | |
US9537941B2 (en) | Method and system for verifying quality of server | |
US11698911B2 (en) | System and methods for performing updated query requests in a system of multiple database engine | |
US11243968B2 (en) | Dynamic data service engine/router for content service management | |
US20210224102A1 (en) | Characterizing operation of software applications having large number of components | |
US11836125B1 (en) | Scalable database dependency monitoring and visualization system | |
CN113448775B (zh) | 多源异构数据备份方法及装置 | |
US11914586B2 (en) | Automated partitioning of a distributed database system | |
US20240202211A1 (en) | State rebalancing in structured streaming | |
US20230297486A1 (en) | Arrangement plan search device, computer system, and arrangement plan search method | |
EP4091066B1 (en) | Systems and methods for performing updated query requests in a system of multiple database engine | |
US20240143674A1 (en) | Processing and publishing scanned data for detecting entities in a set of domains via a parallel pipeline |
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 |