17.10 - data_column_definition - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

[CSVまたはParquet形式のデータの場合はオプション。それ以外の場合は許可されません。] 外部ファイル内の1つ以上のデータ列の定義を、レコードが外部ファイルに表示される順序で指定します。

location_columnおよびpayload_columnまたはdata_column_definitionフィールドは、NOSが生成するため、オプションです。CSVの場合、NOSが列を生成できない場合は、代わりに DATASET CSV のペイロード列を生成します。

data_column_definitionの形式はcolumn_name data_typeです。

CSVファイル

NOSはデータ自体の情報からデータ列を作成するため、データ列はオプションです。列とそのデータ型を宣言すると、NOSはそれらの正確さをチェックします。

データ列を指定すると、次のルールが適用されます:
  • column_nameは、ヘッダー レコードの対応する列の名前と一致する必要はありません。
  • data_typeは、CSVレコードの対応するフィールドに関連付けるVantage列のデータ型です。
  • CSVテーブルの場合、data_typeは次のいずれかである必要があります:
    • SMALLINT
    • INTEGER
    • BIGINT
    • DECIMAL(precisionscale)。ここで、precisionの範囲は[1、38]、scaleの範囲は[0、38]です。
    • BYTEINT
    • NUMBER
    • REAL、FLOAT、またはDOUBLE PRECISION
    • BYTE
    • VARBYTE
    • CHAR CHARACTER SET { LATIN | UNICODE }
    • VARCHAR CHARACTER SET { LATIN | UNICODE }
    • 最大16MBのCLOB
    • 最大16MBのBLOB
    • DATE
    • INTERVAL
    • TIME
    • TIMESTAMP
    ユーザー定義型(UDT)および期間データ型(PDT)はサポートされていません。
  • data_typeは次の属性を指定できます:
    • CASESPECIFIC
    • UPPERCASE
    • FORMAT
    • TITLE
  • data_typeは次の属性を指定できません:
    • NOT NULL
    • COMPRESS
    • CONSTRAINT
    • REFERENCES
    • CHECK
  • data_type が数値型の場合:
    • データを表示するFORMATを指定できます。
    • 一重引用符で囲まれたフィールド値は文字列として扱われるため、エラーが発生し、Vantageがレコードをスキップします。
  • data_typeが日付型の場合:
    • Vantageは、その形式を使用して、日、月、および年の位置を決定します。
    • デフォルトの形式は「YY/MM/DD」です。
    • 別の形式を指定できます。
    • CSVレコードの日付フィールドにデフォルトの形式がない場合は、その形式を指定する必要があります。
    • 指定する形式は、月をMMとして、日をDDとして表す必要があります。
  • data_typeが文字型の場合:
    • フィールド値は一重引用符または二重引用符で囲むことができます。

      囲んでいる二重引用符を削除するには、STRIP_ENCLOSING_CHARを使用します。(一重引用符を削除することはできません。)

    • フィールド値には、先頭のスペース、末尾のスペース、またはその両方を含めることができます。
    • デフォルトでは、Vantageは外部のスペース文字(先頭または末尾のスペース)を削除しません。

      外部のスペース文字を削除するには、STRIP_EXTERIOR_SPACESまたはSQL関数(TRIM、LTRIM、およびRTRIM)のいずれかを使用します。

  • 一部のレコードのフィールド数よりも多くの列を指定すると、Vantageは余剰分の各列に値NULLを与えます。
  • 一部のレコードのフィールド数よりも少ない列を指定すると、Vantageは余分のフィールドを無視します。

Parquetファイル

data_typeは、ParquetスキーマのParquetデータ型に対応するVantageデータ型である必要があります。

Parquetデータ型 対応するVantageのデータ型 説明
UINT_8 SMALLINT 0から255の範囲の符号なし整数。
UINT_16 INTEGER 0から65535の範囲の符号なし整数。
UINT_32 BIGINT 0から4,294,967,295の範囲の符号なし整数。
UINT_64 DECIMAL(20,0) 0から18,446,744,073,709,551,615の範囲の符号なし整数。
INT_8 BYTEINT -128から127の範囲の符号付き整数。
INT_16 SMALLINT -32768から32767の範囲の符号付き整数。
INT_32 INTEGER -2,147,483,648から2,147,483,647の範囲の符号付き整数。
INT_64 BIGINT -9,223,372,036,854,775,808から9,223,372,036,854,775,807の範囲の符号付き整数。
INT_96 TIMESTAMP(6) タイムスタンプを示すために使用されます。最初の8バイトはナノ秒数で、次の4バイトはユリウス日以降の日数です。
DECIMAL(p,s) DECIMAL(p,s) precision(値全体の桁数)が1から38(両端を含む)の範囲で、scale(小数点以下の桁数)が0から38(両端を含む)の範囲の小数。
VARBYTE(p+1)、ここでpはDECIMALのprecision。 precisionとscaleが38より大きい。
FLOAT REAL IEEE 32ビット浮動小数点。
DOUBLE REAL IEEE 64ビット浮動小数点。
DATE DATE UNIXエポック時刻(1970年1月1日)からの日数。
TIME_MILLIS TIME(3)またはTIME(6) ミリ秒単位で時間を格納します。
TIME_MICROS TIME(6) マイクロ秒単位で時間を格納します。
TIMESTAMP_MILLIS TIMESTAMP(3)またはTIMESTAMP(6) ミリ秒単位でタイムスタンプを格納します。
TIMESTAMP_MICROS TIMESTAMP(6) マイクロ秒単位でタイムスタンプを格納します。
INTERVAL VARCHAR CHARACTER SET UNICODE 月、日、ミリ秒単位での保存間隔。
BOOL BYTEINT ブール値(TrueまたはFalse)。
STRING VARCHARまたはCLOB CHARACTER SET UNICODE UTF8バイト配列としてエンコードされます。
BSON JSON STORAGE FORMAT BSON BSONデータ。
JSON JSON CHARACTER SET UNICODE JSONデータ。
STRUCT VARCHARまたはCLOB CHARACTER SET UNICODE 固定メンバーのグループ。
MAP VARCHARまたはCLOB CHARACTER SET UNICODE キーを値にマップします。
LIST VARCHARまたはCLOB CHARACTER SET UNICODE 配列に格納されているデータを含みます。
ENUM VARCHARまたはCLOB CHARACTER SET UNICODE UTF8文字列としてエンコードされた列挙値を格納します。
ARRAY VARCHARまたはCLOB CHARACTER SET UNICODE 繰り返しフィールドとして格納されます。単一の値または複数の値の配列を使用できます。