私は Spring Batch を使用して、大量のオンライン データをデータ ウェアハウスに抽出、変換、読み込みし、レコメンデーション分析を行っています。どちらも RDBMS です。
私の質問は、オフライン Spring Batch ETL のベスト プラクティスは何ですか? フルロードか増分ロードか? 私は Full Load の方がシンプルなので気に入っています。現在、データ読み込みジョブに次の手順を使用しています。
ステップ 1: データ ウェアハウス内のテーブル A を切り捨てます。
step2: データをテーブル A にロードします。
step3: データ ウェアハウス内のテーブル B を切り捨てます。
step4: データをテーブル B にロードします。
step5: データ ウェアハウスのテーブル C を切り捨てます。
step6: データをテーブル C にロードします。
...
データ ウェアハウス内のこれらのテーブルA
、B
、C
、... は、リアルタイム レコメンデーション システムの処理で使用されます。
しかし、オンライン データベースから読み込むデータは膨大であるため、ジョブ全体の処理には非常に時間がかかります。そのため、テーブルを切り捨ててまだデータをロードしていない場合、このテーブルに依存するリアルタイムのレコメンデーション処理に大きな問題が発生します。このデータの不完全性が発生しないようにするにはどうすればよいですか? ステージング テーブルまたはそのような戦略を使用していますか?
どんな返信でも大歓迎です。