2012-01-23 6 views
1

春バッチ初心者:私はは、私がitemReaderとitemWriterの用法を持っていないのに、私のためのバッチ・バッチですか?

  • は、HadoopのにいくつかのSQLテーブルから(最後の実行以降)
  • アップロードすべて新しいレコードをすべて新しいレコードを読み取るバッチのシリーズを持っています
  • すべてデータに
  • (新旧)ダウンロードを地図減らす(豚)一連のジョブを実行すべてのローカルに出力し、

ポイントは、私は明白な「アイテム」を持たないで、すべての出力に他のいくつかのローカル処理を実行します - 私は、テキストの特定の行に関連したくありません私のデータでは、すべてを1つの大きなチャンクとして扱い、コミット間隔などは必要ありません。

しかし、私はこれらのすべてのステップを緩やかに結合したいと思います。ステップa + b + cは数日間は成功し、処理されたものは蓄積され、ステップdは失敗し続け、最終的に成功すると前のステップのすべての出力を読み込んで処理します。

SO:私の「アイテム」は新しいデータ全体を意味する架空の「作業アイテム」ですか?私は一連の待ち行列を自分で維持し、それらの架空の作業項目を渡しますか?

ありがとうございました!

+0

私はSpring Batchが本当に好きです。あなたのユースケースを実装するために使用できるとは思っていますが、なぜSpring Batchを使いたいのですか? *コミット動作は必要ありません。 *明らかに再起動は必要ありません。 Spring Batchを使用して得られるものは何ですか? –

+0

公正な質問:私は失敗して再試行したい、失敗した最後のステップから再開したい、そして次のステップが実行されずに複数回実行されたステップ(hadoopクラスタがダウンしている) hadoopが立ち上がっている) - >私は複数回の実行でそれが利用可能なすべてのチャンクを消費したい。私のために春のバッチは場所ではありませんか? – ihadanny

答えて

2

問題は表示されません。あなたのシナリオはSpring Batchの古典的なアプリケーションのようです。

  • は、ここではいくつかのSQLテーブル

からすべての新しいレコード(最後の実行以降)を読んで、項目が記録

  • は、すべての新しいレコードをアップロードしていますto hadoop
01ここでは同じ

  • 実行(新旧)、すべてのデータのマップ減らす(豚)一連のジョブ

StepListener or ChunkListener

ような音
  • すべての出力をローカルにダウンロードし、他のローカル処理を実行するo nすべての出力

これは次のステップです。


唯一の問題は、あなたの記録にドメインオブジェクトがない場合です。しかし、それでも、ItemReadersとItemWriterを使用しながら、マップや配列を操作できます。

5

人は常に春のバッチの唯一の使用がチャンク処理のためだけであると仮定します。これは大きな特徴ですが、見落とされているのは処理とジョブ制御の可視性です。

5人にバネバッチのない同じタスクを与え、フロー制御と可視性を独自の方法で実装しようとしています。 5人に同じタスクとバネバッチを与え、カスタムタスクレットはすべて別々に実行されますが、ジョブメタデータへのアクセスとジョブの開始と停止は一貫しています。私の見解では、それは雇用管理のための素晴らしいツールです。あなたの仕事がすでに書かれている場合、それらを「項目」のパラダイムに合うように書き直したくない場合は、それらをカスタムのタスクレットとして実装することができます。あなたはまだ利益を見るでしょう。

関連する問題