17.05 - Parquet外部ファイル - Advanced SQL Engine - Teradata Database

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

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

Parquet形式のデータを含む外部ファイルにアクセスするには、CREATE FOREIGN TABLE文のUSING...STOREDASオプションで、PARQUETを指定する必要があります。

Parquetデータの列名には最大128文字を使用でき、大文字と小文字は区別されます。

Parquetデータの外部テーブルは、プライマリ インデックスなし(NOPI)で作成され、列パーティション化されます。

Parquet形式のデータを含む外部テーブルに対して、次のテーブル レベルのオプションを指定することはできません。
  • 行パーティション化
  • 副行パーティション化(列パーティション済みテーブルの部分行パーティション化)
  • 複数列パーティション
  • 自動圧縮
  • USING句のROWFORMATオプション
  • プライマリ インデックス

外部Parquetファイルは、Snappy形式で圧縮できます。

Parquetデータを含む外部テーブルのデータ列を明示的に定義する必要があります。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バイトはユリウス日(https://en.wikipedia.org/wiki/Julian_day)以降の日数です。
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 繰り返しフィールドとして格納されます。単一の値または複数の値の配列を使用できます。

Parquetファイルは、外部テーブル定義と同じ列レイアウトと同じデータ型をいずれも必要としません(データ型に互換性がある場合)。例:

File(ファイル) 列1 列2 列3 列4 可能
外部テーブルは、右記に指定されたデータ型を持つ3つの列で定義されます。 INT VARCHAR DATE    
ファイル1 - 外部テーブルと同じデータ型の3つの列がある INT VARCHAR DATE   YES
ファイル2 - 末尾に列を追加 INT VARCHAR DATE TIMESTAMP YES
ファイル3 - 末尾から列を削除 INT VARCHAR     YES(列3がNULL受入可能な場合)
ファイル4 - 異なるデータ型 VARCHAR INTERVAL BIGINT   NO、ファイルはスキップされる
ファイル5 - 異なりながら互換のデータ型 BIGINT CLOB DATE   YES