Mycat 分片规则详解--单月小时分片

时间:2022-08-09 06:51:37
  • 实现方式:单月内按照小时拆分,最小粒度是小时,一天最多可以有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。