You need to enable JavaScript to run this app.
流式计算 Flink版

流式计算 Flink版

复制全文
Formats 参考
Parquet
复制全文
Parquet

Apache Parquet 格式允许读写 Parquet 数据。

如何创建基于 Parquet 格式的表

以下为用 Filesystem 连接器和 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' = '/tmp/user_behavior',
 'format' = 'parquet'
)

Format 参数

参数

是否必选

默认值

类型

描述

format

必选

(none)

String

指定使用的格式,此处应为"parquet"。

parquet.utc-timezone

注意:仅适用于 Flink1.11 版本

可选

false

Boolean

使用 UTC 时区或本地时区在纪元时间和 LocalDateTime 之间进行转换。Hive 0.x/1.x/2.x 使用本地时区,但 Hive 3.x 使用 UTC 时区。

Parquet 格式也支持 ParquetOutputFormat 的配置。例如,可以配置 parquet.compression=GZIP 来开启 gzip 压缩。

数据类型映射

目前,Parquet 格式类型映射与 Apache Hive 兼容,但与 Apache Spark 有所不同:

  • Timestamp:不论精度,映射 timestamp 类型至 int96。
  • Decimal:根据精度,映射 decimal 类型至固定长度字节的数组。

下表列举了 Flink 中的数据类型与 Parquet 中的数据类型的映射关系。

Flink 数据类型

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

注意:仅适用于 Flink1.16 版本

LIST

MAP

注意:仅适用于 Flink1.16 版本

MAP

ROW

注意:仅适用于 Flink1.16 版本

STRUCT

最近更新时间:2024.08.20 17:38:32
这个页面对您有帮助吗?
有用
有用
无用
无用