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

Teradata Vantage™ - Native Object Store 入門ガイド

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1214-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) 精度が1から38 (両端含む)の範囲で、スケールが0から38 (両端含む)までの範囲の10進数。
VARBYTE(p+1)、pはDECIMALの精度。 精度とスケールが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ファイルは同じ列レイアウトを必要とせず、外部テーブル定義と同じデータ型(データ型に互換性がある場合)は必要ありません。次に例を示します。

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