2011-06-19 9 views
3

私は、自動増分整数プライマリ・キーを持つ大きなデータベース・テーブルを持っていて、毎日別のシステムで使用するためにバネ・バッチを使ってテーブルの抽出を作成しています。バッチ・バッチを使用したデータベース・テーブルからの部分的な抽出

私は、次の抽出の開始点を設定するために(つまり、id> last_id_extractedのsqlで)、前回の抽出に入れた最高のidを永続させるアプローチを使用しています。私は現在、通常の古いJavaを使用してnext_idテーブルにJDBCを使用してこれを行っています。

この種の抽出バウンダリをSpringバッチで処理するには、より良い方法がありますか?おそらくこれはバッチ処理のかなり一般的なシナリオであり、Spring Batchは役に立ちますか?

ありがとうございました

+3

他の当事者があなたのデータベースにアイテムを挿入できない場合、あなたは完璧に解決していると思います。 – abalogh

答えて

3

あなたの方法は、あなたのデータに何が起こる可能性があるのか​​という狭義でのみ機能します。既存のデータの削除や変更は考慮されません。

さらに強固にするには、データテーブルのレコードIDを外部キーとして、抽出ステータスとして機能する別のテーブルを追加します。レコードがアップロードされた場合、抽出ステータステーブルには、最後にエクスポートされた日付スタンプが表示されます。そして、次のルールを実装することができます。

1)は、対応する行が経験スタット、輸出 2)に存在しない場合は、最後の>に更新した場合、それは経験のステータステーブルに存在する場合は、最後の)それ 3エクスポートし、上のエクスポートデータテーブルではなく、消費者に削除メッセージを送信します。

関連する問題