昨晚我把tidb集群 从5.2.3 升级到了 6.5.1,用dm从mysql同步数据到tidb会转成Base64格式吗
mysql: {“kind”: “All”}
tidb: “base64:type253:eyJraW5kIjoiQWxsIn0=”
{“kind”: “All”}这个json数据我手工插入到tidb里是正常的,用dm从mysql同步过来就不行
第一次从mysql全量同步是可以的,新增的不行
在 TiDB DM 中,JSON 类型的数据在同步时会被转换成 base64 格式。这是因为 JSON 类型的数据可能包含特殊字符,例如双引号、换行符等,如果直接传输和存储可能会导致数据解析错误。因此,为了保证数据的正确性,TiDB DM 会将 JSON 数据进行 base64 编码,然后再进行传输和存储。
在 TiDB 6.0 版本之后,TiDB 对 JSON 类型的数据进行了优化,支持了更多的 JSON 函数和操作。这可能会导致 TiDB DM 在同步 JSON 类型的数据时,需要进行一些额外的处理,例如将 JSON 数据转换成 base64 格式。如果您在使用 TiDB DM 进行数据同步时,发现 JSON 类型的数据被转换成了 base64 格式,这是正常的行为,不需要进行额外的处理。
如果您手工插入的 JSON 数据可以正常存储到 TiDB 中,但是使用 TiDB DM 同步的 JSON 数据无法正常存储,可能是因为 TiDB DM 在同步时对 JSON 数据进行了 base64 编码,导致数据格式不一致。您可以尝试在应用程序中对 JSON 数据进行解码,然后再存储到 TiDB 中。
与dm版本有没有关系啊
有直接解码的函数吗
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。