Write to DB
Write to DB ステージでは、データフローの出力をデータベースに書き込みます。ステージは、date
データタイプのすべての値を String
値として書き出します。これは、Spectrum で使用されるデフォルト ドライバである jTDS ドライバの動作です。すべての date
データタイプの値をそのまま処理するには、Microsoft の JDBC ドライバを使用します。
[全般] タブ を設定する
- [接続] ドロップダウン リストから、使用するデータベースへの接続を選択します。
- 新しいデータベース接続を作成するには、[管理] をクリックします。データベース接続の作成の詳細については、「Database Connection Manager」を参照してください。注: このオプションは Enterprise Designer によってのみ使用できます。
- データベースからテーブルまたはビューを選択するには、参照ボタン をクリックして、使用するテーブルまたはビューに移動します。
テーブルを参照して選択すると、[データベース フィールド]、[ステージ フィールド]、[データ タイプ] などの [テーブル スキーマ] が表示されます。テーブルの [プレビュー] も使用可能です。
注: SQL データベースに出力する場合は、複数のテーブルを参照するビューには出力できません。これは SQL Server の制限によります。 - データベースに新しいテーブルを作成するには、[テーブルの作成] をクリックし、表示されるポップアップで [テーブルの所有者] を選択し、[テーブル名] を指定します。 注: テーブル名は大文字と小文字を区別します。注: Write to DB ステージに関連付けられた入力ステージ (Read from File や Read from DB など) がない場合、次のようなエラー メッセージが表示されます: テーブル スキーマが定義されていないと、テーブルを作成できません。このステージに上流フィールドが定義されていることを確認してください。
- テーブル スキーマで、以下の詳細を指定します。
- 対応する [プライマリ キー] のチェックボックスをオンにして、プライマリ キーを指定します。
- [含める] のチェックボックスをオンにして、新しいテーブルを出力先とするフィールドを指定します。
- 文字列のデータ タイプの場合は、[太さ] 列でフィールドの長さを指定します。 注: デフォルトは 512 です。
- [Null を許可] 列のチェックボックスがオンで [入力フィールド] に NULL 値が含まれている場合、データフローはデータベースに NULL 値を書き込みます。
- 対応する[出力フィールド] の値を変更することによって、列名を編集できます。
[テーブルの作成] ボタンは、次のデータベースでのテーブル作成をサポートしています。
- Axion
- DB2
- Derby または Cloudscape
- Firebird
- HSQLDB
- Interbase
- MaxDB または SapDB
- McKoi
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Sybase
注: DB2 データベースでは、テーブルを作成しようとして、ページ サイズがすべての文字列の列の長さの合計より小さい場合、"コンテンツから本体を作成できません。シリアル化可能クラスはブローカに使用できません" というエラーが表示されます。 - [OK] ボタンをクリックして [テーブルの作成] ポップアップを閉じ、[Write to DB オプション] に戻ります。
- [テーブル スキーマ] の [ステージ フィールド] 列で、データベースに書き込むフィールド名を、[データベース フィールド] 列に対応させる形で指定できます。
- [含める] のチェックボックスをオンにして、出力先のフィールドを選択します。注: パフォーマンスが低下するのを防ぐため、データベース テーブルにはソートされたインデックスまたはキーが必要です。
[実行時] タブの設定
オプション名 |
説明 |
---|---|
書き込みモード |
データベース書き込みのアクションを指定します。
|
一括確定 |
このオプションをオンにすると、所定の数のレコードが処理されたとき、データベースへの変更が確定されます。デフォルトでは、このオプションはオフになっていて、1 レコード処理されるごとに変更が確定されます。このオプションをオンにすると、Write to DB ステージのパフォーマンスが大きく向上します。 |
バッチ サイズ |
[一括確定] オプションをオンにする場合、データベースに対して一括で確定するときのレコード数を指定します。デフォルト値は 1,000 です。7.0 およびそれ以前の Spectrum™ Technology Platform で作成されたデータフローの場合、デフォルト値は 100 です。 バッチ サイズを大きくしてもロード パフォーマンスは必ずしも改善しません。バッチ サイズの設定に当たっては、次の要因を検討してください。
|
最終確定 | このオプションを選択すると、すべてのレコードがデータベースに転送された後、データベース操作が確定されます。 |
一括確定数 | 一定のレコード数ごとに確定を行うための値を指定します。データベースに対するレコードの確定は、(一括確定数 * バッチ サイズ) に相当する数のレコードがデータベースに転送されるたびに行われます。例えば、[バッチ サイズ] が 1000、[一括確定数] が 3 の場合、3000 レコードがデータベースに転送されるたびに確定が行われます。 |
データを挿入する前にテーブルを切り捨てる |
このオプションをオンにすると、データベースへの書き込みの前にテーブル内のデータがすべてクリアされます。 |
テーブルが既に存在する場合は破棄して作成し直す |
このオプションをオンにすると、データフローの出力をテーブルに書き込む前にテーブルを削除して作成し直します。このオプションは、テーブルのスキーマをデータフローからのフィールドに一致させ、余分なスキーマ情報を含まないようにしたい場合に便利です。 削除して作成し直すテーブルは、[全般] タブの [テーブル/ビュー] フィールドで指定されたものです。例えば、[テーブル/ビュー] フィールドで "Customers" テーブルを指定し、[テーブルが既に存在する場合は破棄して作成し直す] を選択した場合、"Customers" テーブルはデータベースから削除され、テーブルに書き込まれる実際のフィールドに一致するスキーマを持つ "Customers" という名前の新しいテーブルが作成されます。 |