【 TiDB 使用环境`】测试环境
【 TiDB 版本】5.0 - > 5.4
【遇到的问题】
在使用 Lightning 的 TiDB 模式时,Checksum 和 Analyze 即使设置了 true 也会跳过。
Lightning 文档:https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-configuration#tidb-lightning-任务配置
【问题现象及影响】
在使用 Lightning 的 TiDB 模式,无论怎么设置 Checksum 和 Analyze 的值,最后在导入的时候会发现,都是失败的(没有任何提示)。
排查了很久后,在源码里面找到了答案:
但是只有在 log 级别为 Debug 的时候会出现该提示,skip checksum & analyze, not supported by this backend.
所以最后问一下,为什么在 TiDB 模式下,不支持 Checksum 和 Analyze?
4 个赞
CuteRay
(Cherry🍒)
2
在文档并未找到有关这方面的描述,我觉着需要补全一下
4 个赞
没有 checksum 原因是: 下游数据库不一定是空表,所以 checksum 本身没有必要。
没有 analyze 原因是: TiDB 模式会触发 TiDB 本身的自动 analyze 无需手动操作
3 个赞
是的,在代码日志中,和文档都应该补全一下,排查了一中午,这个问题。
3 个赞
发到这里来
文档新增需求
如果这是个 文档新增需求 ,请按照下方模板提交,以便于我们更快了解到你的需求,进行优化:
- 需求类型:新增文档
- 需求背景:比如缺少哪部分文档,对使用有什么影响
- 期望增加哪些组件或者功能的文档,加到现有文档的哪个位置
3 个赞
我都准备自己去提PR了。既然这样的话,我还是去发个帖子吧
1 个赞
hhhhhhh~
全栈大佬就是厉害~
你来选,哪个对你来说实现成本比较低你就搞那个~
发到论坛我就会搬到内网让老师们评估一下~
看你方便~
1 个赞
jiyf
(Jiyf)
9
因为 tidb 模式没法通过 checksum 校验,它可以通过 linghtning checkpoint 来保证。
checksum 是对 kv [key, value] 计算所得, 通过 keys 数量、大小、checkSum 值来校验。
例如 local 模式,kv 键值对是在 linghtning 编码好的,所以能轻松的校验本地编码好的 kv checksum 值,导入完成后再调用 tikv 计算 checksum,两方对比完整校验过程
但是对于 tidb 模式,由于键值对是在 tidb server 编码的,所以没办法获取本地的 checksum 值,也就没法完成校验。,
4 个赞
tidb-backend 主要是通过写 SQL 语句来导入的(应该不算是在 tidb server 编码吧,印象中 tidb-backend 有自己的 tidbEncoder,会把读出来的数据变成 SQL 语句。)
1 个赞
jiyf
(Jiyf)
11
是通过sql写入的,tidb server 执行 sql 就是编码为 kv 键值对,然后写进 tikv,所以这里说 tidb server 进行编码为 kv。
1 个赞
system
(system)
关闭
12
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。