创建Iceberg表常用配置参数
创建Iceberg表时,可以通过“TBLPROPERTIES”配置相关参数的值。
Read属性参数
|
参数 |
默认值 |
参数说明 |
|---|---|---|
|
read.split.target-size |
134217728(128 MB) |
合并数据输入拆分时的目标大小。 |
|
read.split.metadata-target-size |
33554432(32 MB) |
合并元数据输入拆分时的目标大小。 |
|
read.split.planning-lookback |
10 |
合并输入拆分时考虑的区间 (bin) 数量。 |
|
read.split.open-file-cost |
4194304(4 MB) |
打开文件的预估成本,在合并拆分时用作最小权重。 |
|
read.parquet.vectorization.enabled |
true |
用于控制是否使用Parquet向量化读取。 |
|
read.parquet.vectorization.batch-size |
5000 |
Parquet向量化读取的批处理大小。 |
|
read.orc.vectorization.enabled |
false |
用于控制是否使用ORC向量化读取。 |
|
read.orc.vectorization.batch-size |
5000 |
ORC向量化读取的批处理大小。 |
Write属性参数
|
参数 |
默认值 |
参数说明 |
|---|---|---|
|
write.format.default |
parquet |
表的默认文件格式,支持parquet、avro和orc格式。 |
|
write.delete.format.default |
parquet(默认与“write.format.default”的值相同) |
表的默认删除文件格式,支持parquet、avro和orc格式。 |
|
write.parquet.row-group-size-bytes |
134217728(128 MB) |
用于设置Parquet行组大小。 |
|
write.parquet.page-size-bytes |
1048576(1 MB) |
用于设置Parquet页大小。 |
|
write.parquet.page-row-limit |
20000 |
用于设置Parquet页行限制。 |
|
write.parquet.dict-size-bytes |
2097152(2 MB) |
用于设置Parquet字典页大小。 |
|
write.parquet.compression-codec |
zstd |
用于设置Parquet压缩编解码器,支持设置为zstd、brotli、lz4、gzip、snappy或uncompressed。 |
|
write.parquet.compression-level |
null |
用于设置Parquet的压缩级别。 |
|
write.parquet.bloom-filter-enabled.column.col1 |
- |
用于控制在写入Parquet文件时是否为特定列“col1”启用布隆过滤器。 |
|
write.parquet.bloom-filter-max-bytes |
1048576(1 MB) |
用于设置布隆过滤器位集的最大字节数。 |
|
write.parquet.bloom-filter-fpp.column.col1 |
0.01 |
用于设置在写入Parquet文件时,“col1”的布隆过滤器的误报概率,取值范围为0.0~1.0。 |
|
write.avro.compression-codec |
gzip |
用于指定在写入Avro文件时使用的压缩编解码器,支持设置为gzip(默认为9级Deflate)、zstd、snappy或uncompressed。 |
|
write.avro.compression-level |
null |
用于设置Avro压缩级别。 |
|
write.orc.stripe-size-bytes |
67108864(64 MB) |
用于定义默认的ORC条带大小,单位为字节。 |
|
write.orc.block-size-bytes |
268435456(256 MB) |
用于定义ORC文件的默认文件系统块大小,单位为字节。 |
|
write.orc.compression-codec |
zlib |
用于设置ORC压缩编解码器,支持设置为zstd、lz4、lzo、zlib、snappy或none。 |
|
write.orc.compression-strategy |
speed |
用于设置ORC压缩策略,支持speed、compression。 |
|
write.orc.bloom.filter.columns |
- |
需要创建布隆过滤器的列名的逗号分隔列表。 |
|
write.orc.bloom.filter.fpp |
0.05 |
用于设置布隆过滤器的误报概率,取值范围为0.0~1.0。 |
|
write.location-provider.impl |
null |
可选的LocationProvider自定义实现。 |
|
write.metadata.compression-codec |
none |
元数据压缩编解码器,支持none或gzip。 |
|
write.metadata.metrics.max-inferred-column-defaults |
100 |
定义收集指标的顶级列的最大数量。对于具有嵌套字段的表,存储的指标数量可能高于此限制。 |
|
write.metadata.metrics.default |
truncate(16) |
表中所有列的默认指标模式,支持none、counts、truncate(length)或full。 |
|
write.metadata.metrics.column.col1 |
- |
“col1”列的指标模式,允许按列调整,支持设置为none、counts、truncate(length)或full。 |
|
write.target-file-size-bytes |
536870912(512 MB) |
用于控制生成文件的大小,单位为字节。 |
|
write.delete.target-file-size-bytes |
67108864(512 MB) |
用于控制生成的删除文件的大小,单位为字节。 |
|
write.distribution-mode |
none(不同引擎该参数默认值不同) |
定义写入数据的分布模式。
|
|
write.delete.distribution-mode |
hash |
定义写入删除数据的分布模式。 |
|
write.update.distribution-mode |
hash |
定义写入更新数据的分布模式。 |
|
write.merge.distribution-mode |
none |
定义写入合并数据的分布模式。 |
|
write.wap.enabled |
false |
是否启用写-审计-发布(write-audit-publish)写入数据。 |
|
write.summary.partition-limit |
0 |
如果更改的分区数量小于此限制,则在快照摘要中包含分区级别的摘要统计信息。 |
|
write.metadata.delete-after-commit.enabled |
false |
控制是否在提交后删除最旧的被跟踪的版本元数据文件。 |
|
write.metadata.previous-versions-max |
100 |
提交后保留的先前版本元数据文件的最大数量,超过此数量后将删除。 |
|
write.spark.fanout.enabled |
false |
在Spark中是是否启用扇出写入器(fanout writer),启用后不需要数据聚类,但会使用更多内存。 |
|
write.object-storage.enabled |
false |
是否启用对象存储位置提供器,该提供器会向文件路径添加哈希组件。 |
|
write.object-storage.partitioned-paths |
true |
用于控制Iceberg是否在写入对象存储时使用分区路径存储。 |
|
write.data.path |
表位置 + /data |
用于设置数据文件的基本位置。 |
|
write.metadata.path |
表位置 + /metadata |
用于设置元数据文件的基本位置。 |
|
write.delete.mode |
copy-on-write |
用于设置删除命令使用的模式,支持copy-on-write和merge-on-read(仅v2支持)。 |
|
write.delete.isolation-level |
serializable |
用于设置删除命令的隔离级别,支持serializable和snapshot。 |
|
write.update.mode |
copy-on-write |
用于设置更新命令使用的模式,支持copy-on-write和merge-on-read(仅v2支持)。 |
|
write.update.isolation-level |
serializable |
用于设置更新命令的隔离级别,支持serializable和snapshot。 |
|
write.merge.mode |
copy-on-write |
用于设置合并命令使用的模式,支持copy-on-write和merge-on-read(仅v2支持)。 |
|
write.merge.isolation-level |
serializable |
用于设置合并命令的隔离级别,支持serializable和snapshot。 |
表行为属性参数
|
参数 |
默认值 |
参数说明 |
|---|---|---|
|
commit.retry.num-retries |
4 |
提交失败前的重试次数。 |
|
commit.retry.min-wait-ms |
100 |
重试提交前等待的最小时间(毫秒)。 |
|
commit.retry.max-wait-ms |
60000(1 分钟) |
重试提交前等待的最大时间(毫秒)。 |
|
commit.retry.total-timeout-ms |
1800000(30 分钟) |
提交的总重试超时时间(毫秒)。 |
|
commit.status-check.num-retries |
3 |
在连接丢失后,检查提交是否成功的次数,超过后因未知提交状态而失败。 |
|
commit.status-check.min-wait-ms |
1000(1秒) |
重试状态检查前等待的最小时间(毫秒)。 |
|
commit.status-check.max-wait-ms |
60000(1 分钟) |
重试状态检查前等待的最大时间(毫秒)。 |
|
commit.status-check.total-timeout-ms |
1800000(30 分钟) |
提交状态检查必须成功的总超时时间(毫秒)。 |
|
commit.manifest.target-size-bytes |
8388608(8 MB) |
合并清单文件时的目标大小。 |
|
commit.manifest.min-count-to-merge |
100 |
合并前需累积的清单文件最小数量。 |
|
commit.manifest-merge.enabled |
true |
控制是否在写入时自动合并清单。 |
|
history.expire.max-snapshot-age-ms |
432000000(5 天) |
过期快照时,表及其所有分支上保留的快照的默认最大年龄。 |
|
history.expire.min-snapshots-to-keep |
1 |
过期快照时,表及其所有分支上保留的快照的默认最小数量。 |
|
history.expire.max-ref-age-ms |
Long.MAX_VALUE(永久) |
对于除主分支之外的快照引用,过期快照时保留的快照引用的默认最大年龄,主分支永不过期。 |