TIDB DM LOAD阶段中文表名超长问题

由于历史问题,我们需要同步第三方的数据库,但是第三方的数据库中表名存在类似于:f_二零零九年二月十号用户体验分析报告数据集合统计分析_info

在mysql数据库中,是可以正常创建的,但是使用tidb DM 同步到tidb中,发现了这个问题。
经过排查,除了tidb的限制(我们已经修正了限制,已经提交到git),但是DM的load限制,迟迟未找到,希望能得到你们的帮助。

你好,tidb 的限制最近在 master 版本上面修复了 https://github.com/pingcap/tidb/pull/24337 ,可以检查 DM 下游是不是 master 版本,load 时 DM 是有 table name too long 之类报错吗?

另外可以手动在下游 TiDB 创建表, DM 在 full 模式下会自动跳过建表语句,也可以导入全量数据库直接用 incremental 增量同步。

是的,DM会报Identifier name ‘f_间接员及专业资格人员专业能力模板表_5fdfde9ecbec7e75_2efc0’ is too long,而且发现DM底层是用的是tidb 1.1.0-beta版本(希望能和tidb保持一致)。
嗯,手动是可以的,但这会增加了部署的成本。

补充一点,拷贝创建语句,在tidb中是可以执行的。

这里的 1.1.0-beta 不是真的 tidb v1.1.0 版本是 go 版本号的问题,其中的代码我们在每次 DM 发版时会更新到最新,我们最近先提个 pr 更新到 master,可以关注下 github 如果有更新的 pr 可以尝试使用 nightly 版本

好的,感谢。那上述表名超长问题,能协助吗?刚刚您提及的手动方法,本地处理是可行的,但我们想从根本上解决问题。

表名超长的问题 tidb master 版本已经 fix 了,最近几天研发会更新到 dm master,可以关注下 pr

可以直接告诉我,再哪里限制的吗?因为工期问题,所以想尽快解决。

可以尝试修改下 tidb 依赖库的这部分代码
https://github.com/pingcap/tidb/pull/24337/files

这正是我们一个同事的提交,但我们发现dm的load阶段,问题依旧存在。

如果很着急,目前先手工创建解决问题。
代码问题,可以在 github 再commet下,多谢。
或者您的同事有能力,可以尝试自己先改下代码?
我们也内部反馈下,您当前使用的最新DM 2.0.x 版本吗?

是的 目前使用的版本是基于release-2.0的分支

好的,请关注PR https://github.com/pingcap/tidb/pull/24337

Hi,请问具体的报错跟日志可以提供一下吗