関数マッピングを使用すると、外部サーバーでテーブル演算子を実行するだけでなく、データベースまたはユーザー内でテーブル演算子を実行するための単純な名前を指定できます。関数マッピングは、入力テーブル、出力テーブル、および処理中に使用するその他のパラメータを定義します。以前は、ユーザーはkmeans@coprocessorのようなテーブル演算子の場所を指定する必要がありました。例:
SELECT * FROM kmeans@coprocessor ( ON computers_train1 AS InputTable ON kmeanssample_centroid AS CentroidsTable USING OutputTable(kmeanssample_output) ClusterAssignmentTable(kmeanssample_clusteredoutput) ) AS dt ORDER BY clusterid ;
CREATE FUNCTION MAPPING SQL文を使用して関数マッピングを定義した後、ユーザー クエリーは単純にkmeansのような関数マッピング名を指定できます。例:
SELECT * FROM KMeans( ON computers_train1 AS InputTable ON kmeanssample_centroid AS CentroidsTable OUT TABLE OutputTable(kmeanssample_output) OUT TABLE ClusterAssignmentTable(kmeanssample_clusteredoutput) ) AS dt ORDER BY clusterid ;
利点
- データベース内のテーブル演算子をマッピングするには、SERVER句を指定せずにCREATE FUNCTION MAPPING文を使用します。
- @coprocessor構文を非表示にすることで、ユーザー エクスペリエンスの簡素化を実現し、セキュリティも強化できます。ユーザーはクエリーで@coprocessorを指定する必要はありません。
- わかりやすい名前を付けることで使い勝手が向上します。
- 関数マッピング定義はテーブル仕様を簡素化します。
- 実働環境のクエリーに影響を与えることなく、関数引数などのクエリー操作に対する変更を可能にします。
- 複数のANY IN TABLE句を指定できます。
考慮事項
データベース内に格納されているテーブル演算子の場合、データベースまたはユーザーを指定しないと、優先順位に従って場所のデフォルトは次のいずれかになります。
- セッションの現在のデフォルト データベースまたはユーザー
- SYSLIB
SQLの変更
CREATE FUNCTION MAPPINGとREPLACE FUNCTION MAPPINGの場合:
- SERVER句はオプションになりました。つまり、データベースまたはユーザー内のテーブル演算子には指定されません。
- 複数のANY IN TABLE句を指定できるようになりました。
追加情報
外部テーブルの作成の詳細については、<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
テーブル演算子の処理の詳細については、<Teradata Vantage™ SQLデータ操作言語、B035-1146>の「テーブル演算子」を参照してください。