0

ケトル 4.4 を使用して mongodb テーブルから mysql テーブルにロードしています。ある行の列の 1 つでエラーが発生します: Incorrect string value: '\xF0\x9F\x98\x8D' for column. いくつかのフォーラムをチェックして、列を utf8mb4_general_ci に変更しましたが、それでも同じエラーが発生します。

テーブルには 12 lakhs + レコードがあり、どの行でエラーが発生しているかを特定できません。テーブルには、オブジェクト ID である _id があります。order by on _id 列でロードしようとしましたが、エラーで停止したときに、以前のロードから > max(_id) でロードしようとしました。これにより、重複が発生し、エラーが発生している行を特定できません。

1) エラーが発生している行を特定する方法、またはこのエラーを解決する方法はありますか?

2) テーブル出力ステップで、insert ignore errors というオプションがあり、チェックして実行しようとしました。今ではエラーは発生しませんが、ケトルではエラーが表示されません。のレコードは 1192628 と書かれていますが、テーブルには 1192626 レコードしかありません。したがって、2 つのレコードが欠落しています。挿入エラーを無視するオプションは、エラーのある行を無視しますか? もしそうなら、これらのエラーはどこに記録されますか? いくつかのドキュメントを読み込もうとしましたが、この情報はありません。

あなたの誰かが私を助けることができれば、それは素晴らしいことです.

ありがとう、ディープティ

4

2 に答える 2

2

あなたの場合、何度でもロードを再実行できるようです。Table Outputステップでは、「挿入エラーを無視する」をチェックすると、まさにそれが行われます。エラーは無視され、ログに記録されません。

あなたのケースで私がすることは、「挿入エラーを無視する」のチェックを外し、あなたからのエラー出力を接続して、Table Outputそれをテキストファイルまたはxmlファイルまたは別のテーブル出力に実行することです。ロードを再実行すると、エラーの原因となった 2 つの行がエラー出力に表示されます。

于 2013-07-29T16:12:58.923 に答える