17.00 - 17.05 - Javaテーブル演算子のメタデータ マッピング - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

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クラスのインスタンスを使用して各出力列を説明します。