更新时间:2026-10-09 GMT+08:00
分享

Iceberg配置与类型

WITH参数说明

本章节介绍Flink连接器读写Iceberg表的参数配置。通过配置相关参数,可以控制Flink与Iceberg表格式之间的连接和读写行为,满足不同业务场景下的数据读写需求。

  • Source参数
    表1 Source参数

    参数

    是否必填

    类型

    默认值

    取值范围

    说明

    streaming

    否

    Boolean

    false

    true、false

    指定是否以流式模式读取Iceberg表。

    true为流式读取,持续监控新快照并增量输出;false为批式读取,读取当前快照全量数据后结束。配置时需根据业务场景选择,实时ETL场景设为true。

    start-snapshot-id

    否

    Long

    无

    有效的快照ID

    指定流式读取的起始快照ID。

    仅当streaming为true时生效。配置后将从该快照之后开始增量读取,未配置则从最早可用快照开始全量读取。配置时需确保快照ID存在且未过期。

    end-snapshot-id

    否

    Long

    无

    有效的快照ID

    指定流式读取的结束快照ID。

    读取到该快照后作业自动结束。仅当streaming为true时生效。配置时需确保end-snapshot-id大于start-snapshot-id。

    split-size

    否

    Long

    128MB

    正整数(字节数)

    指定读取时每个Split的目标大小。

    Iceberg按该大小将数据文件切分为多个Split并行读取。配置时需根据数据量和并行度调整,Split过小产生过多调度开销,Split过大导致数据倾斜。

  • Sink参数
    表2 Sink参数

    参数

    是否必填

    类型

    默认值

    取值范围

    说明

    write-format

    否

    String

    parquet

    parquet、orc、avro

    指定写入Iceberg表的文件格式。

    • parquet为列式存储格式,具有高压缩比和良好的查询性能。
    • orc为Optimized Row Columnar格式。
    • avro为行式存储格式。

    配置时需根据查询引擎和性能需求选择。

    commit.interval

    否

    Duration

    1min

    有效的持续时间,如30s、5min

    指定流式写入时的提交间隔。

    每隔该时间将缓冲的数据文件提交为一个新的Iceberg快照。配置时需在数据可见性和写入性能之间权衡,间隔过短产生过多小文件,间隔过长数据延迟高。

    write.target-file-size-bytes

    否

    Long

    128MB

    正整数(字节数)

    指定写入时目标文件大小。

    当写入数据量达到该阈值时会滚动生成新文件。配置时需根据存储和查询性能需求调整,文件过小影响查询效率,文件过大影响写入延迟。

    upsert-enabled

    否

    Boolean

    false

    true、false

    指定是否启用UPSERT写入模式。

    启用后相同主键的数据将被更新而非追加。配置时需确保Iceberg表已定义主键,否则写入将报错(以产品实际支持为准)。

    compression-codec

    否

    String

    zstd

    uncompressed、snappy、zstd、gzip

    指定写入数据文件的压缩编码。

    不同压缩算法在压缩比和速度之间有不同权衡,zstd提供较好的压缩比和速度平衡。配置时需根据存储成本和查询性能需求选择。

数据类型

Flink

Iceberg

boolean

boolean

tinyint

integer

smallint

integer

integer

integer

bigint

long

float

float

double

double

char

string

varchar

string

string

string

binary

binary

varbinary

fixed

decimal

decimal

date

date

time

time

timestamp

timestamp without timezone

timestamp_ltz

timestamp with timezone

array

list

map

map

multiset

map

row

struct

相关文档