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

Teradata Vantage™ - DATASETデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/des1556232910526.ditamap
dita:ditavalPath
ja-JP/des1556232910526.ditaval
dita:id
B035-1198
Product Category
Software
Teradata Vantage
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結果値に保存されます。その場合、スキーマはすべての値とともに保存されるわけではありません。