obloader导入无ID字段的数据报错,无法导入

【 使用环境 】准生产环境
【 OB or 其他组件 】obloader
【 使用版本 】V3.0.0
【问题描述】全表27个字段,第一个字段是id(主键,自增长),因为有冲突,我没有导出。所以obdumper导出的文件中只有26个字段。新建了一个同结构的表后,将这些导出的数据导入到新表时会报错。这个表的数据量较多(约1亿条)。导出的这些数据,使用mysql命令行可以正常导入,但是导入的速度太慢了。请问下obloader有什么办法可以导入这些数据吗?

【附件】

加上 --exclude-column-names ‘<未导出的列名>’ 试下

不行,还是一样的。

CTL文件配置一下,试试吧。

这个配置文件的写法有文档么?

好象是这样的:

lang=java
(
字段列表
);

像我们这样,如果第一个id字段没有数据的(要利用数据库自动生成),要怎么写?
试过了,不管id字段写不写到字段列表里,都报错:
Error: Column count doesn’t match value count at row 1

导入文件没有就不要写

试过了,不管id字段写不写到字段列表里,都报错:
Error: Column count doesn’t match value count at row 1

使用obloader --exclude-column-names “id” 时,似乎虽然有不停的报错(屏幕输出错误信息太多太快,我不得不关闭该连接窗口),但数据似乎又导入完成了(从导入表的记录条数上看,是正确的),但不敢保证这样的数据正确性。因为我们是准备切换到生产环境用的数据,所以这种情况(obloader不停地报错)下导入的数据,是不敢用的。

命令行如下:
obdumper -h 192.168.x.x -P 2883 -u root -p xxx --sys-user root --sys-password xxx -c xxx -t tenant_xxx -D xxx --sql --table xxx --exclude-column-names “id” -f /usr/local/xxx/

obloader -h 192.168.1.x -P 2883 -u root -p xxx --sys-user root --sys-password xxx -c xxx -t tenant_xxx -D xxx --sql --table xxx1 --exclude-column-names “id” -f /usr/local/xxx/

注意源表名和目标表名不同,为了不覆盖源表的数据。导入前,修改了/usr/local/xxx/ 目录下的文件名为目标表名。

1、当前社区版的导数工具版本是3.0.0 ,在导入时需要加上 --external-data
2、在3.3.0里针对单表导出后是多个文件,可以在导入的时候通过正则表达式的选项来解决,当前社区版的版本下,可以在导出时候加上–file-name 合成一个文件,导出后再导入。