表

配置

师成师成· 更新于 2026-09-28· 阅读 18 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

配置

表属性

Iceberg 表支持通过表属性来配置表的行为,例如读取方的默认分片大小。

读取属性

属性默认值说明
read.split.target-size134217728(128 MB)合并数据输入分片时的目标大小
read.split.metadata-target-size33554432(32 MB)合并元数据输入分片时的目标大小
read.split.planning-lookback10合并输入分片时考虑的分桶数量
read.split.open-file-cost4194304(4 MB)打开文件的预估开销,用作合并分片时的最小权重
read.parquet.vectorization.enabledtrue控制是否使用 Parquet 向量化读取
read.parquet.vectorization.batch-size5000Parquet 向量化读取的批大小
read.orc.vectorization.enabledfalse控制是否使用 ORC 向量化读取
read.orc.vectorization.batch-size5000ORC 向量化读取的批大小

写入属性

属性默认值说明
write.format.defaultparquet表的默认文件格式:parquet、avro 或 orc
write.delete.format.default数据文件格式表的默认删除文件格式:parquet、avro 或 orc
write.parquet.row-group-size-bytes134217728 (128 MB)Parquet 行组大小
write.parquet.page-size-bytes1048576 (1 MB)Parquet 页大小
write.parquet.page-versionv1Parquet 数据页版本:v1(DataPage V1)或 v2(DataPage V2)
write.parquet.page-row-limit20000Parquet 页行数上限
write.parquet.dict-size-bytes2097152 (2 MB)Parquet 字典页大小
write.parquet.compression-codeczstdParquet 压缩编解码器:zstd、brotli、lz4、gzip、snappy、uncompressed
write.parquet.compression-levelnullParquet 压缩级别
write.parquet.shred-variantsfalse为 true 时,变体(variant)列将以 shredded Parquet 编码方式写入,以提升查询性能
write.parquet.variant-inference-buffer-size100启用变体 shredded 写入时,用于模式推断的缓冲行数
write.parquet.bloom-filter-enabled.column.col1(未设置)提示 parquet 为列 'col1' 写入布隆过滤器:'col1'
write.parquet.bloom-filter-max-bytes1048576 (1 MB)布隆过滤器位集的最大字节数
write.parquet.bloom-filter-fpp.column.col10.01应用于 'col1' 的布隆过滤器的误报率(必须 > 0.0 且 < 1.0)
write.parquet.bloom-filter-ndv.column.col1(未设置)应用于 'col1' 的布隆过滤器的预期不同值数量(必须 > 0)
write.parquet.stats-enabled.column.col1(未设置)控制是否为列 'col1' 收集 Parquet 列统计信息
write.avro.compression-codecgzipAvro 压缩编解码器:gzip(9 级 deflate)、zstd、snappy、uncompressed
write.avro.compression-levelnullAvro 压缩级别
write.orc.stripe-size-bytes67108864 (64 MB)定义默认的 ORC stripe 大小,单位为字节
write.orc.block-size-bytes268435456 (256 MB)定义 ORC 文件的默认文件系统块大小
write.orc.compression-codeczlibORC 压缩编解码器:zstd、lz4、lzo、zlib、snappy、none
write.orc.compression-strategyspeedORC 压缩策略:speed(速度)、compression(压缩)
write.orc.bloom.filter.columns(未设置)需要为其创建布隆过滤器的列名列表,以逗号分隔
write.orc.bloom.filter.fpp0.05布隆过滤器的误报率(必须 > 0.0 且 < 1.0)
write.location-provider.implnull可选的 LocationProvider 自定义实现
write.metadata.compression-codecnone元数据压缩编解码器:none 或 gzip
write.metadata.metrics.max-inferred-column-defaults100定义收集指标的最大列数。列的纳入顺序为对模式的先序遍历:先顶层字段;然后第一个嵌套 struct 的所有元素;接着是下一个嵌套 struct,依此类推。
write.metadata.metrics.defaulttruncate(16)表中所有列的默认指标模式:none、counts、truncate(length) 或 full
write.metadata.metrics.column.col1(未设置)列 'col1' 的指标模式,用于逐列调整;none、counts、truncate(length) 或 full
write.target-file-size-bytes536870912 (512 MB)控制生成文件的目标大小(字节数)
write.delete.target-file-size-bytes67108864 (64 MB)控制生成删除文件的目标大小(字节数)
write.distribution-mode未设置,具体默认值取决于引擎,例如 Spark 写入定义写入数据的分布方式:none:不 shuffle 行;hash:按键分区键进行哈希分布;range:按分区键进行范围分布,若表定义了 SortOrder 则按排序键分布
write.delete.distribution-mode(未设置)定义写入删除数据的分布方式
write.update.distribution-mode(未设置)定义写入更新数据的分布方式
write.merge.distribution-mode(未设置)定义写入合并数据的分布方式
write.wap.enabledfalse启用 write-audit-publish(WAP)写入
write.summary.partition-limit0如果变更的分区数小于该限制,则在快照摘要中包含分区级汇总统计信息
write.metadata.delete-after-commit.enabledfalse控制在每次表提交后是否删除最旧的被跟踪的版本元数据文件。更多细节请参见删除旧元数据文件章节
write.metadata.previous-versions-max100要跟踪的历史版本元数据文件的最大数量
write.spark.fanout.enabledfalse启用 Spark 中的 fanout 写入器,其不要求数据已聚簇;会占用更多内存
write.object-storage.enabledfalse启用对象存储位置提供器,它会在文件路径中添加哈希组件
write.object-storage.partitioned-pathstrue在文件路径中包含分区值
write.data.path表位置 + /data数据文件的基础位置
write.metadata.path表位置 + /metadata元数据文件的基础位置
write.delete.modecopy-on-writedelete 命令使用的模式:copy-on-write 或 merge-on-read(v2 及以上)
write.delete.isolation-levelserializabledelete 命令的隔离级别:serializable 或 snapshot
write.update.modecopy-on-writeupdate 命令使用的模式:copy-on-write 或 merge-on-read(v2 及以上)
write.update.isolation-levelserializableupdate 命令的隔离级别:serializable 或 snapshot
write.merge.modecopy-on-writemerge 命令使用的模式:copy-on-write 或 merge-on-read(v2 及以上)
write.merge.isolation-levelserializablemerge 命令的隔离级别:serializable 或 snapshot
write.delete.granularitypartition控制生成的删除文件的粒度:partition 或 file

