gzp1
(g)
1
为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:
- 系统版本 & kernel 版本:centos7
- TiDB 版本:2.1.15
- 磁盘型号:
- 集群节点分布:
- 数据量 & region 数量 & 副本数:
- 集群 QPS、.999-Duration、读写比例:
- 问题描述(我做了什么):
线上有4张表:
- asset_fund_1_201901
- asset_fund_2_201903
- asset_fund_month_1
- asset_fund_month_10
匹配以asset_fund_ 开头,后面是数字且带下划线的table 1 和2,使用正则:
asset_fund_[0-9]+_[0-9]+
发现不生效,很奇怪,这么简单的正则,为啥dm识别不了?
gzp1
(g)
3
声明了哈。这样:
table-pattern: “~asset_fund_[0-9]+_[0-9]+”
没有报错。
但是,依然不行
gzp1
(g)
5
我试了,不能用哈。。
在分库分表的case里,table-pattern必须没有歧义…因为线上可能很多表 都有数字在表名里面。。
所以,必须asset_fund_ 开头 ,后缀是带下划线和数字的。
其实用“~asset_fund_[0-9]+_[0-9]{6}” 最合适。因为这些表有一个规律: asset_fund开头 + 一个随机数值(0-128)+ 年月(比如,201909)
小王同学
6
这里提到的 table-pattern 是否是 配置库表路由 table routing ?
table routing 规则中,匹配 pattern 支持通配符,不支持正则表达式
gzp1
(g)
7
的确是table routing。。。
那我这个问题,难道要无解了
在table routing写128条规则匹配,真的,很尴尬…
小王同学
8
尝试使用以下方式试下呢?
table-pattern: "asset_fund_?_*" #匹配随机数 0-9
table-pattern: "asset_fund_??_*" #匹配随机数 10-99
table-pattern: "asset_fund_???_*" #匹配随机数 100-128
1 个赞
gzp1
(g)
9
忘了 还有“?”
虽然怪,但好歹解决了…谢谢!
麻烦,在文档里标准下,不支持正则…我没有看到这个提示,所以一直尝试正则匹配去解决~
小王同学
10
好的,感谢反馈,我们看看如何明确标注一下文档内容。
在 table routing 中参数解释,有关于 schema-pattern/ table-pattern ,点击链接后有说明。
https://pingcap.com/docs-cn/v3.0/reference/tools/data-migration/table-selector/
1 个赞
目前的通配符只支持 ? 和 * 两种,后续我们会增强语法哦
system
(system)
关闭
12
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。