Skip to main content

Blue icon with floppy disk. データ書込In-DBツール

データ書込In-DBを使用して、テーブルをデータベース内で直接作成または更新します。

インデータベースは、データベースからデータを移動することなく大きなデータセットに対してブレンディングと分析を可能にし、従来の分析メソッドに比べて大幅なパフォーマンス向上を実現します。インデータベースツールカテゴリの詳細については、 インデータベースの概要 を参照してください。

ツールの設定

出力モード : データを書き込むための適切なオプションを選択します。選択肢には、次のものが含まれます。

  • 既存のものを付加する : 既存のテーブルにすべてのデータを追加します。出力は、前レコードと後レコードで構成されます。

  • データを削除して付加 : テーブルから元のレコードをすべて削除し、既存のテーブルにデータを追加します。このモードは、書き込み先のデータベースによって異なります。

    • Oracleデータベース: DELETEステートメントを使用します。

    • SQL Serverデータベース: TRUNCATE TABLEステートメントを使用します。こちらのほうが より効率的な方法 です。テーブルの ALTER TABLE 権限または TRUNCATE 権限のいずれかが必要です。

  • テーブルを上書きする (ドロップ) : 既存のテーブルを完全に削除し、新しいテーブルを作成します。

  • 新しいテーブルを作成する : 新しいテーブルを作成します。既存のテーブルは上書きされません。

  • 一時テーブルを作成する : セッションの終了まで使用可能な一時テーブルに書き込みます。このオプションは、メタデータを所定の位置に一時的に保持するため、In-DB 予測マクロを作成する場合に便利です。このオプションを選択すると、テーブル名フィールドは無効になり、[各実行時に固有の一時テーブル名が生成されます] と表示されます。

  • 行の更新 : 入力レコードに基づいてテーブルの既存の行を更新します。

  • 行の削除 : 入力レコードに基づいてテーブルの既存の行を削除します。

  • テーブルのマージ : 入力データを、ツールで指定されたテーブルとマージします。選択したマージフィールドに基づいて削除と更新がサポートされます。

  • テーブル名 : 作成または更新するデータベーステーブルの名前を入力します。

フィールドマッピングを付加 (または [ 行の更新 ] が選択された 出力モード の場合は、[ フィールドマップの設定 ]): この領域は、[ 既存のものを追加する ] または [ データを削除して付加する ] が上で選択されている場合に有効になります。

設定モードを選択します。

  • 名前による自動設定 : フィールド名でフィールドを整列します。

  • 位置による自動設定 : ストリーム内のフィールドの順序でフィールドを整列します。

フィールドが異なる場合 : ドロップダウンメニューのオプションから、不適合データフィールドを処理する方法を選択します。

  • エラー - 処理の停止 : 結果ウィンドウにエラーをスローし、処理を終了します。

  • 適用可能なフィールドの出力 : 適用可能なフィールドが含まれます。Null値は空のフィールドに表示されます。

オプション : この領域は、 出力モード として 行の更新  または 行の削除  が選択されるとアクティブになります。

  • WHEREフィールドマップ : これは、行の更新と行の削除出力モードの条件ステートメントを形成します。

制限事項

  • 現在、出力オプションの更新/削除は列のエイリアスをサポートしていません。

  • [出力を更新] オプションでは、[名前による自動設定] のフィールドマッピングオプション、およびターゲットテーブルのフィールド数に一致するフィールドの数について、[位置による自動設定] のフィールドマッピングオプションで、すべてのフィールド名がターゲットテーブルのフィールド名と一致する必要があります。

  • 更新/削除は、現時点で SQL Server ODBC接続でのみサポートされています。

  • 更新/削除出力オプションは現在、Null値の更新または削除をサポートしていません。Alteryxの更新と削除のクエリに使用されている比較演算子( = != など)は、Null値に対してエラーを返します。詳細については、 Microsoft SQL Serverのドキュメント を参照してください。

  • 書き込みInDBツールを使用してデータを付加する場合、INSERTを有効にするには、ターゲットテーブルのすべての列がINSERTステートメントに含まれている必要があります。欠落している列はNull値が付けられます。

  • マージInDBは、Databricks Unity Catalogでのみサポートされています。

クエリ構造

出力モードの [行の更新と削除] オプションのサンプルクエリ:

行の更新

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 ... )