【Doris】MySQL数据同步至Doris问题记录

在进行数据从MySQL到Doris的同步过程中,由于Doris的varchar字段以UTF-8存储,对英文字符占1字节,中文字符占3字节的特性不熟悉,导致了数据丢失。问题源于源数据varchar字段过长,超过了Doris表的字段长度限制。解决方案是将Doris表的varchar字段长度调整为原字段长度的3倍,以适应包含全中文字符的情况。
摘要由CSDN通过智能技术生成

项目场景:

最近接到一个数据同步的任务,需要基于 DataInLong 将数据从 MySQL 同步至 Doris 中。


问题描述

数据迁移过程中,一部分表数据出现丢失的情况。


原因分析:

经排查发现,有报错源数据中的 varchar 类型字段太长,导致Doris 表数据插入失败。而本人在创建 Doris 表时,字段长度均是直接沿用 MySQL 源数据表中定义的字段长度。

于是从 Doris 官网上找到了其 varchar 类型的描述:

VARCHAR(M)
变长字符串,M代表的是变长字符串的字节长度。M的范围是1-65533。

注意:变长字符串是以UTF-8编码存储的,因此通常英文字符占1个字节,中文字符占3个字节。

而在 MySQL 中 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数。


解决方案:

直接将现有 Doris 表中 varchar 类型字段长度调整为原来的 3 倍。(即能兼容全是中文字符的情况)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值