加密属性

属性默认值描述
encryption.key-id(未设置)表的主密钥 ID
encryption.data-key-length16(字节)用于加密表文件的密钥长度。有效值为 16、24、32 字节

更多详情请参阅加密文档。

表行为属性

属性默认值描述
commit.retry.num-retries4提交失败前的重试次数
commit.retry.min-wait-ms100重试提交前的最小等待时间(毫秒)
commit.retry.max-wait-ms60000 (1 min)重试提交前的最大等待时间(毫秒)
commit.retry.total-timeout-ms1800000 (30 min)提交的总重试超时时间(毫秒)
commit.status-check.num-retries3连接丢失后,在因提交状态未知而失败之前,检查提交是否成功所需的重试次数
commit.status-check.min-wait-ms1000 (1s)重试状态检查前的最小等待时间(毫秒)
commit.status-check.max-wait-ms60000 (1 min)重试状态检查前的最大等待时间(毫秒)
commit.status-check.total-timeout-ms1800000 (30 min)必须成功完成提交状态检查的总超时时间(毫秒)
commit.manifest.target-size-bytes8388608 (8 MB)合并 manifest 文件时的目标大小
commit.manifest.min-count-to-merge100执行合并前需要累积的最少 manifest 数量
commit.manifest-merge.enabledtrue控制写入时是否自动合并 manifest
history.expire.max-snapshot-age-ms432000000 (5 days)过期快照时,在表及其所有分支上保留快照的默认最大存活时间
history.expire.min-snapshots-to-keep1过期快照时,在表及其所有分支上保留快照的默认最小数量
history.expire.max-ref-age-msLong.MAX_VALUE (forever)对于 main 分支以外的快照引用,过期快照时保留快照引用的默认最大存活时间。main 分支永不过期。
gc.enabledtrue允许执行垃圾回收操作,例如过期快照和删除孤立文件

保留表属性

保留表属性仅用于在创建或更新表时控制行为。这些属性的值不会作为表元数据的一部分被持久化保存。

属性默认值描述
format-version2表的格式版本,其定义见规范。自 1.4.0 版本起默认为 2。

信息性属性

信息性属性可用于提供有关表的额外上下文信息,适用于文档记录、发现以及与外部工具的集成。它们不会影响读写行为或查询语义。

属性默认值描述
comment(未设置)表级描述,用于记录表的业务含义和使用场景。

兼容性标志

属性默认值描述
compatibility.snapshot-id-inheritance.enabledfalse允许在提交快照时不指定显式的快照 ID(当格式版本 > 1 时,此项始终为 true)

评论

登录后参与评论

正在加载评论…