问题分析
业务需要使用Datax
将MySQL
的数据同步到私有云的Doris
,本来也是第一次接触Datax
和Doris
,现在将整个过程中的问题梳理一下,方便下次快速解决问题。
一般报错会有一个在线文档描述本次报错的原因,如下
打开报错文件 Reason: actual column number in csv file is more than schema column number.actual number: 5223041, schema column number: 21; line delimiter: [], column separator: [SOH]
具体错误如下图片
从图片的报错原因来看数据格式行分隔符不对,导致数据只有一行,导入失败。
查看Datax
中的配置
1 | {"column_separator": "\x01","row_delimiter": "\x02"} |
查询分隔符意义
1 | Linux上的文件以 \001 作为分隔符时,下载后用notePad++打开时看到的SOH,以 \002 作为分隔符时,下载后用notePad++打开时看到的STX,以 \003 作为分隔符时,下载后用notePad++打开时看到的ETX;"\001" “\002” "\003"分隔是程序代码中进行解析需要的。 |
根据报错信息中,实际行分隔符是换行符
,不需要 STX
,因此,尝试去掉Datax
中的,"row_delimiter": "\x02"
,数据导入正常了。