- 实现方式:单月内按照小时拆分,最小粒度是小时,一天最多可以有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="io.mycat.route.function.LatestMonthPartion">
<property name="splitOneDay">24</property>
</function>
-
相关属性:
- splitOneDay:为一天切分的分片数
注意:该分片规则的数据字段必须为字符串类型,格式为"yyyyMMddHH",格式需要符合Java标准;dataNode 的选择顺序,从每个月的第一天0时开始累计,比如 2018020100 返回的时第一个 dataNode,而 2018020200 则时第 25 个(每天分24片的情况下) dataNode。