0

我正在使用kettle 4.4从mongodb表加载到mysql表,其中某一行的列给出错误:字符串值不正确:列的'\xF0\x9F\x98\x8D'。我检查了一些论坛并将该列修改为 utf8mb4_general_ci ,但仍然给出了相同的错误。

该表有 120 万条以上的记录,我无法确定是哪一行出现了错误。在表中有 _id 是对象 id。我尝试在 _id 列上按顺序加载,当它因错误而停止时,然后尝试从我之前的加载中加载 > max(_id)。有了这个,它给出了重复项,并且无法确定哪一行给出了错误。

1)有没有办法确定哪一行出现错误或解决这个错误?

2)在表输出步骤中,有一个名为插入忽略错误的选项,我检查了它并尝试运行。现在它没有给我任何错误,但在水壶上它显示没有。的记录写为 1192628,但该表只有 1192626 条记录。所以缺少 2 条记录。忽略插入错误选项是否会忽略有错误的行?如果是这样,这些错误记录在哪里?我试图阅读一些文件,但没有一个文件有这个信息。

如果你们中的任何人可以帮助我,那就太好了。

谢谢你,迪普蒂

4

2 回答 2

2

在您的情况下,您似乎可以根据需要多次重新运行负载。在一个Table Output步骤中,检查“忽略插入错误”就是这样做的。错误将被忽略且不记录。

在您的情况下,我会做的是取消选中“忽略插入错误”,然后连接您的错误输出Table Output并将其运行到文本文件或 xml 文件或另一个表输出。重新运行加载,导致错误的两行将出现在您的错误输出中。

于 2013-07-29T16:12:58.923 回答
0

看来您正在获取二进制数据,请尝试将其转换为字符串:在加载 db 表输出之前添加新的选择/重命名值。单击选择/重命名步骤,转到元数据选项卡,选择您的输入字段,输入:字符串,二进制到正常:Y,编码:UTF-8(在我的情况下)交叉手指!

于 2013-07-30T09:54:34.713 回答