17.10 - DATASET_PUBLISHがあるカスタム句の使用 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - DATASETデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1198-171K-JPN
Language
日本語 (日本)
DATASET_PUBLISHテーブル演算子は、カスタム句を使用して選択した形式のDATASETデータ型インスタンスを作成します。
  • SCHEMAを指定して公開されたデータ構造を明示的に定義します。SCHEMAをアドホック スキーマ仕様を表わす文字列とともに使用します。他の値を指定するとエラーになります。アドホック スキーマを指定する場合、構造は出力格納形式ルールに準拠している必要があります。この句を指定しないと、DATASETデータ型インスタンスの作成に使用されたデータに基づいて、データベースによってスキーマが自動的に生成されます。
  • 1行の出力データで構成される出力インスタンスにDO_AGGREGATEを指定します。DO_AGGREGATE句にはYまたはNのいずれかを設定します。ここで、Yは結果が集約され(デフォルト)、Nは集約されないことを示します。値は大文字小文字を区別しません。DO_AGGREGATEが除外されている場合、テーブル演算子は特定のグループ(ON句のSELECT文内のオプションのGROUP BY句で定義されている)に対応するすべてのデータを1つのDATASETデータ型インスタンスに集約します。
  • UNIQUE_NAMESを指定して出力スキーマの作成時にUNIQUEレコード名または固定タイプ名を生成します。これは、最終結果にDATASETまたはJSONデータをネストするときに役立ちます。UNIQUE_NAMES句にはYまたはN(大文字小文字を区別しない)のいずれかを設定します。ここで、Yは自動生成された各名前が固有であり、Nが固有ではないことを示します。デフォルトはNです。格納形式がCSVの場合、"UNIQUE_NAMES"は無視されます。
  • CSV格納形式のDATASET値に対してのみINCLUDE_ HEADERを指定します。INCLUDE_ HEADERはYまたはNのいずれかを受け入れます(大文字小文字を区別しません)。Yは、返される各DATASET値にファイル内の最初のレコードとしてヘッダー レコードが含まれていることを示します。Nはヘッダー レコードを省略することを意味します。デフォルト値は、ヘッダー レコードを含むYです。

SCHEMAがCSVスキーマを供給し、指定されたfield_namesと、非NULL値がある場合、DATASET値には、SCHEMAによって指定されたフィールド名を使用するヘッダーが含まれます。その後、フィールド名はスキーマから削除されます。INCLUDE_HEADERがNとして指定されている場合、ヘッダー レコードは書き込まれません。代わりに、フィールド名がスキーマから参照されます。

CSVスキーマがSCHEMAによって指定されておらず、INCLUDE_HEADERがYの場合、テーブルの列名はヘッダー レコードとしてCSVファイルに書き込まれます。INCLUDE_HEADERがNの場合、field_namesはスキーマ内ではNULLです。

SCHEMAがCSVスキーマを提供し、field_namesがNULLであれば、INCLUDE_HEADERがYの場合、NULLが無効なヘッダー レコードであるためエラーが発生します。INCLUDE_HEADERがNの場合、何のアクションも実行されません。

次のテーブルでは、SCHEMA句とINCLUDE_HEADER句のすべての組み合わせをまとめています。

スキーマ INCLUDE_HEADER アクション
スキーマなし Y ヘッダー レコードとしてテーブル列名を使用します。
N "field_names":nullでスキーマを作成します。
フィールド名を持つスキーマ Y
  • フィールド名をヘッダーとして使用します。
  • フィールド名をスキーマから削除します。
N
  • 処理なし
  • フィールド名のスキーマを参照します。

"field_names":nullまたは

"field_names":[]を持つスキーマ

Y エラー
N
  • 処理なし
  • ヘッダー レコードまたはフィールド名は想定されていません。

さらに、RETURNS句を使用して、出力データ型または長さを指定します。デフォルトでは、最大長のAVROに公開するので、目的とする出力に対してはRETURNSを省略します。CSV格納形式出力の場合は、RETURNSを指定します。戻りタイプはDATASET STORAGE FORMAT CSVデータ型でなければなりません。

結果セットがテーブルに挿入された場合、DATASETテーブル列にCREATE TABLE文のWITH SCHEMA句から関連付けられているスキーマがない限り、スキーマはすべてのDATASET結果値に保存されます。その場合、スキーマはすべての値とともに保存されるわけではありません。