Blue icon with floppy disk.

データ書込In-DB ツール

バージョン:
Current
Last modified: January 29, 2021

データベース内で 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 ...
   )

役に立ちましたか?

Running into problems or issues with your Alteryx product? Visit the Alteryx Community or contact support. Can't submit this form? Email us.