すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:Parquet

最終更新日:Jan 08, 2025

このトピックでは、Parquetフォーマットの使用方法の例を示し、Parquetのパラメーターとデータ型マッピングについて説明します。

制限事項

  • Parquet フォーマットを使用して、Parquetデータの読み取りと書き込みを行うことができます。

  • サポートされているオブジェクトストレージサービス(OSS)コネクタのみが、Parquetフォーマットのデータを読み取ることができます。

サンプルコード

次のサンプルコードは、OSSコネクタを使用してParquetフォーマットでテーブルを作成する方法の例を示しています。

CREATE TABLE user_behavior (
  user_id BIGINT,
  item_id BIGINT,
  category_id BIGINT,
  behavior STRING,
  ts TIMESTAMP(3),
  dt STRING
) PARTITIONED BY (dt) WITH (
 'connector' = 'filesystem',
 'path' = 'oss://<bucket>/path',
 'format' = 'parquet'
)

パラメーター

パラメーター

必須

デフォルト値

データ型

説明

format

はい

デフォルト値なし

STRING

使用するように宣言するフォーマット。 Parquetフォーマットを使用する場合は、このパラメーターを parquet に設定します。

parquet.utc-timezone

いいえ

false

BOOLEAN

UTCタイムゾーンを使用するかどうかを指定します。 このパラメーターを設定して、エポック時間と LocalDateTime で指定された時間の変換をサポートできます。

有効な値:

  • true:UTCタイムゾーンが使用されます。

  • false:ローカルタイムゾーンが使用されます。

Parquetフォーマットは、ParquetOutputFormat で提供されているパラメーターもサポートしています。 たとえば、parquet.compression=GZIP を設定して、GZIP圧縮機能を有効にすることができます。

データ型マッピング

Parquetデータ型と Flink SQL データ型のマッピングは、Parquetデータ型と Apache Hive データ型のマッピングと互換性があります。 Parquetデータ型と Flink SQL データ型のマッピングは、次の点で、Parquetデータ型と Apache Spark データ型のマッピングとは異なります。

  • Flink SQL の TIMESTAMP データ型は、精度に関係なく、Parquet の INT96 データ型にマッピングされます。

  • Flink SQL の DECIMAL データ型は、精度に基づいて固定長のバイト数を持つParquet配列にマッピングされます。

次の表は、Flink SQL データ型と Parquet データ型のマッピングを示しています。

Flink SQL データ型

Parquet データ型

Parquet の論理データ型

CHAR、VARCHAR、および STRING

BINARY

UTF8

BOOLEAN

BOOLEAN

-

BINARY および VARBINARY

BINARY

-

DECIMAL

FIXED_LEN_BYTE_ARRAY

DECIMAL

TINYINT

INT32

INT_8

SMALLINT

INT32

INT_16

INT

INT32

-

BIGINT

INT64

-

FLOAT

FLOAT

-

DOUBLE

DOUBLE

-

DATE

INT32

DATE

TIME

INT32

TIME_MILLIS

TIMESTAMP

INT96

-

ARRAY

-

LIST

MAP

-

MAP

ROW

-

STRUCT