Mysql 为什么Talend跳过的行比那些具有唯一键的行多?

Mysql 为什么Talend跳过的行比那些具有唯一键的行多?,mysql,sql,csv,talend,Mysql,Sql,Csv,Talend,我一直在通过Talend将数据从CSV文件加载到MySQL中,SQL表的数字上有一个唯一的键(不是主键),以确保没有重复 示例表: `id` int(11) NOT NULL AUTO_INCREMENT, `network_id` varchar(45) DEFAULT NULL, `num1` varchar(45) DEFAULT NULL, `num2` varchar(45) DEFAULT NULL, `date` date DEFAULT NULL, PRI

我一直在通过Talend将数据从CSV文件加载到MySQL中,SQL表的数字上有一个唯一的键(不是主键),以确保没有重复

示例表:

  `id` int(11) NOT NULL AUTO_INCREMENT,
  `network_id` varchar(45) DEFAULT NULL,
  `num1` varchar(45) DEFAULT NULL,
  `num2` varchar(45) DEFAULT NULL,
  `date` date DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `num2_unique` (`num2`)
我发现有一点数据还没有加载,我能找到的唯一原因是num1上的唯一键。 在大约550k行数据中,表中有1.5k行在运行后丢失。 我隔离了1.5k的线路,并分别加载它们,效果很好,但我不知道它们为什么一开始没有加载

为了检查,我再次尝试了50行,其中一行已经在SQL表中,因此加载时Talend应该跳过,但是Talend拾取了重复的唯一键,但没有加载加载到SQL表中的任何行。一旦从CSV文件中删除了单个重复行,其他59行将被完美加载


如果您对发生这种情况的原因和/或解决方法有任何建议,我们将不胜感激。

在您的tDBOutput组件中,请检查您是否正在使用“批量插入”(或“扩展插入”或类似的内容,名称取决于db组件)。批量插入通常是默认行为:如果批处理中遇到问题,它将回滚您尝试插入的所有数据。 还检查了dboutput组件上的模式吗?其中有一个“键”列(复选框),请确保未将“num1”设置为键。

选择“扩展插入”时,每个插入100行。我已经解开了这个,它现在似乎在工作。非常感谢你。