表
配置
登录后可跨设备保存划线和私人笔记登录
配置
表属性
Iceberg 表支持通过表属性来配置表的行为,例如读取方的默认分片大小。
读取属性
| 属性 | 默认值 | 说明 |
|---|---|---|
| read.split.target-size | 134217728(128 MB) | 合并数据输入分片时的目标大小 |
| read.split.metadata-target-size | 33554432(32 MB) | 合并元数据输入分片时的目标大小 |
| read.split.planning-lookback | 10 | 合并输入分片时考虑的分桶数量 |
| 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.format.default | parquet | 表的默认文件格式:parquet、avro 或 orc |
| write.delete.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-version | v1 | Parquet 数据页版本:v1(DataPage V1)或 v2(DataPage V2) |
| 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.shred-variants | false | 为 true 时,变体(variant)列将以 shredded Parquet 编码方式写入,以提升查询性能 |
| write.parquet.variant-inference-buffer-size | 100 | 启用变体 shredded 写入时,用于模式推断的缓冲行数 |
| write.parquet.bloom-filter-enabled.column.col1 | (未设置) | 提示 parquet 为列 'col1' 写入布隆过滤器:'col1' |
| write.parquet.bloom-filter-max-bytes | 1048576 (1 MB) | 布隆过滤器位集的最大字节数 |
| write.parquet.bloom-filter-fpp.column.col1 | 0.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-codec | gzip | Avro 压缩编解码器:gzip(9 级 deflate)、zstd、snappy、uncompressed |
| write.avro.compression-level | null | Avro 压缩级别 |
| write.orc.stripe-size-bytes | 67108864 (64 MB) | 定义默认的 ORC stripe 大小,单位为字节 |
| 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 | 定义收集指标的最大列数。列的纳入顺序为对模式的先序遍历:先顶层字段;然后第一个嵌套 struct 的所有元素;接着是下一个嵌套 struct,依此类推。 |
| 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 (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.enabled | false | 启用 write-audit-publish(WAP)写入 |
| 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 写入器,其不要求数据已聚簇;会占用更多内存 |
| write.object-storage.enabled | false | 启用对象存储位置提供器,它会在文件路径中添加哈希组件 |
| write.object-storage.partitioned-paths | true | 在文件路径中包含分区值 |
| write.data.path | 表位置 + /data | 数据文件的基础位置 |
| write.metadata.path | 表位置 + /metadata | 元数据文件的基础位置 |
| write.delete.mode | copy-on-write | delete 命令使用的模式:copy-on-write 或 merge-on-read(v2 及以上) |
| write.delete.isolation-level | serializable | delete 命令的隔离级别:serializable 或 snapshot |
| write.update.mode | copy-on-write | update 命令使用的模式:copy-on-write 或 merge-on-read(v2 及以上) |
| write.update.isolation-level | serializable | update 命令的隔离级别:serializable 或 snapshot |
| write.merge.mode | copy-on-write | merge 命令使用的模式:copy-on-write 或 merge-on-read(v2 及以上) |
| write.merge.isolation-level | serializable | merge 命令的隔离级别:serializable 或 snapshot |
| write.delete.granularity | partition | 控制生成的删除文件的粒度:partition 或 file |
加密属性
| 属性 | 默认值 | 描述 |
|---|---|---|
| encryption.key-id | (未设置) | 表的主密钥 ID |
| encryption.data-key-length | 16(字节) | 用于加密表文件的密钥长度。有效值为 16、24、32 字节 |
更多详情请参阅加密文档。
表行为属性
| 属性 | 默认值 | 描述 |
|---|---|---|
| commit.retry.num-retries | 4 | 提交失败前的重试次数 |
| commit.retry.min-wait-ms | 100 | 重试提交前的最小等待时间(毫秒) |
| commit.retry.max-wait-ms | 60000 (1 min) | 重试提交前的最大等待时间(毫秒) |
| commit.retry.total-timeout-ms | 1800000 (30 min) | 提交的总重试超时时间(毫秒) |
| commit.status-check.num-retries | 3 | 连接丢失后,在因提交状态未知而失败之前,检查提交是否成功所需的重试次数 |
| commit.status-check.min-wait-ms | 1000 (1s) | 重试状态检查前的最小等待时间(毫秒) |
| commit.status-check.max-wait-ms | 60000 (1 min) | 重试状态检查前的最大等待时间(毫秒) |
| commit.status-check.total-timeout-ms | 1800000 (30 min) | 必须成功完成提交状态检查的总超时时间(毫秒) |
| commit.manifest.target-size-bytes | 8388608 (8 MB) | 合并 manifest 文件时的目标大小 |
| commit.manifest.min-count-to-merge | 100 | 执行合并前需要累积的最少 manifest 数量 |
| commit.manifest-merge.enabled | true | 控制写入时是否自动合并 manifest |
| history.expire.max-snapshot-age-ms | 432000000 (5 days) | 过期快照时,在表及其所有分支上保留快照的默认最大存活时间 |
| history.expire.min-snapshots-to-keep | 1 | 过期快照时,在表及其所有分支上保留快照的默认最小数量 |
| history.expire.max-ref-age-ms | Long.MAX_VALUE (forever) | 对于 main 分支以外的快照引用,过期快照时保留快照引用的默认最大存活时间。main 分支永不过期。 |
| gc.enabled | true | 允许执行垃圾回收操作,例如过期快照和删除孤立文件 |
保留表属性
保留表属性仅用于在创建或更新表时控制行为。这些属性的值不会作为表元数据的一部分被持久化保存。
| 属性 | 默认值 | 描述 |
|---|---|---|
| format-version | 2 | 表的格式版本,其定义见规范。自 1.4.0 版本起默认为 2。 |
信息性属性
信息性属性可用于提供有关表的额外上下文信息,适用于文档记录、发现以及与外部工具的集成。它们不会影响读写行为或查询语义。
| 属性 | 默认值 | 描述 |
|---|---|---|
| comment | (未设置) | 表级描述,用于记录表的业务含义和使用场景。 |
兼容性标志
| 属性 | 默认值 | 描述 |
|---|---|---|
| compatibility.snapshot-id-inheritance.enabled | false | 允许在提交快照时不指定显式的快照 ID(当格式版本 > 1 时,此项始终为 true) |
评论
登录后参与评论
正在加载评论…
KnowForge