私はAWS EMRで多くのsqoopジョブを実行していますが、時にはこのインスタンスをオフにする必要があります。sqoopインクリメンタルインポートIDを保存
最後のIDを増分インポート(おそらくlocaly)から保存し、cronjob経由でs3にアップロードする方法があります。
私の最初のアイデアは、ジョブを作成するときに、私のデータが格納されているRedshiftにリクエストを送信し、最後のIDまたはlast_modifiedをbashスクリプトで取得することです。
もう一つのアイデアは、sqoopジョブの出力を得ることです--show $ jobid、last_idのパラメータをフィルタリングし、それを使ってジョブを再作成します。
しかし、sqoopがこれをより簡単に行う方法を提供しているかどうかはわかりません。 Sqoop docs 1として
問題は、メタストアがローカルに保存されていて、いつかETLプロセスをシャットダウンする必要があり、復元時に最後のIDから再起動する必要があるためです。ドキュメントを読む私はsqoop-metastoreを見て、私はsqoop-siteを変更しました。xmlを使用して、リモートでMySQLインスタンスにこのプロパティを保存します。私はこのアプローチを明日検証する予定です。 –
@CarlosEduardo this _(リモートMySQLをメタストアとして)_があなたの問題を解決します。 –
@CarlosEduardoあなたはそれを試してみましたか? –