sync-diff-inspector table-rules能否支持正则?

【背景】
使用sync-diff-inspector校验分库分表场景下的数据,说明如下:
上游数据库情况:
库名:sandbox
表名:

  1. box_{0-127} # 共128张分表
  2. box_config、box_other # 两张普通表

只同步分表到TiDB:
库名:sandbox
表名:box

现在要使用sync-diff-inspector对分表进行数据校验
配置如下:
######################### Tables config #########################
[[check-tables]]
schema = “sandbox” # 库的名称
tables = [“box”]

[[table-rules]]
schema-pattern = “sandbox”
table-pattern = “box_*”
target-schema = “sandbox”
target-table = “box”

【现象】
在运行校验的时候,sync-diff-inspector匹配到的表有128张分表(box_{0-127})以及两张普通表(box_config、box_other)

【问题】
在实际校验的时候我只需要校验分表,如何过滤box_config、box_other这两张表?table-pattern是否可以配置成:
table-pattern = “~^box_[0-9]+$”

【版本】
sync_diff_inspector: v5.0.3

1赞

可以这样配置

1赞

这样配置只能匹配到名为box的表,日志如下:

校验配置:

附库表信息:
上游库:

tidb库:

1赞

哦哦,把~去掉

1赞

一样的错误,配置:

1赞

:thinking: table-rules 是不支持正则的。

另外,DM 中的 table routing 也是不支持正则的。只能用通配符。

1赞

现在只能用 table-config方式把128张分表全部列出来吗?分表可能有256、1024张,可能还有分库,全部列出来太多了,后面会不会出版本支持?

1赞

改成box_??? 试试, 有可能是仅支持 *和?两种通配符 /尴尬

1赞

分库分表可以考虑这个场景
https://docs.pingcap.com/zh/tidb/stable/shard-diff#分库分表场景下的数据校验

1赞

好尴尬呀,竟然不支持正则

1赞

DM我用block-allow-list区限制了,类似:

1赞

DM 的 block-allow-list 是支持正则的,但是 table route 只支持通配符。这个官网有描述,建议详细看一下。如果描述不清晰,可以提 PR 更正哈~

另外 sync-diff 如果有需求,可以在 GitHub 上提一下需求。

我的这个sync-diff-inspector需求你这边能帮我提上去吗?