UDTおよびCDTメタデータを含むデータ型メタデータをテーブル演算子のコントラクト関数に渡すことができます。
マッピング型と変換型の違いは次のとおりです:
- マッピングの種類
- 列のデータ型を識別するためにコントラクト関数で使用される外部型コード。
- 変換型
- 変換関数を呼び出すことによってUDTまたはCDT値が変換される定義データ型。
デフォルトで、すべてのUDTデータ値またはCDTデータ値はデフォルトの変換形式で演算子に渡されます。これは、UDTのSQL変換型または別の事前定義型に対応します。動作は個別のUDT型またはCDT型ごとに明示的に決定されます。Javaテーブル演算子の場合、オプションは無変換形式またはアトマイズ形式で一部のUDTおよびCDTを渡すために提供されます。
また、UDT型またはCDT型はそれぞれ、テーブル演算子コントラクト関数の外部型コードにマッピングされます。各型に関する追加情報は、C/C++テーブル演算子の場合はUDT_BaseInfo_t構造、Javaテーブル演算子の場合はcom.teradata.fnc.runtime.UDTBaseInfoクラスでそれぞれ渡されます。
次のテーブルに、UDTおよびCDTに対する、Teradata SQL型から外部型コードへのコントラクト関数でのメタデータ マッピングを示します。
SQL UDTまたは複合データ型 | 外部型コード |
---|---|
ARRAY/VARRAY | ARRAY_DT |
Avro格納形式のDATASET | DATASET_AVRO_DT |
CSV格納形式のDATASET | DATASET_CSV_DT |
Geospatial – MBB | MBB_DT |
Geospatial – MBR | MBR_DT |
Geospatial – ST_Geometry | ST_GEOMETRY_DT |
JSON | JSON_DT |
PERIODの種類 | PERIOD_DT |
UDT (Distinct) | UDT_DT |
UDT (Structured) | UDT_DT |
XML | XML_DT |
テーブル演算子との間でUDTおよびCDT列の渡し
テーブル演算子のコントラクト関数は、取得される入力列および出力列を説明します。次のセクションでは、UDT列とCDT列がどのようにテーブル演算子に渡され、テーブル演算子から渡されるかについて詳しく説明します。
UDTおよびCDT入力メタデータの取得
UDTおよびCDTメタデータは、コントラクト関数で取得できます。次の2つの方法があります:
- RuntimeContract.getBaseInfo()メソッドを呼び出すことができます。このメソッドは、渡されたColumnDefinitionオブジェクトに対しUDTBaseInfoオブジェクトの配列を返します。このメソッドは、コントラクト関数でのみ呼び出すことができます。
- InputInfoクラスのgetUDTMetaData()メソッドを使用して、UDTおよびCDTメタデータをコントラクト関数と実行関数の両方で取得できます。メソッドは入力列に対しUDTBaseinfoオブジェクトの配列を返します。
UDTおよびCDT出力メタデータの設定
ColumnDefinitionクラスのインスタンスを使用して各出力列を説明します。