データ書込In-DBを使用して、テーブルをデータベース内で直接作成または更新します。
インデータベースは、データベースからデータを移動することなく大きなデータセットに対してブレンディングと分析を可能にし、従来の分析メソッドに比べて大幅なパフォーマンス向上を実現します。インデータベースツールカテゴリの詳細については、インデータベースの概要を参照してください。
Review the tool configuration options below.
出力モード: データを書き込むための適切なオプションを選択します。選択肢には、次のものが含まれます。
既存のものを付加する: 既存のテーブルにすべてのデータを追加します。出力は、前レコードと後レコードで構成されます。
データを削除して付加: テーブルから元のレコードをすべて削除し、既存のテーブルにデータを追加します。このモードは、書き込み先のデータベースによって異なります。
Oracleデータベース: DELETEステートメントを使用します。
SQL Serverデータベース: TRUNCATE TABLEステートメントを使用します。こちらのほうが より効率的な方法 です。テーブルの ALTER TABLE 権限または TRUNCATE 権限のいずれかが必要です。
テーブルを上書きする (ドロップ): 既存のテーブルを完全に削除し、新しいテーブルを作成します。
新しいテーブルを作成する: 新しいテーブルを作成します。既存のテーブルは上書きされません。
一時テーブルを作成する: セッションの終了まで使用可能な一時テーブルに書き込みます。このオプションは、メタデータを所定の位置に一時的に保持するため、In-DB 予測マクロを作成する場合に便利です。このオプションを選択すると、テーブル名フィールドは無効になり、[各実行時に固有の一時テーブル名が生成されます] と表示されます。
行の更新: 入力レコードに基づいてテーブルの既存の行を更新します。
行の削除: 入力レコードに基づいてテーブルの既存の行を削除します。
テーブルのマージ: 入力データを、ツールで指定されたテーブルとマージします。選択したマージフィールドに基づいて削除と更新がサポートされます。
テーブル名: 作成または更新するデータベーステーブルの名前を入力します。
フィールドマッピングを付加 (または [行の更新] が選択された 出力モード の場合は、[フィールドマップの設定]): この領域は、[既存のものを追加する] または [データを削除して付加する] が上で選択されている場合に有効になります。
設定モードを選択します。
名前による自動設定: フィールド名でフィールドを整列します。
位置による自動設定: ストリーム内のフィールドの順序でフィールドを整列します。
フィールドが異なる場合: ドロップダウンメニューのオプションから、不適合データフィールドを処理する方法を選択します。
エラー - 処理の停止: 結果ウィンドウにエラーをスローし、処理を終了します。
適用可能なフィールドの出力: 適用可能なフィールドが含まれます。Null値は空のフィールドに表示されます。
オプション: この領域は、出力モード として 行の更新 または 行の削除 が選択されるとアクティブになります。
WHEREフィールドマップ: これは、行の更新と行の削除出力モードの条件ステートメントを形成します。
Use this section to define Pre- and Post-SQL statements to execute. This option is compatible with all of the above output modes. Use the 3-dot menu associated with either the Pre- or Post-SQL Statement fields to launch the Configure Pre/Post-SQL Statements window, which includes the SQL Editor. Note that Stored Procedures are not currently supported.
Pre- and Post-SQL statements are compatible with the following technologies: Bulk Loaders, OCI, ODBC, and OleDB.
Pre-SQL Statement: Define a SQL statement to execute before running the in-database statement/query and before appending to or creating the output table.
Post-SQL Statement: Define a SQL statement to execute after running the in-database statement/query and after appending to or creating the output table.
Most Pre/Post-SQL use cases involve the Write Data In-DB tool. If your workflow doesn't include a Data Stream In tool, then the next best place for session variables is the Write Data In-DB tool.
注記
When the workflow runs, the Results window displays messages to show that the tool is executing SQL statements, along with a label (PreSQL, PostSQL).
All SQL statements are sent directly to the database. Pre- and Post-SQL statements do not return data. While SQL can return data, Designer doesn't do anything with that data.
If there are multiple streams of In-DB tools, there is no guaranteed order of execution between different streams. The Results window displays the order.
出力モードの [行の更新と削除] オプションのサンプルクエリ:
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 ... )
現在、出力オプションの更新/削除は列のエイリアスをサポートしていません。
[出力を更新] オプションでは、[名前による自動設定] のフィールドマッピングオプション、およびターゲットテーブルのフィールド数に一致するフィールドの数について、[位置による自動設定] のフィールドマッピングオプションで、すべてのフィールド名がターゲットテーブルのフィールド名と一致する必要があります。
更新/削除は、現時点で SQL Server ODBC接続でのみサポートされています。
更新/削除出力オプションは現在、Null値の更新または削除をサポートしていません。Alteryxの更新と削除のクエリに使用されている比較演算子(
=
や!=
など)は、Null値に対してエラーを返します。詳細については、Microsoft SQL Serverのドキュメント を参照してください。書き込みInDBツールを使用してデータを付加する場合、INSERTを有効にするには、ターゲットテーブルのすべての列がINSERTステートメントに含まれている必要があります。欠落している列はNull値が付けられます。
マージInDBは、Databricks Unity Catalogでのみサポートされています。