RDBDiffコンポーネント
RDBDiffコンポーネントは、入力されたレコードセットと、RDBのテーブルに存在する全レコードを比較して、差分のあったレコードに差分情報のフィールドを追加して、ストリームに出力します。また、RDBのテーブルに対して更新を行うこともできます。
入力レコードとRDBレコードとの差分を確認する
1. フローウィンドウを表示し、FileGet、Mapperコンポーネントに続き、「データベース」タブから RDBDiffコンポーネント(「入力値とRDBの差分を取得します。」)を配置する
2. RDBDiffコンポーネントのインスペクタの「コネクション名」プロパティでコネクションを指定し、アイコンをダブルクリックする
3. 「テーブルとフィールドの設定」ダイアログが表示されるので、データを比較する対象のテーブルをクリックし、「OK」をクリックする
4. 「テーブル名」プロパティにテーブル名が設定され、フィールド定義も設定されたことを確認する
HINT
RDBDiff コンポーネントを配置する際に、ストリーム定義を変換する確認のダイアログが表示されたら「はい」をクリックして閉じます。
5. Mapperコンポーネントアイコンをダブルクリックし、マッピングウィンドウでデータのマッピングを行う
6. その他のコンポーネントも配置し、接続してフローを完成させる
フローを実行すると、入力データが指定したテーブルの全レコードと比較され、差分のあったレコードに「差分種別」フィールドが追加されて出力されます。
HINT
RDBDiffコンポーネントの入力ストリームのフィールド定義は、「テーブルとフィールドの設定」ダイアログで行います。このフィールド定義は、直前に連結したマッパーの出力ストリームのフィールド定義にコピーされ、それに対して値のマッピングを行います。従って、このコンポーネントに連結できるコンポーネントはマッパーのみとなっています。
差分を吸収してデータベースを更新する
1. 入力値とRDBの差分を取得するフローを作成し、RDBDiffコンポーネントアイコンを選択して、インスペクタの「実行する処理」プロパティで、「更新する:入力」または「更新する:RDB」のいずれかを選択する
データベースを更新して入力ストリームのレコードデータを出力する場合は「更新する:入力」、データベースを更新して RDBのレコードデータを出力する場合は「更新する:RDB」を指定します。
HINT
「実行する処理」プロパティ
RDBDiffコンポーネントの「実行する処理」プロパティでは、以下の処理を選択できます。
- 「更新しない:入力」- RDBの更新は行わずに、入力ストリームのレコードデータを出力する
- 「更新しない:RDB」-RDBの更新は行わずに、RDBのレコードデータを出力する
- 「更新する:入力」-入力ストリームのレコードでRDBを更新し、入力のレコードデータを出力する
- 「更新する:RDB」-入力ストリームのレコードでRDBを更新し、RDBのレコードデータを出力する
その他のデータベース関連コンポーネント
パレットの「データベース」タブではほかに、以下のようなコンポーネントも利用できます。
アイコン | コンポーネント名 | メニュー名 |
---|---|---|
![]() |
FastInsert | RDBへのデータ高速挿入 |
![]() |
RDBMerge | RDBのMerge文実行 |