問題タブ [spring-batch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring BatchでItemReaderからジョブパラメータにアクセスするには?
これは私の一部ですjob.xml
:
これはアイテム リーダーです。
これは、Spring Batch が実行時に言っていることです。
ここで何が問題なのですか?Spring 3.0 のこれらのメカニズムについて詳しくはどこで読むことができますか?
java - PropertyPlaceholderConfigurerおよび依存
以下のコードスニペット
「依存」の意味と${ENVIRONMENT}の値を操作する方法は何ですか??
環境は、システムの環境変数内のシステム変数を参照していますか?
java - Web ui からの Spring バッチ ジョブ?
Web UI からスプリング バッチ ジョブを実行した経験のある人はいますか。現在、CSV から DB テーブルへのデータ コピーのジョブをいくつか作成しましたが、コマンド プロンプトと JUnit テストで正常に動作します。しかし現在、これらのジョブは Web 経由で実行する必要があり、JSF がフロント コントローラー フレームワークとして使用されています。この場合のベスト プラクティスに関する提案は非常に役立ちます。
ありがとう!
java - SpringBatch での MapReduce/Aggregate 操作
SpringBatch で MapReduce スタイルの操作を行うことは可能ですか?
バッチ ジョブには 2 つのステップがあります。最初のステップでは、平均を計算します。2 番目のステップでは、各値を平均と比較して別の値を決定します。
たとえば、学生のスコアの巨大なデータベースがあるとしましょう。最初のステップでは、各コース/試験の平均スコアを計算します。2 番目のステップでは、個々のスコアを平均と比較して、単純なルールに基づいて成績を決定します。
- A 生徒の成績が平均以上の場合
- B 学生のスコアが平均の場合
- C 生徒の点数が平均以下の場合
現在、私の最初のステップは、平均を選択してテーブルに書き込む Sql です。2 番目のステップは、平均スコアを個々のスコアと結合し、Processor を使用してルールを実装する Sql です。
ステップでよく使用される avg や min などの同様の集計関数があります。Sql をできるだけシンプルに保ちながら、プロセッサでこれを実行できるとよいと思います。グループ化基準に基づいて複数の行にわたって結果を集計し、出力テーブルに平均/最小値を 1 回書き込むプロセッサを作成する方法はありますか?
このパターンは何度も繰り返され、平均スコアと個々のスコアの両方を取得する Sql を使用したシングル プロセッサの実装を探しているわけではありません。
spring-batch - 書き込み時に追加するFlatFileItemWriter
ファイルを空にしてから書き込む代わりに、itemWriterを作成して、書き込みに書き込む内容を追加する方法を教えてください。
FlatFileItemWriterを使用しています。
mysql - テーブル列が小さすぎる場合に Spring JDBC からのバッチ SQL 挿入を処理する方法
大量のデータを MYSQL データベースにバッチ挿入しようとしていますが、テーブルの列が受信データのサイズに対応するのに十分な大きさでない場合の対処方法についてアドバイスが必要です。
データ セットが非常に大きい (1Gb 以上) ため、入力データのメモリへのストリーミング読み取りを実行しています。特定の時点で、データを「フラッシュ」し、 jdbcTemplate.batchUpdate を使用してテーブルに挿入しようとします。宛先テーブルのすべての列は VARCHAR であり、サイズが 50 であると想定されています。これは、大部分のデータに対して完全に適切です。ただし、サイズ 15 を超えるデータが到着する場合があるため、INSERT は失敗します (列に対してデータが長すぎます)。
この問題に取り組むための最良のアプローチは何ですか? テーブルのすべての列をやみくもに大きくしたくありません。これは、あまりうまくスケールしない戦略のように思えるからです。また、サイズが大きいため、データを事前に解析しないことをお勧めします。失敗を待ってから、適切な「ALTER TABLE」を実行してデータを再送信する必要がありますか? 失敗したアイテムをキャッシュして、必要な列サイズを決定し、失敗したアイテムのみを再送信することは可能ですか?
これを実行する最適な方法についての指針と一般的なアドバイスを探しています。
ありがとう。
java - ファイルのSpring Batch出力形式は?
春のバッチ サンプルでは、csv 形式から db テーブル、db テーブルから csv などにデータをコピーする例がたくさんあります。たとえば、csv からデータをコピーするなど、ユーザーが特定のジョブを選択できる方法があるか知りたいと思いました。 file を指定し、宛先形式 (excel、db、pdf) も指定します。したがって、ジョブの宛先形式はユーザー入力に依存します。
ありがとう!タルン・サプラ
encoding - .txtを書き込んだ後の間違ったEOL文字
Spring-Batch2.1.8リリースを使用しています。バッチがWindowsまたはUNIXで実行されるかどうかに応じて、異なるEOL文字があります。UNIXでは、生成されたファイルにはCR
-があります。winsowsでは、両方がありCRLF
ます。
次のように、出力リソースにWindowsが含まれるように、ライターチャンクを構成しました。
しかし、サーはありません。Unixはまだ。だけで生成しCR
ます。これは、スプリング、コントローラー、モデルを備えたj2eeクラシックアプリのコンテキストにあります。したがって、バッチが完了した後、ユーザーにダウンロードするようにファイルを要求する前に、コードを記述できます。
私は何が間違っているのですか?
java - 2 つのパラメーターを必要とし、そのうちの 1 つだけがリストに格納されるクエリで batchUpdate を実行するにはどうすればよいですか
Spring-JDBC を使用して、ユーザーの Facebook の友達のリストを MySQL データベースに挿入します。
ユーザーの uid を含む最終的な Long と、彼の友人のリストを含む List があります。
私のクエリは次のとおりです。
SqlParameterSourceUtils を使用してバッチ パラメーターを作成します
そして、次を使用して挿入を実行します。
ここでの問題は、クエリに必要な 2 番目のパラメーターのみがリストに含まれていることです。
friendsList を変更して別の列を追加する必要がありますか、それとも別の方法がありますか?
ありがとう!
java - Spring Batch を使用したデータベース テーブルからの部分抽出
自動インクリメント整数の主キーを持つ大きなデータベース テーブルがあり、Spring Batch を使用して、他のシステムで使用するテーブルの抽出を毎日作成しています。
次の抽出の開始点を設定するために使用するために、前の抽出に入れられた最高の ID を永続化するアプローチを使用しています (つまり、id > last_id_extracted の sql で)。私は現在、プレーンな古い Java を使用して next_id テーブルに JDBC を使用してこれを行っています。
この種の抽出境界を Spring Batch で処理するより良い方法はありますか? おそらく、これはバッチ処理ではかなり一般的なシナリオであり、Spring Batch が役立つでしょうか?
ありがとう