37MyCat - 分片规则(按单月小时拆分)

简介: 37MyCat - 分片规则(按单月小时拆分)

此规则是单月内按照小时拆分,最小粒度是小时,可以一天最多24个分片,最少1个分片,一个月完后下月从头开始循环。每个月月尾,需要手工清理数据。

<tableRule name="sharding-by-hour">
   <rule>
     <columns>create_time</columns>
     <algorithm>sharding-by-hour</algorithm>
   </rule>
 </tableRule>
<function name="sharding-by-hour" class="org.opencloudb.route.function.LatestMonthPartion">
   <property name="splitOneDay">24</property> 
 </function>

配置说明:

columns: 拆分字段,字符串类型(yyyymmddHH)splitOneDay : 一天切分的分片数

LatestMonthPartion partion = new LatestMonthPartion();
 partion.setSplitOneDay(24);
 Integer val = partion.calculate("2015020100");
 assertTrue(val == 0);
 val = partion.calculate("2015020216");
 assertTrue(val == 40);
 val = partion.calculate("2015022823");
 assertTrue(val == 27 * 24 + 23);
 Integer[] span = partion.calculateRange("2015020100", "2015022823");
 assertTrue(span.length == 27 * 24 + 23 + 1);
 assertTrue(span[0] == 0 && span[span.length - 1] == 27 * 24 + 23);
 span = partion.calculateRange("2015020100", "2015020123");
 assertTrue(span.length == 24);
 assertTrue(span[0] == 0 && span[span.length - 1] == 23);


目录
相关文章
|
6月前
|
SQL 算法 Java
分库分表如何管理不同实例中几万张分片表?
分库分表如何管理不同实例中几万张分片表?
200 2
38MyCat - 分片规则(自然月分片)
38MyCat - 分片规则(自然月分片)
56 0
31MyCat - 分片规则(按日期分片)
31MyCat - 分片规则(按日期分片)
49 0
|
算法
29MyCat - 分片规则(固定分片hash算法)
29MyCat - 分片规则(固定分片hash算法)
51 0
|
SQL 算法 Java
自定义水平分库分表策略【范围分片】
自定义水平分库分表策略【范围分片】
|
存储 JavaScript Java
亿级别大表拆分 —— 记一次分表工作的心路历程
亿级别大表拆分 —— 记一次分表工作的心路历程
|
算法
Mycat分表分库规则--待发文
Mycat分表分库规则--待发文
85 0
Mycat分表分库规则--待发文
|
存储 算法 关系型数据库
MyCat - 分片 - 水平拆分 - 分片配置及测试 | 学习笔记
快速学习 MyCat - 分片 - 水平拆分 - 分片配置及测试
MyCat - 分片 - 水平拆分 - 分片配置及测试 | 学习笔记
|
存储 关系型数据库 MySQL
MyCat - 分片 - 分片规则 - 准备工作 | 学习笔记
快速学习 MyCat - 分片 - 分片规则 - 准备工作
MyCat - 分片 - 分片规则 - 准备工作 | 学习笔记
|
存储 SQL 关系型数据库
MyCat - 分片 - 垂直拆分 - 分片配置 | 学习笔记
快速学习 MyCat - 分片 - 垂直拆分 - 分片配置
MyCat - 分片 - 垂直拆分 - 分片配置 | 学习笔记