[发明专利]动态分表数据处理方法和装置有效
申请号: | 201610978409.X | 申请日: | 2016-11-07 |
公开(公告)号: | CN108062314B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 刘国健 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/22 |
代理公司: | 北京成创同维知识产权代理有限公司 11449 | 代理人: | 蔡纯;张靖琳 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 数据处理 方法 装置 | ||
1.一种动态分表数据处理方法,其中,包括以下步骤:
解析动态分表策略,获取动态分表配置信息,所述动态分表配置信息至少包括预分表数量、检验周期和创建分表策略;
查询数据库,获取对应于数据实体的空数据表的数量和数据表实例信息;
在检验周期内,检验当前空数据表的数量是否大于或等于所述预分表数量;
如果当前空数据表的数量小于所述预分表数量,根据动态分表配置信息中的所述创建分表策略创建数据表并获得新数据表的实例信息,以使当前空数据表的数量大于或等于所述预分表数量;和
根据新数据表的实例信息更新所述数据实体的数据表实例信息。
2.如权利要求1所述的动态分表数据处理方法,其中,根据动态分表配置信息中的所述创建分表策略创建数据表并获得新数据表的实例信息的步骤具体包括:
读取动态分表配置信息中的所述创建分表策略,获取指定的数据表表名前缀、创建语句和单表最大行数;
根据所述数据表表名前缀和创建语句生成相应的数据表;和
根据所述数据表得到对应的数据表实例,其中,所述数据表实例的信息至少包括主键范围和写入表标识,其中,主键范围为N-M,N为主键范围最小值,N=上一个相邻数据表实例主键范围的最大值+1,M为主键范围最大值,M=N+单表最大行数,写入表标识设置为无效。
3.如权利要求1或2所述的动态分表数据处理方法,其中,在解析动态分表策略之前,以在所述数据实体定义中增加注解的方式于配置所述动态分表策略;
在解析动态分表策略时,通过解析所述注解,获得所述动态分表配置信息。
4.如权利要求1所述的动态分表数据处理方法,其中,所述动态分表策略还包括主键生成策略,在解析所述动态分表策略获得的所述动态分表配置信息中,还包括所述主键生成策略;
当有数据写请求时,识别待写入的数据实体类型;
根据所述数据实体类型,从对应类型的数据实体的动态分表配置信息中获取主键生成策略;
根据所述主键生成策略生成待写入数据的主键;
根据所述待写入数据的主键和数据表实例信息计算得到写入表;和
将待写入数据插入到所述写入表中,并更新所述数据实体的数据表实例信息。
5.如权利要求4所述的动态分表数据处理方法,其中,所述根据所述待写入数据的主键和数据表实例信息计算得到写入表的步骤包括:
根据数据表实例信息中数据表的写入表标识,将写入表标识有效的数据表确定为预写入表;
判断生成的主键是否位于所述预写入表的主键范围内;
如果所述主键位于所述预写入表的主键范围内,将所述预写入表确定为用于插入数据的写入表;和
如果所述主键超出了所述预写入表的主键范围,将预写入表的写入表标识设置为无效,将预写入表的下一个数据表的实例信息中的写入表标识设置为有效,并将与其对应的数据表作为插入数据的写入表。
6.如权利要求1所述的动态分表数据处理方法,其中,当有数据读请求时,识别待查询数据的数据实体类型;
根据所述数据实体类型,读取所述数据实体的数据表实例信息;
当所述数据读请求中包括待查询数据的主键时,根据所述主键和所述数据表实例信息,确定对应的数据表;
在所述数据表中查询得到相应的数据;和
将查询结果返回给用户;
当所述数据读请求中包括查询条件时,根据所述数据表实例信息确定所述数据实体的所有数据表;
根据所述查询条件查询所述所有数据表;
统计根据所述查询条件查询后得到的数据数量;
根据所述数据数量及预设的分页信息,确定目标数据表;和
查询所述目标数据表,读取查询结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610978409.X/1.html,转载请声明来源钻瓜专利网。