CN107480184A - 一种数据访问方法及设备 - Google Patents
一种数据访问方法及设备 Download PDFInfo
- Publication number
- CN107480184A CN107480184A CN201710548149.7A CN201710548149A CN107480184A CN 107480184 A CN107480184 A CN 107480184A CN 201710548149 A CN201710548149 A CN 201710548149A CN 107480184 A CN107480184 A CN 107480184A
- Authority
- CN
- China
- Prior art keywords
- data
- burst
- database
- rule
- script file
- 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
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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据访问方法及设备,在即使分片规则发生了变化的情况下,也不需要将与分片规则对应的路由规则烧写至分片路由,同样能够实现对数据的访问。其中的数据访问方法包括:接收终端发送的数据访问请求;其中,所述数据访问请求用于请求访问第一数据,所述第一数据分割成的多个分片分散存储在多个数据库;将所述数据访问请求携带的请求访问参数输入设定的第三方程序,并接收所述第三方程序反馈的路由结果;其中,所述路由结果用于指示存储所述第一数据所包括的多个分片的至少一个数据库;根据所述路由结果访问所述至少一个数据库中的部分或全部数据库,获得所述第一数据。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种数据访问方法及设备。
背景技术
随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,网络应用系统的数据量越来越大,数据的种类也越来越多,网络应用系统对数据的访问也越来越频繁。
考虑到海量的数据都存储在一张数据表,对数据访问时就需要对整张数据表进行操作,增加了数据库的负担。为了减轻数据库的负担,将海量数据的数据库总表按照一定的分片规则进行分片,分割成多个数据表,将多个数据表分散存储在多个数据库。在对数据进行访问时,可以通过路由按照与分片规则对应的路由规则计算出待访问的数据所在的数据表,从而对计算出的数据表进行访问,获得待访问数据。
目前,路由规则是事先设置在分片路由内,即分片路由内的路由规则是特定的,一旦分片规则发生了变化,就需要重新将与分片规则对应的路由规则烧写至分片路由,否则无法对数据进行访问。
发明内容
本发明实施例提供一种数据访问方法及设备,在即使分片规则发生了变化的情况下,也不需要将与分片规则对应的路由规则烧写至分片路由,同样能够实现对数据的访问。
第一方面,本发明一实施例提供了一种数据访问方法,所述数据访问方法包括:
接收终端发送的数据访问请求;其中,所述数据访问请求用于请求访问第一数据,所述第一数据分割成的多个分片分散存储在多个数据库;
将所述数据访问请求携带的请求访问参数输入设定的第三方程序,并接收所述第三方程序反馈的路由结果;其中,所述路由结果用于指示存储所述第一数据所包括的多个分片的至少一个数据库;
根据所述路由结果访问所述至少一个数据库中的部分或全部数据库,获得所述第一数据。
可选的,所述第三方程序通过运行脚本文件的方式实现,所述脚本文件是根据分片规则实现路由规则的脚本文件,其中,所述分片规则为所述第一数据分割成多个分片所依据的规则。
可选的,一个所述脚本文件可以包括两级或两级以上的所述路由规则,每级所述路由规则对应不同的所述分片规则。
可选的,所述脚本文件设置多个;其中,不同的所述脚本文件对应不同的所述路由规则。
可选的,所述请求访问参数包括结构化语言SQL语句、分片字段及逻辑表名;其中,所述分片字段用于标识所述第一数据的访问条件,所述逻辑表名用于标识所述路由规则。
第二方面,本发明一实施例提供了一种数据访问设备,所述数据访问设备包括:
接收模块,用于接收终端发送的数据访问请求;其中,所述数据访问请求用于请求访问第一数据,所述第一数据分割成的多个分片分散存储在多个数据库;
计算模块,用于将所述数据访问请求携带的请求访问参数输入设定的第三方程序,并接收所述第三方程序反馈的路由结果;其中,所述路由结果用于指示存储所述第一数据所包括的多个分片的至少一个数据库;
访问模块,用于根据所述路由结果访问所述至少一个数据库中的部分或全部数据库,获得所述第一数据。
可选的,所述第三方程序通过运行脚本文件的方式实现,所述脚本文件是根据分片规则实现路由规则的脚本文件,其中,所述分片规则为所述第一数据分割成多个分片所依据的规则。
可选的,一个所述脚本文件可以包括两级或两级以上的所述路由规则,每级所述路由规则对应不同的所述分片规则。
可选的,所述脚本文件设置多个;其中,不同的所述脚本文件对应不同的所述路由规则。
可选的,所述请求访问参数包括结构化语言SQL语句、分片字段及逻辑表名;其中,所述分片字段用于标识所述第一数据的访问条件,所述逻辑表名用于标识所述路由规则。
本发明实施例提供一种数据访问方法,在访问过程中,提供了一种新的分片路由方法,第三方程序可以根据数据访问请求携带的请求访问参数计算出路由结果,而第三方程序可以通过脚本的方式实现,这样就可以通过编辑脚本的方式实现对路由规则的更新,在路由规则发生了变化的情况下,不需要重新将路由规则烧写至分片路由,也能够实现对数据的访问,数据访问过程无需重新烧写路由规则,实施更为方便。
附图说明
图1是本发明实施例提供的一种应用场景;
图2是本发明实施例提供的数据访问方法流程图;
图3为本发明实施例提供的数据访问设备的一种结构示意图;
图4为本发明实施例提供的数据访问设备的一种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
待访问的数据可以按照一定的规则,也就是分片规则被分割成多个分片,例如,针对一年的订单数据表,可以按照时间规则,例如以月为单位将该订单数据表进行分割,可以分割成12个子订单数据表,这12个子订单数据表就可以看作是12个分片,其中的子订单数据表可以称为分片数据库。多个分片数据库可以存储在一台服务器上,也可以存储在多台服务器上。对第一数据的访问过程,就是对一台或多台服务器上的多个分片数据库中的数据进行访问的过程。
请参见图1,首先,介绍本发明实施例的一种应用场景。图1包括终端101和服务器102,用户可以通过终端101访问服务器102上所存储的数据库中的数据。终端101可以是智能手机、个人计算机(PC)、或平板电脑(PAD)等设备。服务器102可以有多个,一台服务器102上可以存储多个数据库。图1以存在一台服务器102,一台服务器102上存储3个数据库为例。用户通过终端101对待访问的数据进行访问时,需要通过分片路由知道待访问的数据存储在哪个数据库。分片路由可以按照自身存储的路由规则计算出待访问的数据存储在哪个数据库,并将计算结果反馈给终端101。终端101可以对反馈的数据库进行操作,获得待访问的数据。当存在多台服务器102时,分片路由反馈的计算结果还包括数据库所在的服务器102。在现有技术中,分片路由的路由规则是预先设定好的,一旦路由规则发生了变化,就需要重新将变化后的路由规则烧写至分片路由中,否则无法继续通过分片路由计算得到待访问的数据存储在哪个数据库,也就使得终端101无法对待访问的数据进行访问。
鉴于此,本发明实施例在该应用场景下提供一种数据访问方法,下面结合说明书附图介绍本发明实施例提供的技术方案。
请参见图2,本发明实施例提供一种数据访问方法,该方法的流程描述如下:
S201:接收终端101发送的数据访问请求;其中,数据访问请求用于请求访问第一数据,第一数据分割成的多个分片分散存储在多个数据库。
S202:将数据访问请求携带的请求访问参数输入设定的第三方程序,并接收第三方程序反馈的路由结果;其中,路由结果用于指示存储第一数据所包括的多个分片的至少一个数据库;
S203:根据路由结果访问至少一个数据库中的部分或全部数据库,获得第一数据。
第一数据可以理解为是待访问的数据,第一数据分割成的多个分片分散存储在多个数据库中。终端101要访问第一数据,可以通过分片路由获知第一数据分割成的多个分片所在的至少一个数据库,从而对第一数据分割成的多个分片所在的至少一个数据库进行操作,实现对第一数据的访问。多个数据库可以是存储在服务器上的102上的全部数据库,至少一个数据库可以是全部数据库中的部分数据库,或者也可以是全部数据库。在一种实施方式中,在终端101要访问第一数据时,终端101可以向分片路由发送数据访问请求,该数据访问请求可以用于请求访问第一数据。其中,分片路由可以设置在终端101中,也可以设置在服务器中,或者也可以独立于终端101和服务器102,设置于终端101和服务器102之间的其他设备。
分片路由接收数据访问请求,可以根据接收的数据访问请求及分片路由自身的路由规则计算出路由结果,也就是第一数据所包括的多个分片的至少一个数据库列表。其中,至少一个数据库列表包括第一数据所在的数据表的列表,和/或数据表所在数据库的列表。本发明实施例中,分片路由自身的路由规则可以通过第三方程序获得,且第三方程序通过运行脚本文件的方式实现。可能的实施方式中,在java运行环境中执行JavaScript脚本语言,得到脚本文件。其中,第三方程序是根据分片规则进行编辑的程序,分片规则为第一数据分割成多个分片所依据的规则。
如果分片规则发生了变化,例如新增加分片规则,或者放弃已有的分片规则,或者在已有的分片规则上作了改进,对应地路由规则也就发生了变化,也就需要更新分片路由的路由规则。现有技术中,在需要更新路由规则时,需要通过烧写器将新的路由规则重新烧录至所有的分片路由,操作繁琐。而本发明实施例中,第三方程序可以通过运行脚本文件的方式实现,当路由规则发生了变化,只需要对应地修改脚本文件中的代码,然后运行脚本文件即可实现更新路由规则,较为灵活。另外,本发明实施例中,脚本文件可以独立部署,可以热加载执行脚本文件,而不需要提前编译。这样就不需要通过烧写器将新的路由规则重新烧录至分片路由,避免操作上的繁琐,也较容易实现路由规则的扩展。
不同类型的数据,对应的分片规则也有所不同,那么对应的路由规则也有所不同,对应的脚本文件也有所不同。本发明实施例中,不同类型的数据可以通过逻辑表名来体现,那么不同的逻辑表名对应的脚本文件不同,即根据逻辑表名可以确定要访问的数据对应的路由规则。其中,逻辑表名可以用于标识第一数据所在数据表的名称,例如订单表,可以通过order的形式来表示。订单表t_order数据量很大,要做分片,可以按日期拆为t_order201705、t_order201706、t_order201707……等几个子订单表,其中,t_order就是逻辑表名,带日期后缀的表名,例如t_order201705可以称为实体表名,实体表名可以理解为第一数据包括的多个分片所在的数据库的名称。逻辑表名可以映射到多个数据库的数据表,在对第一数据进行访问时,首先可以确定第一数据的逻辑表名,以通过该逻辑表名确定第一数据对应的路由规则,以进一步确定第一数据所包括的多个分片所在的多个数据库。
本发明实施例中,数据访问请求携带有请求访问参数,请求访问参数可以包括结构化查询语言(Structured Query Language,SQL)语句、分片字段及逻辑表名,其中,分片字段用于标识访问第一数据的访问条件,例如,日期。继续以上一段的例子为例,分片字段可以是201705、201706、201707等。
分片路由从数据访问请求中获取请求访问参数后,首先可以根据请求访问参数中的逻辑表名确定相应的脚本文件,也即是确定要使用的路由规则。确定了脚本文件后,分片路由运行脚本文件,并将请求访问参数中的分片字段的值作为脚本文件的输入参数,脚本文件的输出就是路由结果。例如,计算订单表t_order的路由结果,首先通过t_order确定需要采用的脚本文件t_order.js的路由规则,再将分片字段date的值作为输入参数传输给t_order.js,执行t_order.js输出的结果就是路由结果。该路由结果包括库表信息,即既包括第一数据所在的数据表信息,例如实体表名t_order201705,也包括t_order201705所在的数据库信息。
进一步地,本发明实施例考虑到海量的数据包括各种类型的数据,对此,各种类型的数据进行分片所依据的规则,即分片规则也包括多种。那么当服务器102上存储多种类型的数据的多个分片。终端101在访问第一数据前,首先要获取第一数据的分片规则,从而编辑与分片规则对应的脚本文件,那么当终端101需要访问其他数据时,就需要重新编辑与其他数据的分片规则对应的脚本文件,每次重新编辑,操作繁琐。
鉴于此,在本发明实施例中,终端101可以根据服务器102上存储的数据常用的记载分片规则事先编辑对应的多个脚本文件,其中一个脚本文件对应一种路由规则。终端101可以存储事先编辑的多个脚本文件,在对服务器102上存储的数据进行访问时,只要调用对应的脚本文件即可。这样即使服务器102新增加了存储的数据,只要新增加的数据的分片规则不变,就不需要重新编辑脚本文件,实现了脚本文件的复用,避免了频繁编辑脚本文件的操作。
进一步地,本发明实施例中的分片路由可以通过运行脚本文件的方式实现较为复杂的路由规则。在现有技术中,分片路由所存储的路由规则是通过路由表的方式实现,而结构化的路由表存储结构很难满足复杂的路由规则设置。例如,在多种路由规则组合的情况下,例如,第一数据先按照日期字段按时间段分片,以时间段为第一结果,再根据某字段进行哈希运算,最终将第一数据进行分片,这样的路由规则就包括两级路由规则,较为复杂,而路由表很难实现这样的规则。本发明实施例中,一个脚本文件可以包括两级或两级以上的路由规则,还是以上述例子为例,本发明实施例提供的脚本文件既可以包括首先根据时间段分片的规则,又可以包括根据时间段分片的基础上,再根据某字段进行哈希运算的规则,即本发明实施例中的分片路由可以通过运行脚本文件的方式实现较为复杂的路由规则,应用更为广泛。当然,一个脚本文件包括两级路由规则仅是举例,可能的实施方式中,一个脚本文件可以包括三级、甚至三级以上的路由规则。
再者,在现有技术中,当终端101需要访问第一数据时,发送数据访问请求,分片路由先解析数据访问请求中携带的参数,例如SQL语句,再根据路由表判断是否有分片字段和分片规则,如果有分片字段和分片规则,再确定第一数据所包括的多个分片。即在现有技术中,分片路由首先需要访问路由表,再计算路由结果,而访问路由表就需要耗费时间,这样就导致了分片路由的计算效率较低。且有时,分片路由通过路由表的方式进行一次计算可能无法得出路由结果,需要进行两次或者两次以上的计算才能得出路由结果。例如,请参见表1,表1为第一数据的分片规则的示意表,以按照时间段的规则对第一数据进行分片为例。分片字段,例如起始日期,结束日期,根据该分片字段按月做分片,在数据库中配置通常如表1所示,随着时间的延续,该表的配置项还需要增加,如果要访问5月到7月的第一数据的分片,显然需要根据5月、6月和7月的路由规则分别计算5月、6月和7月的第一数据的分片,即仅通过一条无法配置该路由规则。
表1-第一数据的分片规则的示意表
起始日期 | 结束日期 | 表名 |
20170501 | 20170531 | T201705 |
20170601 | 20170630 | T201706 |
20170701 | 20170731 | T201707 |
如果要访问的第一数据在表1中所示的T201705和T201707中存在,那么通过现有技术中的路由表的方式实现,就需要计算两次,而每次都需要访问路由表,这样分片路由计算路由结果时需要耗费访问路由表的时间,导致分片路由的计算效率较低。而在本发明实施例中,分片路由直接运行脚本文件计算路由结果,不需要访问路由表,也就节约了访问路由表的时间,从而提高了分片路由的计算效率。
当终端101接收分片路由反馈的路由结果后,可以根据路由结果访问至少一个数据库中的部分或全部数据库,获得第一数据。有时用户只需要第一数据包括的某些分片所包括的数据,那么此时终端101可以访问至少一个数据库中的部分数据库,而不需要访问全部的数据库,以节约访问时间,提高数据访问效率。终端101访问至少一个数据库中的部分或全部数据库时,可以直接在部分或全部数据库进行操作,比如查询操作,修改操作,删除操作等,这些操作可以通过SQL语句实现。
本发明实施例中,考虑到数据丢失等情况的发生,可以对每个分片进行备份。每个分片所在的数据库可以作为主数据库,每个主数据库都相应设置一份或多份备份数据库,其中备份数据库中的数据可以通过数据复制工具实现与主数据库中的数据一致。由于数据库的数据可能会发生故障,那么就无法保证数据库在任何时刻都是可以提供服务的,例如,数据库发生故障,网络发生故障,系统发生故障,例如磁盘满等,导致数据库无法提供服务,这样终端101就无法访问第一数据。
鉴于此,本发明实施例中,在存在备份数据库的情况下,分片路由计算的路由结果不止包括至少一个主数据库列表信息,还包括与至少一个主数据库对应的至少一个备份数据库列表信息。主数据库列表信息包括主数据库的地址,及与主数据库的地址对应的主数据库的实体表名,备份数据库列表信息包括备份数据库的地址,及与备份数据库的地址对应的备份数据库的实体表名,以便于查找。终端101接收分片路由反馈的路由结果,优先选择访问至少一个主数据库中的部分或者全部数据库,当终端101在访问至少一个主数据库中的部分或者全部数据库失败时,那么可以认为有的主数据库在当前是不可以提供服务的。此时,终端101就可以访问路由结果中的至少一个备份数据库中与访问失败的主数据库对应的备份数据库,从而获得第一数据,以尽量提高访问数据的成功率。
本发明实施例中,为了进一步提高访问数据的成功率,分片路由在根据路由结果访问至少一个数据库中的部分或全部数据库之前,还可以检测至少一个数据库中的每个数据库是否有效,只对有效的数据库进行访问,对于无效的数据库之间放弃访问,减少了访问交互的次数,也提高了访问效率。这里访问至少一个数据库中的部分或全部数据库可以是访问至少一个主数据库中的部分或全部主数据库,也可以是访问至少一个备份数据库中的部分或全部备份数据库。数据库有效包括数据库所对应的网络端口可访问,数据库可访问,第一数据所在的数据表在数据库中存在,且该数据表也可以访问。当然,数据库有效不限于以上几种情况,还包括其他可能的情况。
其中,检测至少一个数据库中的每个数据库是否有效有两种检测方式,下面分别介绍。
第一种检测方式:分片路由可以在计算出路由结果后进行检测,以只检测所要待访问的数据库的有效性,所检测的数据库的数量较少,检测效率较高,也可以减轻检测负担。本发明实施例中,除了分片路由,还可以由终端101在计算出路由结果后进行检测,此时就需要分片路由在计算出路由结果时告知终端101,由终端101对路由结果所包括的数据库的有效性进行检测。当然,本发明实施例中,对路由结果所包括的数据库的有效性的检测不限于通过分片路由和终端101实现,也可以通过其他可能的设备,例如服务器102实现。
第二种检测方式:分片路由也可以针对服务器102上所存储的全部数据库进行周期性地检测,以周期性地对所有数据库进行监控,在发现有无效的数据库时,便于及时对无效的数据库进行维护。周期的设定可以根据经验设置,例如数据库发生故障的频率是每30分钟/次,那么可以设定周期就是30分钟。周期的设定也可以根据实际实验测量所得,对此,本发明不作限制。
在这种检测方式下,一旦分片路由计算出路由结果后,可以将计算出的路由结果所包括的数据库与周期性检测得到的有效数据库进行比较,如果路由结果所包括的数据库中的某个或某些数据库不在周期性检测得到的有效数据库范围内,则可以认为某个或某些数据库为无效的数据库。分片路由向终端101反馈的路由结果可以只包括有效数据库,即分片路由在计算出路由结果后,可以将无效数据库去除后再反馈给终端101,这样终端101就不需要进一步判断所接收的路由结果中的无效数据库,节约了访问时间。分片路由也可以将无效的数据库告知终端101,以便终端101获知存在无效的数据库,对无效的数据库进行维护。当然,本发明实施例中,服务器102也可以针对服务器102上所存储的所有数据库进行周期性地检测,以周期性地对所有数据库进行监控,在发现有无效的数据库时,便于及时对无效的数据库进行维护。
本发明实施例中,分片路由的路由规则通过第三方程序,也就是脚本文件的方式实现,在路由规则发生变化时,无需重新通过烧写器将新的路由规则烧写至分片路由,能够实现各种新的路由规则,易于扩展路由规则,应用范围较为广泛,脚本文件不需要事先编译,可以直接热加载执行,实施过程较为方便。
下面结合附图介绍本发明实施例所提供的设备。
请参见图3,本发明实施例提供一种数据访问设备,该数据访问设备可以包括存储器301和处理器302,存储器301可以通过总线300与处理器302相连接(图3以此为例),或者也可以通过专门的连接线与处理器302连接。其中,存储器301可以用于存储脚本文件和指令。处理器302可以执行存储器301存储的指令,用于:接收终端发送的数据访问请求,将数据访问请求携带的请求访问参数输入设定的第三方程序,并接收第三方程序反馈的路由结果,根据路由结果访问所述至少一个数据库中的部分或全部数据库,获得第一数据。其中,数据访问请求用于请求访问第一数据,第一数据分割成的多个分片分散存储在多个数据库,路由结果用于指示存储第一数据所包括的多个分片的至少一个数据库。
可选的,第三方程序通过运行脚本文件的方式实现,脚本文件是根据分片规则实现路由规则的脚本文件,其中,分片规则为第一数据分割成多个分片所依据的规则。
可选的,一个脚本文件可以包括两级或两级以上的路由规则,每级路由规则对应不同的分片规则。
可选的,脚本文件设置多个;其中,不同的脚本文件对应不同的路由规则。
可选的,请求访问参数包括结构化语言SQL语句、分片字段及逻辑表名;其中,分片字段用于标识第一数据的访问条件,逻辑表名用于标识路由规则。
图3中所示的数据访问设备可以是上述中的分片路由,因此关于图3中所示的数据访问设备的各个功能单元所实现的功能等可参考图2所示的实施例中的介绍,不多赘述。
请参见图4,本发明实施例还提供一种数据访问设备,该数据访问设备可以包括接收模块401、计算模块402和访问模块403。
其中,接收模块401可以用于接收终端发送的数据访问请求;其中,数据访问请求用于请求访问第一数据,第一数据分割成的多个分片分散存储在多个数据库。计算模块402可以用于将数据访问请求携带的请求访问参数输入设定的第三方程序,并接收第三方程序反馈的路由结果;其中,路由结果用于指示存储第一数据所包括的多个分片的至少一个数据库。访问模块403可以用于根据路由结果访问至少一个数据库中的部分或全部数据库,获得第一数据。
可选的,第三方程序通过运行脚本文件的方式实现,脚本文件是根据分片规则实现路由规则的脚本文件,其中,分片规则为第一数据分割成多个分片所依据的规则。
可选的,一个脚本文件可以包括两级或两级以上的路由规则,每级路由规则对应不同的分片规则。
可选的,脚本文件设置多个;其中,不同的脚本文件对应不同的路由规则。
可选的,请求访问参数包括结构化语言SQL语句、分片字段及逻辑表名;其中,分片字段用于标识第一数据的访问条件,逻辑表名用于标识一个分片所在数据库的名称。
可选的,接收模块401、计算模块402、访问模块403和检测模块404所对应的实体设备均可以是图3中的处理器302。
本发明实施例提供了一种新的分片路由方法,第三方程序可以根据数据访问请求携带的请求访问参数计算出路由结果,而第三方程序可以通过脚本的方式实现,这样就可以通过编辑脚本的方式实现对路由规则的更新,在路由规则发生了变化的情况下,不需要重新将路由规则烧写至分片路由,也能够实现对数据的访问,数据访问过程无需重新烧写路由规则,实施更为方便。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash disk)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据访问方法,其特征在于,包括:
接收终端发送的数据访问请求;其中,所述数据访问请求用于请求访问第一数据,所述第一数据分割成的多个分片分散存储在多个数据库;
将所述数据访问请求携带的请求访问参数输入设定的第三方程序,并接收所述第三方程序反馈的路由结果;其中,所述路由结果用于指示存储所述第一数据所包括的多个分片的至少一个数据库;
根据所述路由结果访问所述至少一个数据库中的部分或全部数据库,获得所述第一数据。
2.如权利要求1所述的方法,其特征在于,所述第三方程序通过运行脚本文件的方式实现,所述脚本文件是根据分片规则实现路由规则的脚本文件,其中,所述分片规则为所述第一数据分割成多个分片所依据的规则。
3.如权利要求2所述的方法,其特征在于,一个所述脚本文件可以包括两级或两级以上的所述路由规则,每级所述路由规则对应不同的所述分片规则。
4.如权利要求2所述的方法,其特征在于,所述脚本文件设置多个;其中,不同的所述脚本文件对应不同的所述路由规则。
5.如权利要求1、3或4任一所述的方法,其特征在于,所述请求访问参数包括结构化语言SQL语句、分片字段及逻辑表名;其中,所述分片字段用于标识所述第一数据的访问条件,所述逻辑表名用于标识所述路由规则。
6.一种数据访问设备,其特征在于,包括:
接收模块,用于接收终端发送的数据访问请求;其中,所述数据访问请求用于请求访问第一数据,所述第一数据分割成的多个分片分散存储在多个数据库;
计算模块,用于将所述数据访问请求携带的请求访问参数输入设定的第三方程序,并接收所述第三方程序反馈的路由结果;其中,所述第三方程序通过运行脚本文件的方式实现,所述路由结果用于指示存储所述第一数据所包括的多个分片的至少一个数据库;
访问模块,用于根据所述路由结果访问所述至少一个数据库中的部分或全部数据库,获得所述第一数据。
7.如权利要求6所述的设备,其特征在于,所述第三方程序通过运行脚本文件的方式实现,所述脚本文件是根据分片规则实现路由规则的脚本文件,其中,所述分片规则为所述第一数据分割成多个分片所依据的规则。
8.如权利要求7所述的设备,其特征在于,一个所述脚本文件可以包括两级所述路由规则,每级所述路由规则对应不同的所述分片规则。
9.如权利要求7所述的设备,其特征在于,所述脚本文件设置多个;其中,不同的所述脚本文件对应不同的所述路由规则。
10.如权利要求6、8或9任一所述的设备,其特征在于,所述请求访问参数包括结构化语言SQL语句、分片字段及逻辑表名;其中,所述分片字段用于标识所述第一数据的访问条件,所述逻辑表名用于标识所述路由规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710548149.7A CN107480184A (zh) | 2017-07-06 | 2017-07-06 | 一种数据访问方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710548149.7A CN107480184A (zh) | 2017-07-06 | 2017-07-06 | 一种数据访问方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107480184A true CN107480184A (zh) | 2017-12-15 |
Family
ID=60595698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710548149.7A Pending CN107480184A (zh) | 2017-07-06 | 2017-07-06 | 一种数据访问方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107480184A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189843A (zh) * | 2018-08-02 | 2019-01-11 | 浪潮通用软件有限公司 | 基于企业年金系统账管费扣收文件请求与解析响应的方法 |
CN109583746A (zh) * | 2018-11-26 | 2019-04-05 | 东软集团股份有限公司 | 设置流程的路由规则的方法及装置、可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838770A (zh) * | 2012-11-26 | 2014-06-04 | 中国移动通信集团北京有限公司 | 一种数据逻辑分区的方法和系统 |
CN104731907A (zh) * | 2015-03-24 | 2015-06-24 | 浪潮集团有限公司 | 基于nosql的数据存储方法 |
CN104933042A (zh) * | 2013-09-29 | 2015-09-23 | 国家电网公司 | 基于大数据量的数据库表采集优化技术 |
CN106294565A (zh) * | 2016-07-27 | 2017-01-04 | 中国农业银行股份有限公司 | 一种数据库访问方法及系统 |
-
2017
- 2017-07-06 CN CN201710548149.7A patent/CN107480184A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838770A (zh) * | 2012-11-26 | 2014-06-04 | 中国移动通信集团北京有限公司 | 一种数据逻辑分区的方法和系统 |
CN104933042A (zh) * | 2013-09-29 | 2015-09-23 | 国家电网公司 | 基于大数据量的数据库表采集优化技术 |
CN104731907A (zh) * | 2015-03-24 | 2015-06-24 | 浪潮集团有限公司 | 基于nosql的数据存储方法 |
CN106294565A (zh) * | 2016-07-27 | 2017-01-04 | 中国农业银行股份有限公司 | 一种数据库访问方法及系统 |
Non-Patent Citations (1)
Title |
---|
李晓: "基于 MongoDB 和 Asio 的传感器数据存储系统设计", 《电子技术与软件工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189843A (zh) * | 2018-08-02 | 2019-01-11 | 浪潮通用软件有限公司 | 基于企业年金系统账管费扣收文件请求与解析响应的方法 |
CN109583746A (zh) * | 2018-11-26 | 2019-04-05 | 东软集团股份有限公司 | 设置流程的路由规则的方法及装置、可读存储介质 |
CN109583746B (zh) * | 2018-11-26 | 2020-10-30 | 东软集团股份有限公司 | 设置流程的路由规则的方法及装置、可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808284B (zh) | 一种增量升级方法及应用其的服务器 | |
CN102640151B (zh) | 用于传输日志记录的方法和系统 | |
CN108388604A (zh) | 用户权限数据管理装置、方法及计算机可读存储介质 | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
CN107633016A (zh) | 数据处理方法及装置和电子设备 | |
CN109783543B (zh) | 数据查询方法、装置、设备和存储介质 | |
CN103514229A (zh) | 用于在分布式数据库系统中处理数据库数据的方法和装置 | |
CN104301233A (zh) | 路由访问方法、路由访问系统及用户终端 | |
CN109614262A (zh) | 业务校验方法、装置及计算机可读存储介质 | |
CN102834806A (zh) | 系统结构管理设备、系统结构管理方法和程序 | |
CN109213604A (zh) | 一种数据源的管理方法和装置 | |
CN110781183A (zh) | Hive数据库中增量数据的处理方法、装置以及计算机设备 | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
CN107480184A (zh) | 一种数据访问方法及设备 | |
CN107451202A (zh) | 一种数据访问方法及设备 | |
CN105389394A (zh) | 基于多个数据库集群的数据请求处理方法及装置 | |
US20090100000A1 (en) | Acquisition and expansion of storage area network interoperation relationships | |
US9910926B2 (en) | Managing searches for information associated with a message | |
CN105518672A (zh) | 跨多个模型的数据检索 | |
CN106649584A (zh) | 一种主从式数据库系统中的索引处理方法和装置 | |
CN110096692B (zh) | 一种语义信息处理方法和装置 | |
CN104636384B (zh) | 一种处理文档的方法及装置 | |
KR20110035665A (ko) | 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법 | |
CN107480185A (zh) | 一种数据访问方法及设备 | |
CN113495891A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171215 |
|
RJ01 | Rejection of invention patent application after publication |