在tidb 4.0.x版本,通过tikv-client-java拉取全量以及增量数据时无法读取数据

【 TiDB 使用环境】生产环境
【 TiDB 版本】4.0.6–4.0.10
【 tikv-client-java 版本】3.2.0
【复现路径】使用tidb-cdc-connector拉取全量数据
【遇到的问题:问题现象及影响】无法读取数据
背景:
想要通过flink-cdc将tidb中的数据导入到其他介质,在读取过程中可访问Meta信息,但是无法从store中获取实际的kv。具体可见于sdk:tikv-client-java的RegionStoreClient的scan方法中


request内可见访问具体store的信息,但是最后的response无任何返回值

无任何报错,猜测是否与获取store内数据时超时,链接被半关闭有关;或者是版本问题(目前公司方无升版本意愿)

  1. flink cdc tidb connector,不是 tidb社区的出品
  2. 建议你先整理好相关的版本,先确定是不是版本没对齐,导致的问题
  3. tidb 4.x 已经是不受支持的版本了,建议升级到 6.X
1 个赞

使用 TiCDC 同步到 Kafka 然后再用 Flink 消费

但是排查中发现是tikv-client-java 3.2.0做scan动作无法从tikv的store中获取kv,flink-connector只是调用了api

https://github.com/ververica/flink-cdc-connectors

用的是这个?

tidb-cdc * TiDB: 5.1.x, 5.2.x, 5.3.x, 5.4.x, 6.0.0 JDBC Driver: 8.0.27

如果这个的话,这首页上也没说支持tidb4.0吧。 :sweat_smile:

但是我在测试过程中发现4.0.10是可以正常使用的

那这个问题解决了?
这是突然又可以了。

无视版本要求 :yum: :yum: :yum: :yum:

1 个赞

尝试升级一下版本来解决你的这个问题

主要公司这边有大量的4.0.6以及4.0.8的表,升级成本是DBA不愿意接受的,所以才试图继续找这些版本的解决方案

这个问题有依赖项:

flink cdc tidb connector,不是 tidb社区的出品,在你不准备 升级 tidb 来解决问题的前提下,你可能需要到对方社区尝试寻求解决方案。

1 个赞

dba的想法,可以理解。

就flink-cdc-connectors工具没有承诺支持的情况下,能用当然是最好。
要是不能用,要么去github上对应的项目下提一个featrue,等对方社区支持。要么自己看看是否可以通过看代码,顺便贡献一下生态。
也就是这两个办法了啊。

从tidb的角度看,社区可以提供的支持是ticdc
https://docs.pingcap.com/zh/tidb/v4.0/ticdc-overview

这个在4.0.6版本以上就可以用。
再回到开头你的问题

将tidb中的数据导入到其他介质

我感觉没有必要纠结用什么工具,用ticdc的话,会很困难吗?

可能,我是说可能。。没有团队愿意额外承担一个新组件的运维工作 :joy:

同意。

flink-cdc-connectors团队可能也是这么想的。所以没有支持tidb4.0.你可以尝试催催他们。

4.X 就推荐使用 binlog 组件了,不推荐使用 ticdc :yum:

下游可以是任意的文件系统,能够通过调度的方法解析 binlog 也可以实时获取到变更
也可以对接kafka,那就更复杂了

这个binlog组件具体是哪个呢

https://docs.pingcap.com/zh/tidb/stable/tidb-binlog-overview

如果有大量的DDL,用 binlog 可能会有点问题,这个要注意…

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。