入力レコードとRDBレコードとの差分を処理するには

RDBDiffコンポーネント

RDBDiffコンポーネントは、入力されたレコードセットと、RDBのテーブルに存在する全レコードを比較して、差分のあったレコードに差分情報のフィールドを追加して、ストリームに出力します。また、RDBのテーブルに対して更新を行うこともできます。

入力レコードとRDBレコードとの差分を確認する

 1. フローウィンドウを表示し、FileGet、Mapperコンポーネントに続き、「データベース」タブから RDBDiffコンポーネント(「入力値とRDBの差分を取得します。」)を配置する

6-119-01.png 

2. RDBDiffコンポーネントのインスペクタの「コネクション名」プロパティでコネクションを指定し、アイコンをダブルクリックする

6-119-02.png 

3. 「テーブルとフィールドの設定」ダイアログが表示されるので、データを比較する対象のテーブルをクリックし、「OK」をクリックする

6-119-03.png

4. 「テーブル名」プロパティにテーブル名が設定され、フィールド定義も設定されたことを確認する

6-119-04.png

HINT
RDBDiff コンポーネントを配置する際に、ストリーム定義を変換する確認のダイアログが表示されたら「はい」をクリックして閉じます。

5. Mapperコンポーネントアイコンをダブルクリックし、マッピングウィンドウでデータのマッピングを行う

6-119-05.png 

6. その他のコンポーネントも配置し、接続してフローを完成させる

6-119-06.png

フローを実行すると、入力データが指定したテーブルの全レコードと比較され、差分のあったレコードに「差分種別」フィールドが追加されて出力されます。

6-119-07.png

HINT
RDBDiffコンポーネントの入力ストリームのフィールド定義は、「テーブルとフィールドの設定」ダイアログで行います。このフィールド定義は、直前に連結したマッパーの出力ストリームのフィールド定義にコピーされ、それに対して値のマッピングを行います。従って、このコンポーネントに連結できるコンポーネントはマッパーのみとなっています。

 

差分を吸収してデータベースを更新する

1. 入力値とRDBの差分を取得するフローを作成し、RDBDiffコンポーネントアイコンを選択して、インスペクタの「実行する処理」プロパティで、「更新する:入力」または「更新する:RDB」のいずれかを選択する

 6-119-08.png

データベースを更新して入力ストリームのレコードデータを出力する場合は「更新する:入力」、データベースを更新して RDBのレコードデータを出力する場合は「更新する:RDB」を指定します。

HINT
「実行する処理」プロパティ
RDBDiffコンポーネントの「実行する処理」プロパティでは、以下の処理を選択できます。

  • 「更新しない:入力」- RDBの更新は行わずに、入力ストリームのレコードデータを出力する
  • 「更新しない:RDB」-RDBの更新は行わずに、RDBのレコードデータを出力する
  • 「更新する:入力」-入力ストリームのレコードでRDBを更新し、入力のレコードデータを出力する
  • 「更新する:RDB」-入力ストリームのレコードでRDBを更新し、RDBのレコードデータを出力する 

その他のデータベース関連コンポーネント
パレットの「データベース」タブではほかに、以下のようなコンポーネントも利用できます。

アイコン コンポーネント名 メニュー名
6-119-09.png FastInsert RDBへのデータ高速挿入
6-119-10.png RDBMerge RDBのMerge文実行

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

他のキーワードで検索する