开发者社区> 问答> 正文

关于hash分区的问题

关于这个canal.mq.partitionHash的问题,如果我需要投递我所有的表,那我如何写? 或者,我需要我的部分表,他们的主键都是ID,如何写?

最后,如果我的部分表的主键是ID,另一部分是NAME,如何写? 麻烦大神解答下,谢谢!

原提问者GitHub用户ZSH9053

展开
收起
古拉古拉 2023-05-08 16:56:13 54 0
1 条回答
写回答
取消 提交回答
  • 最新版本1.1.3, 配置格式:schema.table:pk1^pk2,多个配置之间使用逗号分隔

    例子1:test\.test:pk1^pk2 指定匹配的单表,对应的hash字段为pk1 + pk2

    例子2:.\..*:id 正则匹配,指定所有正则匹配的表对应的hash字段为id

    例子3:.\..*:$pk$ 正则匹配,指定所有正则匹配的表对应的hash字段为表主键(自动查找)

    例子4: 匹配规则啥都不写,则默认发到0这个partition上

    例子5:.\..* ,不指定pk信息的正则匹配,将所有正则匹配的表,对应的hash字段为表名

    按表hash: 一张表的所有数据可以发到同一个分区,不同表之间会做散列 (会有热点表分区过大问题)

    例子6: test\.test:id,.\..* , 针对test的表按照id散列,其余的表按照table散列

    大家可以结合自己的业务需求,设置匹配规则,多条匹配规则之间是按照顺序进行匹配(命中一条规则就返回),静待正式版发布吧

    原回答者GitHub用户agapple

    2023-05-09 18:26:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载