
データ書込In-DB ツール
データベース内で In-DB データストリームを使用して、データベースに直接テーブルを作成もしくは更新します。
インデータベースは、データベースからデータを移動することなく大きなデータセットに対してブレンディングと分析を可能にし、従来の分析メソッドに比べて大幅なパフォーマンス向上を実現します。インデータベースツールカテゴリの詳細については、「インデータベースの概要」を参照してください。
ツール設定
出力モード: データを書き込むための適切なオプションを選択します。選択肢には、次のものが含まれます。
- 既存のものを付加する: 既存のテーブルにすべてのデータを追加します。出力は、レコードの前 + レコードの後で構成されます。
- データを削除して付加する: テーブルから元のレコードをすべて削除し、既存のテーブルにデータを追加します。このモードは、書き込み先のデータベースによって異なります。
- Oracle データベース: DELETE ステートメントを使用します。
- SQL Server データベース: TRUNCATE TABLE ステートメントを使用します。こちらのほうが より効率的な方法 です。テーブルの ALTER TABLE 権限または TRUNCATE 権限のいずれかが必要です。
- テーブルを上書きする (ドロップ): 既存のテーブルを完全に削除し、新しいテーブルを作成します。
- 新しいテーブルを作成する: 新しいテーブルを作成します。既存のテーブルは上書きされません。
- 一時テーブルを作成する: セッションの終了まで使用可能な一時テーブルに書き込みます。このオプションは、メタデータを所定の位置に一時的に保持するため、In-DB 予測マクロを作成する場合に便利です。このオプションを選択すると、テーブル名フィールドは無効になり、[各実行時に固有の一時テーブル名が生成されます] と表示されます。
- 行の更新: 受信レコードに基づいてテーブルの既存の行を更新します。
- 行の削除: 受信レコードに基づいてテーブルの既存の行を削除します。
- テーブル名: 作成または更新するデータベーステーブルの名前を入力します。
フィールドマッピングを付加 (または [行の更新] が選択された 出力モード の場合は、[フィールドマップの設定]): この領域は、既存のものを追加する または データ&を削除して付加する が上で選択されている場合にアクティブになります。
優先設定モードを選択します。
- 名前による自動設定: フィールド名でフィールドを整列します。
- 位置による自動設定: ストリーム内のフィールドの順序でフィールドを整列します。
フィールドが異なる場合: ドロップダウンを使用してオプションから不適合データフィールドを処理する方法を選択します。
- エラー - 処理の停止: 結果ウィンドウにエラーをスローし、処理を終了します。
- 適用可能なフィールドの出力: 適用可能なフィールドが含まれます。Null 値は空のフィールドに表示されます。
オプション: この領域は、出力モード として 行の更新 または 行の削除 が選択されるとアクティブになります。
- WHERE フィールドマップ: これは、行の更新と行の削除出力モードの条件ステートメントを形成します。
制限
- 現在、出力オプションの更新/削除は列のエイリアスをサポートしていません。
- [出力を更新] オプションでは、[名前による自動設定] のフィールドマッピングオプション、およびターゲットテーブルのフィールド数に一致するフィールドの数について、[位置による自動設定] のフィールドマッピングオプションで、すべてのフィールド名がターゲットテーブルのフィールド名と一致する必要があります。
- 更新/削除は、現時点で SQL Server ODBC 接続でのみサポートされています。
クエリ構造
以下は、出力モードの [行の更新と削除] オプションのサンプルクエリです。
行の更新
WITH upstream AS
(
...
)
UPDATE t
SET
t.col2 = (SELECT col2 FROM upstream u WHERE u.col1 = t.col1 AND ...),
...
FROM target_ t
WHERE EXISTS
(
SELECT * FROM upstream u WHERE u.col1 = t.col1 AND ...
)
行の削除
WITH upstream AS
(
...
)
DELETE t from target_ t
WHERE EXISTS
(
SELECT * FROM upstream u WHERE u.col1 = t.col1 AND ...
)