数据处理方法、装置、计算设备以及介质与流程

文档序号:25857559发布日期:2021-07-13 16:11阅读:59来源:国知局
本公开的实施方式涉及数据库
技术领域
:,更具体地,本公开的实施方式涉及数据处理方法、数据处理装置、计算设备以及介质。
背景技术
::本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。关系型数据库是指采用了关系模型来组织数据的数据库,关系型数据库例如sqlite广泛应用在各种终端设备例如嵌入式设备中,如何更高效地对关系型数据库进行数据处理成为了关注的焦点。在相关技术方案中,在业务逻辑层和用户界面层中,采用面向对象的的对象模型进行数据处理,在数据库层采用面向关系的关系模型进行数据处理。然而,由于对象模型与关系模型并不匹配,需要通过sql语句对关系型数据库的对象进行数据处理操作,例如增加数据、删除数据等操作。技术实现要素:但是,上述技术方案中,由于对象模型与关系模型不匹配,需要通过sql语句对关系型数据库进行数据处理操作,难以高效地对关系型数据库进行数据处理。为此,非常需要一种改进的数据处理方法,以使能够满足高并发的数据处理需求。在本上下文中,本公开的实施方式期望提供一种数据处理方法、数据处理装置、计算设备以及介质。在本公开实施例的第一方面中,提供了一种数据处理方法,应用于基于对象关系映射orm的数据库,所述数据库与终端设备上的目标应用程序对应,所述目标应用程序配置有数据库信息类文件,所述数据库信息类文件用于记录所述数据库的分库与对应分库中的数据表的库表对应关系,所述方法包括:响应于对所述目标应用程序的数据处理操作,确定与所述数据处理操作对应的待处理数据表的标识信息;基于所述待处理数据表的标识信息以及所述库表对应关系,确定所述待处理数据表对应的分库信息;从所述分库信息对应的分库中查询所述待处理数据表,并执行所述数据处理操作。根据第一方面,在一些示例实施例中,所述方法还包括:在初始化所述目标应用程序时,加载所述数据库信息类文件;从所述数据库信息类文件中读取所述库表对应关系;将所述库表对应关系存储到所述目标应用程序对应的内存中。根据第一方面,在一些示例实施例中,所述基于所述待处理数据表的标识信息以及所述库表对应关系,确定所述待处理数据表对应的分库信息,包括:从所述目标应用程序对应的内存中读取所述库表对应关系;基于所述待处理数据表的标识信息,从读取的所述库表对应关系中确定所述待处理数据表对应的分库信息。根据第一方面,在一些示例实施例中,所述方法还包括:响应于对所述数据库中目标分库的新增表操作,在所述数据库信息类文件中记录所述新增数据表的标识信息与所述目标分库的标识信息的所述库表对应关系。根据第一方面,在一些示例实施例中,所述在所述数据库信息类文件中记录所述新增数据表的标识信息与所述目标分库的标识信息的所述库表对应关系,包括:在所述数据库信息类文件中记录所述目标分库的标识信息、所述新增数据表的标识信息以及所述新增数据表对应的通用资源标识uri三者之间的对应关系;和/或在所述数据库信息类文件中记录所述目标分库的标识信息、所述新增数据表的标识信息以及所述新增数据表对应的类文件三者之间的对应关系。根据第一方面,在一些示例实施例中,每个所述分库与一个分库管理类对应,所述方法还包括:向所述目标分库对应的分库管理类的类文件中添加所述新增数据表的信息;基于所述分库管理类在所述目标分库创建所述新增数据表。根据第一方面,在一些示例实施例中,所述数据库信息类文件中还记录有:所述待处理数据表的标识信息与所述待处理数据表对应的uri之间的表与地址对应关系,所述从所述分库信息对应的分库中查询所述待处理数据表,包括:基于所述待处理数据表的标识信息,从所述表与地址对应关系中确定所述待处理数据表的uri;基于所述待处理数据表的uri,从所述分库信息对应的分库查询所述待处理数据表。根据第一方面,在一些示例实施例中,所述数据库信息类文件还记录有:所述待处理数据表的标识信息与所述待处理数据表的类文件之间的表与类对应关系,所述执行所述数据处理操作,包括:基于所述待处理数据表的标识信息,从所述表与类对应关系中确定所述待处理数据表的类文件;基于所述类文件对查询到的所述待处理数据表执行所述数据处理操作。根据第一方面,在一些示例实施例中,每个所述分库与一个分库表管理类对应,所述方法还包括:响应于将所述数据库的第一分库中的源数据表迁移到第二分库的数据迁移操作,确定所述第一分库对应的第一分库表管理类和所述第二分库对应的第二分库表管理类;通过所述第二分库表管理类在所述第二分库创建与所述源数据表对应的目标数据表;将所述源数据表的数据从所述第一分库迁移到所述第二分库的目标数据表;通过所述第一分库管理类删除所述第一分库中的所述源数据表。根据第一方面,在一些示例实施例中,所述确定所述待处理数据表对应的分库信息,包括:确定所述待处理数据表对应的分库配置信息,所述分库配置信息包括分库名称、分库版本以及对应的操作类信息中的一种或多种。根据第一方面,在一些示例实施例中,所述分库配置信息包括分库名称以及分库版本,所述从所述分库信息对应的分库中查询所述待处理数据表,包括:根据所述分库配置信息中的所述分库名称以及所述分库版本确定对应的分库;从所述对应的分库中查询所述待处理数据表。在本公开实施例的第二方面中,提供了一种数据处理装置,应用于基于对象关系映射orm的数据库,所述数据库与终端设备上的目标应用程序对应,所述目标应用程序配置有数据库信息类文件,所述数据库信息类文件用于记录所述数据库的分库与对应分库中的数据表的库表对应关系,所述装置包括:表确定模块,用于响应于对所述目标应用程序的数据处理操作,确定与所述数据处理操作对应的待处理数据表的标识信息;分库确定模块,用于基于所述待处理数据表的标识信息以及所述库表对应关系,确定所述待处理数据表对应的分库信息;数据处理模块,用于从所述分库信息对应的分库中查询所述待处理数据表,并执行所述数据处理操作。根据第二方面,在一些示例实施例中,所述装置还包括:加载模块,用于在初始化所述目标应用程序时,加载所述数据库信息类文件;关系提取模块,用于从所述数据库信息类文件中读取所述库表对应关系;关系存储模块,用于将所述库表对应关系存储到所述目标应用程序对应的内存中。根据第二方面,在一些示例实施例中,所述分库确定模块,包括:关系获取模块,用于从所述目标应用程序对应的内存中读取所述库表对应关系;分库确定单元,用于基于所述待处理数据表的标识信息,从读取的所述库表对应关系中确定所述待处理数据表对应的分库信息。根据第二方面,在一些示例实施例中,所述装置还包括:关系记录模块,用于响应于对所述数据库中目标分库的新增表操作,在所述数据库信息类文件中记录所述新增数据表的标识信息与所述目标分库的标识信息的所述库表对应关系。根据第二方面,在一些示例实施例中,所述关系记录模块还用于:在所述数据库信息类文件中记录所述目标分库的标识信息、所述新增数据表的标识信息以及所述新增数据表对应的通用资源标识uri三者之间的对应关系;和/或在所述数据库信息类文件中记录所述目标分库的标识信息、所述新增数据表的标识信息以及所述新增数据表对应的类文件三者之间的对应关系。根据第二方面,在一些示例实施例中,每个所述分库与一个分库管理类对应,所述装置还包括:信息添加模块,用于向所述目标分库对应的分库管理类的类文件中添加所述新增数据表的信息;表创建模块,用于基于所述分库管理类在所述目标分库创建所述新增数据表。根据第二方面,在一些示例实施例中,所述数据库信息类文件中还记录有:所述待处理数据表的标识信息与所述待处理数据表对应的uri之间的表与地址对应关系,所述数据处理模块还用于:基于所述待处理数据表的标识信息,从所述表与地址对应关系中确定所述待处理数据表的uri;基于所述待处理数据表的uri,从所述分库信息对应的分库查询所述待处理数据表。根据第二方面,在一些示例实施例中,所述数据库信息类文件还记录有:所述待处理数据表的标识信息与所述待处理数据表的类文件之间的表与类对应关系,所述数据处理模块还用于:基于所述待处理数据表的标识信息,从所述表与类对应关系中确定所述待处理数据表的类文件;基于所述类文件对查询到的所述待处理数据表执行所述数据处理操作。根据第二方面,在一些示例实施例中,每个所述分库与一个分库表管理类对应,所述装置还包括:迁移响应模块,用于响应于将所述数据库的第一分库中的源数据表迁移到第二分库的数据迁移操作,确定所述第一分库对应的第一分库表管理类和所述第二分库对应的第二分库表管理类;目标表建立模块,用于通过所述第二分库表管理类在所述第二分库创建与所述源数据表对应的目标数据表;迁移模块,用于将所述源数据表的数据从所述第一分库迁移到所述第二分库的目标数据表;表删除模块,用于通过所述第一分库管理类删除所述第一分库中的所述源数据表。根据第二方面,在一些示例实施例中,所述分库确定模块包括:确定所述待处理数据表对应的分库配置信息,所述分库配置信息包括分库名称、分库版本以及对应的操作类信息中的一种或多种。根据第二方面,在一些示例实施例中,所述分库配置信息包括分库名称以及分库版本,所述数据处理模块还用于:根据所述分库配置信息中的所述分库名称以及所述分库版本确定对应的分库;从所述对应的分库中查询所述待处理数据表。在本公开实施例的第三方面中,提供了一种计算设备,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如上述第一方面中任一项所述的方法。在本公开实施例的第四方面中,提供了一种介质,其上存储有程序,所述程序被处理器执行时实现如上述第一方面中任一项所述的方法。根据本公开实施例的技术方案,一方面,采用基于orm框架的数据库,能够建立对象模型与关系模型的映射关系,从而能够通过该映射关系高效地对关系型数据库进行数据处理操作;另一方面,建立数据库的分库与对应分库中的数据表的库表对应关系,通过库表对应关系对关系型数据库进行数据处理操作,能够对orm数据库进行分库处理,从而能够提高orm数据库的并发处理性能,避免由于数据量较大造成数据库处理性能降低的问题。附图说明通过参考附图阅读下文的详细描述,本公开示例性实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:图1示出了根据本公开的一些实施例的数据处理方法的应用场景的示意图;图2示意性地示出了根据本公开的一些实施例的数据处理方法的流程图;图3示意性地示出了根据本公开的另一些实施例的数据处理方法的流程图;图4示意性地示出了根据本公开的一些实施例的数据处理装置的结构示意图;图5示意性地示出了根据本公开的一些实施例的新增数据表的流程图;图6示意性地示出了根据本公开的一些实施例的数据库信息类文件的示意图;图7示意性地示出了根据本公开的一些实施例的计算机可读存储介质的示意图;图8示意性地示出了根据本公开的一些实施例的数据处理装置的结构示意图;图9示意性示出了根据本公开的一些实施例的计算设备的结构示意图。在附图中,相同或对应的标号表示相同或对应的部分。具体实施方式下面将参考若干示例性实施例来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。根据本公开的实施方式,提出了一种数据处理方法、装置、计算设备和介质。在本文中,需要理解的是,所涉及的术语:orm(objectrelationalmapping,对象关系映射):orm框架是一种为了解决面向对象与关系型数据库存在的互不匹配的问题的技术,通过orm框架,可以像操作对象一样操作数据库中的表。在orm框架下,一个类对象与数据库中一个数据表对应,类对象的每个实例对应数据表中的一条记录,类的每个属性对应数据表的一个字段。库表对应关系:数据库包括多个分库,每个分库中有多个表,库表对应关系用于记录数据库中的分库与分库中的表的对应关系,该对应关系可以通过map数据结构实现。uri(universalresourceidentifier,通用资源标识):数据库中的数据表的存储位置的路径信息,可以通过数据表的uri访问数据库中对应的数据表。表与地址对应关系:数据库中的数据表的标识信息与数据表对应的uri之间的对应关系,该对应关系可以通过map数据结构实现。表与类对应关系:数据库中的数据表的标识信息与数据表的类文件之间的对应关系,该对应关系可以通过map数据结构实现。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。发明概述本发明人发现,为了解决由于对象模型与关系模型不匹配,需要通过sql语句对关系型数据库进行数据处理操作,难以高效地对关系型数据库进行数据处理的问题,在相关技术方案中,采用orm(objectrelationalmapping,对象关系映射)框架对关系型数据库进行数据处理操作,orm框架是一种为了解决面向对象与关系型数据库存在的互不匹配的问题的技术,在orm框架例如greendao下,通过使用描述对象和数据表之间的映射关系的元数据,将应用程序中的对象自动持久化到关系型数据库中。然而,随着业务发展,数据库中的数据会越来越多,单一的数据库会影响数据库数据处理性能。基于上述内容,本公开实施例的基本思想在于:采用基于orm框架的数据库,建立数据库的分库与对应分库中的数据表的库表对应关系,通过库表对应关系对关系型数据库进行数据处理操作。一方面,采用基于orm框架的数据库,能够建立对象模型与关系模型的映射关系,从而能够通过该映射关系高效地对关系型数据库进行数据处理操作;另一方面,建立数据库的分库与对应分库中的数据表的库表对应关系,通过库表对应关系对关系型数据库进行数据处理操作,能够对orm数据库进行分库处理,从而能够提高orm数据库的并发处理性能,避免数据量较大造成数据库处理性能降低的问题。在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。应用场景总览需要注意的是,下述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。图1示意性地示出了根据本公开实施例的数据处理方法的应用场景的框图。参照图1所示,该应用场景可以包括:至少一个客户端110以及服务器120,其中,客户端110安装有多种应用程序例如音乐类应用程序、视频类应用程序等。客户端110与服务器120之间通过网络130进行通信。客户端110可以为手机、平板电脑、台式计算机、便携笔记本式计算机或车载式终端等终端设备。服务器120可以为包含独立主机的物理服务器,或者为主机集群承载的虚拟服务器,或者为云服务器等。网络130可以为有线网络或无线网络,例如,网络130可以为pstn(publicswitchedtelephonenetwork,公共交换电话网络)或因特网。在一些示例实施例中,设目标应用程序为音乐播放应用程序,客户端110上设置有基于orm的数据库,该数据库包括多个分库,该数据库与客户端110上的音乐播放应用程序对应,音乐播放应用程序配置有数据库信息类文件,该数据库信息类文件用于记录该数据库的分库与对应分库中的数据表的库表对应关系,在客户端110上对音乐播放应用程序进行数据处理操作例如当前播放音乐添加到收藏歌单,客户端110响应于对音乐播放应用程序的该数据处理操作,确定与该数据处理操作对应的待处理数据表的标识信息例如收藏歌单的标识信息;基于待处理数据表的标识信息以及库表对应关系,确定待处理数据表对应的分库信息;从分库信息对应的分库中查询待处理数据表例如收藏歌单,并执行数据处理操作例如歌曲收藏处理操作。进一步地,客户端110可以将音乐播放应用程序对应的数据库中的新增数据上传至服务器120。在另一些示例实施例中,服务器120上设置有基于orm的数据库,该数据库与客户端110上的音乐播放应用程序对应,音乐播放应用程序配置有数据库信息类文件,该数据库信息类文件用于记录该数据库的分库与对应分库中的数据表的库表对应关系,在客户端110上对音乐播放应用程序进行数据处理操作例如将当前播放音乐添加到收藏歌单,服务器120响应于对音乐播放应用程序的该数据处理操作,确定与该数据处理操作对应的待处理数据表的标识信息例如收藏歌单的标识信息;基于待处理数据表的标识信息以及库表对应关系,确定待处理数据表对应的分库信息;从分库信息对应的分库中查询待处理数据表例如收藏歌单,并执行数据处理操作例如歌曲收藏处理操作。需要说明的是,虽然以目标应用程序为音乐播放应用程序为例进行了说明,但是本领域普通技术人员应该理解的是,本公开实施例的目标应用程序还可以为其他适当的应用程序例如视频类应用程序、资讯类应用程序或购物类应用程序等,这同样在本公开的保护范围内。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施例在此方面不受任何限制。相反,本公开的实施例可以应用于适用的任何场景。示例性方法下面结合上述的应用场景,参考图2来描述根据本公开示例性实施例的数据处理方法。该数据处理方法可以应用于图1的客户端110或服务器120上设置的orm数据库,该数据库与客户端110上的目标应用程序对应。下面,以客户端110执行该数据处理方法为例,对图2的示例实施例进行详细的说明。参照图2所示,在步骤s210中,响应于对目标应用程序的数据处理操作,确定与数据处理操作对应的待处理数据表的标识信息。在示例实施例中,在orm框架下,一个类对象与数据库中一个数据表对应,类对象的每个实例对应数据表中的一条记录,类的每个属性对应数据表的一个字段,通过orm框架,可以像操作对象一样操作数据库中的表。在客户端110上对目标应用程序上的对象进行数据处理操作,确定与该数据处理操作对应的待处理数据表的标识信息。举例而言,设目标应用程序为音乐播放应用程序,音乐播放应用程序上的对象为当前播放音乐,在客户端110上将音乐播放应用程序的当前播放音乐添加到收藏歌单时,客户端110响应于对音乐播放应用程序的当前播放音乐的收藏处理操作,确定与收藏处理操作对应的收藏歌单的标识信息。需要说明的是,虽然以目标应用程序为音乐播放应用程序为例进行了说明,但是本领域普通技术人员应该理解的是,本公开实施例的目标应用程序还可以为其他适当的应用程序例如视频类应用程序、资讯类应用程序或购物类应用程序等,这同样在本公开的保护范围内。在步骤s220中,基于待处理数据表的标识信息以及库表对应关系,确定待处理数据表对应的分库信息。在示例实施例中,目标应用程序对应的数据库包括多个分库,每个分库中存储有数据表,目标应用程序配置有数据库信息类文件,该数据库信息类文件用于记录该数据库的分库与对应分库中的数据表的库表对应关系。该库表对应关系可以为map数据结构,map数据结构是键-值对的集合,例如键为表的标识信息,值为表的分库信息,设有三个分库,6个数据表,该库表对应关系可以为{(table1,分库1)、(table2,分库1)、(table3,分库2)、(table4,分库2)、(table5,分库3)、(table6,分库3)},基于待处理数据表的标识信息从map数据结构的库表对应关系中查找待处理数据表对应的分库信息。举例而言,设目标应用程序为音乐播放应用程序,待处理数据表为收藏歌单表,对收藏歌单表的标识信息进行哈希运算,得到对应的哈希值,根据收藏歌单表的标识信息的哈希值从库表对应关系中查找对应的分库信息。需要说明的是,虽然以库表对应关系的数据结构为map数据结构为例进行说明,但是本领域技术人员应该理解的是,库表对应关系的数据结构还可以为其他适当的数据结构例如哈希表数据结构或集合数据结构等数据结构,这同样在本公开的保护范围内。在一些示例实施例中,确定待处理数据表对应的分库信息,包括:确定待处理数据表对应的分库配置信息,分库配置信息包括分库名称、分库版本以及对应的操作类信息中的一种或多种。在步骤s230中,从分库信息对应的分库中查询待处理数据表,并执行数据处理操作。在示例实施例中,在得到分库信息之后,从分库信息对应的分库中查询待处理数据表,对查询到待处理数据表执行数据处理操作。举例而言,设目标应用程序为音乐播放应用程序,待处理数据表为收藏歌单表,数据处理操作为收藏处理操作,根据分库信息确定对应的分库,根据收藏歌单表的标识信息,从对应的分库中查询收藏歌单表,执行将当前播放音乐加入到收藏歌单表的数据添加操作即向收藏歌单表添加一条记录。需要说明的是,虽然以数据添加操作为例进行说明,但是本领域技术人员应该理解的是,数据处理操作还可以为其他适当的处理操作,例如数据删除操作、数据查询操作或数据更改操作等,这同样在本公开的保护范围内。在一些示例实施例中,分库配置信息包括分库名称以及分库版本,从分库信息对应的分库中查询待处理数据表,包括:根据分库配置信息中的分库名称以及分库版本确定对应的分库;从对应的分库中查询待处理数据表。根据图2的示例实施例中的技术方案,一方面,采用基于orm框架的数据库,能够建立对象模型与关系模型的映射关系,从而能够通过该映射关系高效地对关系型数据库进行数据处理操作;另一方面,建立数据库的分库与对应分库中的数据表的库表对应关系,通过库表对应关系对关系型数据库进行数据处理操作,能够对orm数据库进行分库处理,从而能够提高orm数据库的并发处理性能,避免由于数据量较大造成数据库处理性能降低的问题。此外,在示例实施例中,数据库信息类文件中还记录有:待处理数据表的标识信息与所述待处理数据表对应的uri之间的表与地址对应关系,从分库信息对应的分库中查询待处理数据表,包括:基于待处理数据表的标识信息,从表与地址对应关系中确定待处理数据表的uri;基于待处理数据表的uri,从分库信息对应的分库查询待处理数据表。进一步地,在一些示例实施例中,数据库信息类文件还记录有:待处理数据表的标识信息与待处理数据表的类文件之间的表与类对应关系,执行数据处理操作,包括:基于待处理数据表的标识信息,从表与类对应关系中确定待处理数据表的类文件;基于类文件对查询到的待处理数据表执行所述数据处理操作。通过在数据库信息类文件中记录数据表以及数据表的uri的对应关系以及数据表与对应的表结构信息的对应关系,在数据处理操作时根据通过上述对应关系进行数据处理操作,不仅提高了数据处理效率,而且不需要在数据库操作接口注解标记数据表的uri或表结构信息。此外,由于能够简化数据库操作的应用程序接口调用,避免通过应用程序接口调用传参,进一步提高了数据处理效率。图3示意性地示出了根据本公开的另一些实施例的数据处理方法的流程图。在步骤s310中,在初始化目标应用程序时,加载数据库信息类文件。在示例实施例中,在启动目标应用程序时,从目标应用程序的文件目录路径下加载数据库信息类文件,该数据库信息类文件用于记录该数据库的分库与对应分库中的数据表的库表对应关系。举例而言,设目标应用程序为音乐播放应用程序,在客户端110上启动该音乐播放应用程序时,从音乐播放应用程序的文件目录路径下加载数据库信息类文件的代码。在步骤s320中,从数据库信息类文件中读取库表对应关系。在示例实施例中,从目标应用程序的文件目录路径下加载数据库信息类文件后,从数据库信息类文件中读取库表对应关系,该库表对应关系可以为map数据结构,map数据结构是键-值对的集合,例如键为表的标识信息,值为表的分库信息,从该map结构中读取库表对应关系。在步骤s330中,将库表对应关系存储到目标应用程序对应的内存中。在示例实施例中,客户端110为每个运行中的应用程序分配一块内存,将读取的库表对应关系存储到目标应用程序对应的内存中。设目标应用程序为音乐播放应用程序,该库表对应关系为map数据结构,将map数据结构的库表对应关系存储到音乐播放应用程序对应的内存中。在步骤s340中,响应于对目标应用程序的数据处理操作,确定与数据处理操作对应的待处理数据表的标识信息。在示例实施例中,步骤s340与步骤s210的实现过程以及实现效果基本相同,在此不再赘述。在步骤s350中,基于待处理数据表的标识信息以及库表对应关系,确定待处理数据表对应的分库信息。在示例实施例中,从目标应用程序对应的内存中读取库表对应关系;基于待处理数据表的标识信息,从读取的库表对应关系中确定待处理数据表对应的分库信息。举例而言,设库表对应关系为map数据结构,待处理数据表为收藏歌单表,对收藏歌单表的标识信息进行哈希运算,将哈希运算的值作为map数据结构的键key,通过key从map数据结构中确定收藏歌单表对应的分库信息。在步骤s360中,从分库信息对应的分库中查询待处理数据表,并执行数据处理操作。在示例实施例中,步骤s360与步骤s230的实现过程以及实现效果相同,在此不再赘述。根据图3的示例实施例中的技术方案,一方面,将库表映射关系存储到内存中,根据库表对应关系确定数据表对应的分库信息,由于内存的存取时间较短,从而能够高效地获取数据表的分库信息;另一方面,能够简化数据库操作的应用程序接口调用,避免通过应用程序接口调用传参,进一步提高了数据处理效率;再一方面,通过库表对应关系对关系型数据库进行数据处理操作,由于能够对orm数据库进行分库,从而能够提高orm数据库的并发处理性能,避免由于数据量较大造成数据库处理性能降低的问题。图4示意性地示出了根据本公开的一些实施例的数据处理装置的结构示意图。参照图4所示,该数据处理装置包括数据库表管理类410即dbhelper、数据库信息类420即dbinfo以及数据库配置类430即dbconfig,其中,数据库表管理类410即dbhelper用于在数据库的分库创建、升级时批量处理分库中的表信息,每个数据库表管理类与一个分库对应;数据库信息类420即dbinfo:用于记录数据库的分库与分库中的数据表的对应关系,维护分库与分库中的数据表的映射关系,根据数据库信息类dbinfo,便于在crud(即增加(create)、查询(retrieve)、更新(update)和删除(delete))操作时动态查询到数据表对应的分库信息。数据库配置类430即dbconfig:用于维护数据库中各个分库的信息,包含分库版本、名称和crud的数据操作管理类、数据库名称等。根据图4的示例实施例中的技术方案,一方面,建立数据库的分库与对应分库中的数据表的库表对应关系,通过库表对应关系对关系型数据库进行数据处理操作,能够简化数据库操作的应用程序接口调用,避免通过应用程序接口调用传参,提高了数据处理效率,降低了数据库分库对业务的侵入性;另一方面,由于能够对orm数据库进行分库,从而能够提高orm数据库的并发处理性能,避免由于数据量较大造成数据库处理性能降低的问题;再一方面,由于顶层调用不需要知道哪个表在哪个库中,避免了数据库操作时需要人工记忆区分分库与表的关系。图5示意性地示出了根据本公开的一些实施例的新增数据表的流程图。参照图5所示,在步骤s510中,在数据库信息类文件中记录新增数据表的标识信息与对应分库的标识信息的库表对应关系。在示例实施例中,响应于对数据库中目标分库的新增表操作,在数据库信息类文件中记录新增数据表的标识信息与目标分库的标识信息的库表对应关系。举例而言,设目标应用程序为音乐播放应用程序,数据库包括原始表分库和新增表分库,在客户端110上的音乐播放应用程序上新建歌单时,客户端110响应于对数据库中新增表分库的新增表操作,在数据库信息类文件中记录新增歌单表的标识信息与新增表分库的标识信息的库表对应关系。进一步,在数据库信息类文件中记录新增数据表的标识信息与目标分库的标识信息的库表对应关系,包括:在数据库信息类文件中记录目标分库的标识信息、新增数据表的标识信息以及新增数据表对应的uri三者之间的对应关系;和/或在数据库信息类文件中记录目标分库的标识信息、新增数据表的标识信息以及新增数据表对应的类文件三者之间的对应关系。参照图6所示,数据库信息类包括表与类对应关系类tableclassinfo、表与地址对应关系类tableuriinfo,其中,tableuriinfo用于记录目标分库的标识信息、新增数据表的标识信息以及新增数据表对应的uri三者之间的对应关系,tableclassinfo用于记录目标分库的标识信息、新增数据表的标识信息以及新增数据表对应的类文件三者之间的对应关系。这两种对应关系或映射关系集合的建立均是为了在数据库crud操作时能够更高效地查询到表信息。通过在数据库信息类文件中记录数据表以及数据表的uri的对应关系以及数据表与数据表对应的表结构信息的对应关系,在数据处理操作时根据通过上述对应关系进行数据处理操作,不仅提高了数据处理效率,而且不需要在数据库操作接口注解标记数据表的uri或表结构信息。在步骤s520中,在分库管理类的类文件中添加新增数据表的信息。在示例实施例中,每个分库与一个分库管理类对应,向目标分库对应的分库管理类的类文件中添加新增数据表的信息,分库管理类用于在目标分库创建新增数据表。在步骤s530中,通过分库表管理类进行数据库升级。在示例实施例中,每个所述分库与一个分库表管理类对应,分库表管理类用于处理数据库分库的数据表创建和数据库升级。若对数据库中的第一分库进行版本升级操作,则响应于将数据库的第一分库中的源数据表迁移到第二分库的数据迁移操作,确定第一分库对应的第一分库表管理类和所述第二分库对应的第二分库表管理类。举例而言,设目标应用程序为音乐播放应用程序,对应的数据库包括:原始表分库和新增表分库,第一分库为原始表分库,第二分库为新增表分库,在对数据库进行版本升级时,响应于将数据库的第一分库中的源数据表迁移到第二分库的数据迁移操作,确定第一分库对应的第一分库表管理类和第二分库对应的第二分库表管理类。进一步地,在示例实施例中,通过第二分库表管理类在第二分库创建与源数据表对应的目标数据表;将源数据表的数据从第一分库迁移到第二分库的目标数据表;通过第一分库表管理类删除第一分库中的源数据表。以下代码示出了分库表管理类中的创建表和删除表的方法即createalltables方法和dropalltables方法,这两个方法用于在处理数据库分库的升级和降级时调用,用于在分库中创建数据表或者删除分库中的数据表。根据图5的示例实施例的技术方案中,一方面,通过建立数据库的分库与新增数据表的库表对应关系,通过库表对应关系对关系型数据库进行数据处理操作,能够简化数据库操作的应用程序接口调用,避免通过应用程序接口调用传参;另一方面,由于顶层调用不需要知道哪个表在哪个库中,避免了数据库操作时需要人工记忆区分分库与表的关系。示例性介质在介绍了本公开示例性实施例的方法之后,接下来,对本公开示例性实施例的介质进行说明。在一些可能的实施例中,本公开的各个方面还可以实现为一种介质,其上存储有程序代码,当所述程序代码被设备的处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的数据处理方法中的步骤。在一些可能的实施例中,所述设备的处理器执行所述程序代码时用于实现如下步骤:步骤s210,响应于对目标应用程序的数据处理操作,确定与数据处理操作对应的待处理数据表的标识信息;步骤s220,基于待处理数据表的标识信息以及库表对应关系,确定待处理数据表对应的分库信息;步骤s230,从分库信息对应的分库中查询待处理数据表,并执行数据处理操作。参考图7所示,描述了根据本公开的实施例的用于实现上述数据处理方法的程序产品700,其可以采用便携式紧凑盘只读存储器并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此。需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器、只读存储器、可擦式可编程只读存储器、光纤、便携式紧凑盘只读存储器、光存储器件、磁存储器件、或者上述的任意合适的组合。可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网或广域网—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。示例性装置在介绍了本公开示例性实施例的介质之后,接下来,参考图8对本公开示例性实施例的数据处理装置进行说明。图8示意性地示出了根据本公开的一些实施例的数据处理装置的结构示意图。参照图8所示,数据处理装置800应用于基于对象关系映射orm的数据库,所述数据库与终端设备上的目标应用程序对应,所述目标应用程序配置有数据库信息类文件,所述数据库信息类文件用于记录所述数据库的分库与对应分库中的数据表的库表对应关系,所述装置800包括:表确定模块810,用于响应于对所述目标应用程序的数据处理操作,确定与所述数据处理操作对应的待处理数据表的标识信息;分库确定模块820,用于基于所述待处理数据表的标识信息以及所述库表对应关系,确定所述待处理数据表对应的分库信息;数据处理模块830,用于从所述分库信息对应的分库中查询所述待处理数据表,并执行所述数据处理操作。在一些示例实施例中,所述装置800还包括:加载模块,用于在初始化所述目标应用程序时,加载所述数据库信息类文件;关系提取模块,用于从所述数据库信息类文件中读取所述库表对应关系;关系存储模块,用于将所述库表对应关系存储到所述目标应用程序对应的内存中。在一些示例实施例中,所述分库确定模块820包括:关系获取模块,用于从所述目标应用程序对应的内存中读取所述库表对应关系;分库确定单元,用于基于所述待处理数据表的标识信息,从读取的所述库表对应关系中确定所述待处理数据表对应的分库信息。在一些示例实施例中,所述装置800还包括:关系记录模块,用于响应于对所述数据库中目标分库的新增表操作,在所述数据库信息类文件中记录所述新增数据表的标识信息与所述目标分库的标识信息的所述库表对应关系。在一些示例实施例中,所述关系记录模块还用于:在所述数据库信息类文件中记录所述目标分库的标识信息、所述新增数据表的标识信息以及所述新增数据表对应的通用资源标识uri三者之间的对应关系;和/或在所述数据库信息类文件中记录所述目标分库的标识信息、所述新增数据表的标识信息以及所述新增数据表对应的类文件三者之间的对应关系。在一些示例实施例中,每个所述分库与一个分库管理类对应,所述装置800还包括:信息添加模块,用于向所述目标分库对应的分库管理类的类文件中添加所述新增数据表的信息;表创建模块,用于基于所述分库管理类在所述目标分库创建所述新增数据表。在一些示例实施例中,所述数据库信息类文件中还记录有:所述待处理数据表的标识信息与所述待处理数据表对应的uri之间的表与地址对应关系,所述数据处理模块830还用于:基于所述待处理数据表的标识信息,从所述表与地址对应关系中确定所述待处理数据表的uri;基于所述待处理数据表的uri,从所述分库信息对应的分库查询所述待处理数据表。在一些示例实施例中,所述数据库信息类文件还记录有:所述待处理数据表的标识信息与所述待处理数据表的类文件之间的表与类对应关系,所述数据处理模块830还用于:基于所述待处理数据表的标识信息,从所述表与类对应关系中确定所述待处理数据表的类文件;基于所述类文件对查询到的所述待处理数据表执行所述数据处理操作。在一些示例实施例中,每个所述分库与一个分库表管理类对应,所述装置800还包括:迁移响应模块,用于响应于将所述数据库的第一分库中的源数据表迁移到第二分库的数据迁移操作,确定所述第一分库对应的第一分库表管理类和所述第二分库对应的第二分库表管理类;目标表建立模块,用于通过所述第二分库表管理类在所述第二分库创建与所述源数据表对应的目标数据表;迁移模块,用于将所述源数据表的数据从所述第一分库迁移到所述第二分库的目标数据表;表删除模块,用于通过所述第一分库管理类删除所述第一分库中的所述源数据表。在一些示例实施例中,所述分库确定模块820包括:确定所述待处理数据表对应的分库配置信息,所述分库配置信息包括分库名称、分库版本以及对应的操作类信息中的一种或多种。在一些示例实施例中,所述分库配置信息包括分库名称以及分库版本,所述数据处理模块830还用于:根据所述分库配置信息中的所述分库名称以及所述分库版本确定对应的分库;从所述对应的分库中查询所述待处理数据表。由于图8的示例实施例的数据处理装置的各个功能模块与上述数据处理方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的数据处理方法的实施例。示例性计算设备在介绍了本公开示例性实施例的方法、介质和装置之后,接下来,介绍根据本公开的另一示例性实施例的计算设备。所属
技术领域
:的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。在一些可能的实施例中,根据本公开实施例的计算设备可以至少包括至少一个处理器、以及至少一个存储器。其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的数据处理方法中的步骤。例如,所述处理器可以执行如图2中所示的步骤:步骤s210,响应于对目标应用程序的数据处理操作,确定与数据处理操作对应的待处理数据表的标识信息;步骤s220,基于待处理数据表的标识信息以及库表对应关系,确定待处理数据表对应的分库信息;步骤s230,从分库信息对应的分库中查询待处理数据表,并执行数据处理操作。又如,所述处理器也可以执行如图3中所示的步骤。下面参照图9来描述根据本公开的示例实施例的电子设备900。图9所示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930。总线930包括数据总线、地址总线和控制总线。存储单元920可以包括易失性存储器形式的可读介质,例如ram(randomaccessmemory,随机存取存储器)921和/或高速缓存存储器922,还可以进一步包括rom(read-onlymemory,只读存储器)923。存储单元920还可以包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。电子设备900也可以与一个或多个外部设备940(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(i/o)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网,广域网和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid(redundantarraysofindependentdisks,独立冗余磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。应当注意,尽管在上文详细描述中提及了数据处理装置的若干单元或子单元,但是这种划分仅仅是示例性的,并非是强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或单元的特征和功能可以在一个模块或单元中具体化。反之,上文描述的一个模块或单元的特征和功能可以进一步划分为由多个模块或单元来具体化。此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1