DATASET_PUBLISHは、異なるデータソース(SQL文で参照されるもの)からDATASETデータ型インスタンスを作成します。格納されたデータを外部から認識可能なファイル形式にエクスポートして、任意の格納形式のDATASETデータ型を公開します。DATASET_PUBLISHは、この操作の結果として構成されたデータを返す1つの出力列"data"を返します。
さまざまな形式:
- Avroとして構成されたデータは、AVRO格納形式のDATASET型インスタンスとして返されます。AVROとして格納されたDATASETデータ型がDATASET_PUBLISHを使用してAvroインスタンスを作成するとき、そのスキーマは出力スキーマと結合されます。デフォルトでは、DATASETの値をAvro格納形式でパブリッシュします。
- CSVとして構成されたデータは、CSV格納形式を持つDATASET型のインスタンスとして返されます。CSVファイルには、CSV列の名前とデータを含むヘッダー行が含まれています。指定されたスキーマにnull field_namesキーがある場合、ヘッダーはCSV値には含まれません。すべてのデータは、行と列の区切り記号を使用して区切られます。DATASET_PUBLISHを使用してCSVインスタンスを作成するすべてのTeradata複合データ型(DATASETを含む)は、テキスト表現に変換され、CSVインスタンスでは1つのフィールドとして扱われます。DATASET型にスキーマを含めるには、SCHEMA句を使用します。
DATASET値にスキーマがあり、その値が列ベースのスキーマが定義されたテーブル列に挿入された場合、スキーマはその値から削除され、CSVデータは列ベースのスキーマに対して検証されます。
JSONデータとDATASETデータは入力としてサポートされていません。
- DATASET型に公開されたJSONデータは目的の格納形式に変換され、出力と結合されます。
- DATASET_PUBLISHを使用してAVROまたはCSVインスタンスを作成するために使用されるその他のTeradata複合データ型は、テキスト表現に変換され、作成されるインスタンスでは1つのフィールドとして扱われます。固有UDTと構造化UDTはサポートされていないことに注意してください。
DATASET_PUBLISHを使用してAvroインスタンスを作成し、定義によりNULL受入れ可能として検出された型をパブリッシュする場合、スキーマはNULLのUNIONと対応するデータ型を使用して、型をそのようにマークします。つまり、フィールドのスキーマ型は、"type":"int"の代わりに"type":["null","int"]のようになります。
Nullは常に、自動生成されたAvroスキーマのUNIONの最初の構成要素であることが保証されます。