[Spring] Spring Batch


Batchとは?

Batch Processing:バッチ処理.ETL:抽出、変換、マウント
ETLプロセスを一定の時間、順序、および条件で実行する操作を「バックアップ」と呼びます.

Spring Batchとは?


Spring BatchはChung向けの処理方法を提供しており、簡単にJobとStepに基づいて展開したり、データをブロックに切ったりして、大量のデータを処理することができます.

Spring Batchについて


展開される典型的な3段階スキーム
1.読み出し(read):データ記憶(通常はDB)から特定データ記録を読み出す
2.処理(processing):データを所望の方法で加工/処理する
3.書き込み(write):変更したデータをリポジトリ(DB)に保存する

ランタイムメタデータモデル


Spring Batchは、バッチを実行するすべての情報をDBに格納し、参照して順番に実行します.
この形式をランタイムメタデータモデルと呼ぶ

1. Job


ジョブ=バッチ・タスク
少なくとも1つのステップが必要です.非常に複雑な作業でない場合は、2~10のステップを使用することをお勧めします.

2. Step


Stepは、「読み取り->加工->書き込み」の組合せプロセス=Chung処理です.
つまり、一つの事務として理解できる.

2-1. ItemReader


データの読み取りを担当します.
ファイル、xml、データベースなど、さまざまなタイプのデータを取得できます.
ItemReaderインタフェース
public interface ItemReader<T> {
    T read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException;
}
ItemReaderはread()メソッドの戻りタイプをJENICとして表すため、直接タイプを指定できます.

2-2. ItemProcessor


ItemReaderで読み込んだバッチデータの変換
ItemProcessorインタフェース
public interface ItemProcessor<I, O> {
    O process(I item) throws Exception;
}

2-3. ItemWriter


バッチ・データの保存(通常はDBまたはファイルに格納)
ItemWriterインタフェース
public interface ItemWriter<T> {
    void write(List<? extends T> items) throws Exception;
}
📕 リファレンスリンク
https://www.fwantastic.com/2019/12/spring-batch-intro.html
https://derveljunit.tistory.com/313
https://freedeveloper.tistory.com/26