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 |