You need to enable JavaScript to run this app.
导航
ORC
最近更新时间:2024.08.20 17:38:32首次发布时间:2024.08.20 17:38:32

Apache ORC Format 允许读写 ORC 数据。

如何用 ORC 格式创建一个表格

下面是一个用 Filesystem connector 和 ORC format 创建表格的例子。

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' = 'orc'
)

Format 参数

参数

是否必选

默认值

类型

描述

format

必选

(none)

String

指定要使用的格式,这里应该是 'orc'。

ORC 格式也支持来源于 Table properties 的表属性。举个例子,可以设置 orc.compress=SNAPPY 来允许 spappy 压缩。

参数

默认值

描述

orc.compress

ZLIB

high level compression = {NONE, ZLIB, SNAPPY, LZO, LZ4, ZSTD}

orc.compress.size

262,144

compression chunk size

orc.stripe.size

67,108,864

memory buffer in bytes for writing

orc.row.index.stride

10,000

number of rows between index entries

orc.create.index

true

whether the ORC writer creates indexes as part of the file or not

orc.bloom.filter.columns

””

comma separated list of column names

orc.bloom.filter.fpp

0.01

bloom filter false positive rate

数据类型映射

ORC 格式类型的映射和 Apache Hive 是兼容的。下面的表格列出了 Flink 类型的数据和 ORC 类型的数据的映射关系。

Flink 数据类型

Orc 物理类型

Orc 逻辑类型

CHAR

bytes

CHAR

VARCHAR

bytes

VARCHAR

STRING

bytes

STRING

BOOLEAN

long

BOOLEAN

BYTES

bytes

BINARY

DECIMAL

decimal

DECIMAL

TINYINT

long

BYTE

SMALLINT

long

SHORT

INT

long

INT

BIGINT

long

LONG

FLOAT

double

FLOAT

DOUBLE

double

DOUBLE

DATE

long

DATE

TIMESTAMP

timestamp

TIMESTAMP

ARRAY

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

LIST

MAP

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

MAP

ROW

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

STRUCT