RDBMSのテーブルに対して高速な挿入を行います。
| 入力 | フォーマット | Record |
|---|---|---|
| 接続数 | 1 | |
| 説明 |
入力ストリームのフィールド定義を専用の設定画面で行います。
このフィールド定義は直前に連結したマッパーの出力ストリームのフィールド定義にコピーされ、そこに対して値のマッピングを行います。 |
|
| 出力 | フォーマット | Record |
| 説明 | 入力ストリームをそのまま出力します。 |
| 名前 | プロパティ型 | マッピング | 説明 |
|---|---|---|---|
| コネクション名 | connection | - |
接続先のRDBを指定します。
コネクションペインまたは管理コンソールにて作成されたRDB接続名を選択します。
各コネクションの詳細については、「はじめに」-「詳細なトピック」-「フローの構成要素」-「コネクションプロパティ」を参照してください。 |
| テーブル名 | string | 入力&出力 |
更新対象のテーブル名を指定します。
値フィールドをクリックすると、テーブル名とフィールドの設定画面が表示されます。ここでフィールド定義を行うことによってテーブル名が自動で設定されます。設定画面については、下記トピック「テーブル名とフィールドの設定」を参照してください。 |
| 1度に挿入する件数 | int | - | ひとつのInsert文で挿入するレコード件数を設定します。 |
| バッチ処理件数 | int | - | バッチ処理で一度に送信するレコード件数を設定します。 |
| 処理件数 | int | 出力 | 実際に更新されたレコード件数が取得できます。 |
| タイムアウト(秒) | int | 入力&出力 |
RDBMSへ更新文を発行してから結果が返ってくるまでの待ち時間を秒単位で指定します。
指定時間を経過しても実行が終わらない場合は汎用 となります。 0の場合はタイムアウトすることはありません。 |
| 入力 | category | - | 入力ストリームのフィールド定義を行います。 |
| コミット | RDBMSをコミットします。 |
|---|---|
| ロールバック | RDBMSをロールバックします。 |
| タイプ | パラメーター | エラー処理フロー
へのストリーム | エラー
コード | 説明 |
|---|---|---|---|---|
| 汎用 | なし | コンポーネントの入力ストリーム | なし | コネクション名 に指定したコネクションが見つからない場合 |
| データベースベンダー固有の例外コード | テーブルまたはフィールドが見つからない場合 | |||
| データベースベンダー固有の例外コード | SQLの実行に失敗した場合 | |||
| 接続エラー | なし | コンポーネントの入力ストリーム | なし | DBMSとの接続に失敗した場合 |
フローを強制終了すると、通常は実行中のコンポーネントの処理が終了してから次のコンポーネントに制御が遷移する時点でフローがアボートしますが、本コンポーネントでは実行中の処理を強制的に終了してフローがアボートします。
本コンポーネントではDBMS固有のマルチインサート構文を利用することで高速挿入を実現しています。
本コンポーネントで使用可能なDBMSは以下の通りです。
ただしDBMSのサーバーバージョンが上記に該当する場合でもJDBCドライバーが古いバージョンの場合は正しく動作しないことがあります。
ご利用の際には必ず動作確認を行い、動作に支障がある場合はRDBPutコンポーネントをご使用ください。
本コンポーネントでは複数のレコードを一度に挿入することによって高速化を実現しているため、入力ストリームがループによって1レコードずつやってくるような場合は高速化されません。(むしろRDBPutコンポーネントよりもパフォーマンスが悪くなります。)
「1度に挿入する件数」、「バッチ処理件数」と処理速度の相関関係についてはテーブル構造やデータサイズによっても変わるので一概には言えずチューニングが必要になります。
最速の設定値を見つけようとするよりも目標とする数値をクリアする設定値を探すことがチューニングのコツです。
RDBMSのテーブルに対して処理するテーブルとフィールドの選択は、専用のダイアログボックスから行います。
ダイアログボックスから選択すると、インスペクタの入力タブに処理対象フィールドとして表示されます。
表示名に値を設定することでテーブル上の実際のカラム名とストリーム定義で使用するフィールド名を別にすることができます。
定義画面を表示するには、以下のいずれかの操作を行います。
定義画面を表示すると(1)にテーブルの一覧が表示されます。テーブルを指定すると、(3)(5)に情報が表示されます。
テーブルを指定すると、(5)にテーブルのフィールド一覧が表示されます。初期状態では、すべてのフィールドが処理対象になるように(4)のチェックボックスがオンになっています。
フィールドを選択して「OK」をクリックすると、インスペクタの入力タブにフィールド一覧が表示されます。
表示名に値を設定することでテーブル上の実際のカラム名とストリーム定義で使用するフィールド名を別にすることができます。