Iceberg参数调整

1、读取参数介绍

属性   默认值   描述
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 Parquest矢量化读取的批大小
read.orc.vectorization.enabled false
控制是否使用orc矢量化读取
read.orc.vectorization.batch-size 5000 orc矢量化读取的批处理大小

2、写入参数介绍

属性

默认值

描述

write.format.default parquet 表的默认文件格式。parquet、avro、orc
write.delete.format.default 数据文件格式 表的默认删除文件格式。parquet、avro、orc
write.parquet.row-group-size-bytes 128 MB Row Group大小,最细数据块大小
write.parquet.page-size-bytes 1 MB Page最小存储单元
write.parquet.compression-codec gzip parquet压缩编解码器。zstd, brotli, lz4, gzip, snappy, uncompressed
write.parquet.compression-level null parquet压缩等级
write.avro.compression-codec gzip Avro压缩编解码器。gzip(deflate with 9 level), zstd, snappy, uncompressed
write.avro.compression-level null Avro压缩等级
write.metadata.compression-codec none 元数据压缩编码。none、gzip
write.target-file-size-bytes 512MB 控制生成的文件的大小
write.delete.target-file-size-bytes 64MB 控制生成的删除文件的大小
write.distribution-mode none 写数据的分布方式。none不处理;Hash按分区键散列;range如果表有SortOrder则按分区键或排序键范围分布
write.delete.distribution-mode hash 写删除数据时分布方式
write.update.distribution-mode hash 写更新数据时分布方式
write.merge.distribution-mode none 写合并数据时分布方式
write.metadata.delete-after-commit.enabled false 是否在提交后删除最旧跟踪版本元数据文件
write.metadata.previous-versions-max 100 提交后删除之前保留的旧版本元数据文件最大值
write.data.path table location+/data 数据文件的基本位置
write.metadata.path table location+/metadata 元数据文件的基本位置
write.delete.mode copy-on-write 用于删除命令的模式:写时复制copy-on-write或读时合并merge-on-read(仅限v2)
write.update.mode copy-on-write 用于更新命令的模式:写时复制copy-on-write或读时合并merge-on-read(仅限v2)
write.merge.mode copy-on-write 用于合并命令的模式:写时复制copy-on-write或读时合并merge-on-read(仅限v2)
write.merge.isolation-level serializable 合并命令的隔离级别:serializable、snapshot

 

3、表行为属性

属性

默认值

描述

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) 合并清单文件时的目标大小
commit.manifest.min-count-to-merge 100 合并前要累积的最少清单数
commit.manifest-merge.enabled true 控制是否在写时自动合并清单
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 (永久) 对于除主分支以外的快照引用,在快照过期时要保留的快照引用的默认最大年龄。主干永不过期。

3、保留表属性

属性   默认值   描述
format-version   1 表的格式版本(可以是 1 或 2)根据规范定义。

4、兼容性标志

属性   默认值   描述
compatibility.snapshot-id-inheritance.enabled false 启用无需显式快照ID提交快照

5、catalog属性

属性 默认值 描述
catalog-impl null 自定义Catalog实现,由引擎使用
io-impl null 自定义FileIO实现,用于Catalog中
warehouse null 数据仓库的根路径
uri null URI字符串,如Hive metastore的URI
clients 2 客户端池大小
cache-enabled true 是否缓存catalog条目
cache.expiration-interval-ms 30000 catalog条目在本地缓存的时间间隔(毫秒);0禁用缓存,负值禁用过期
metrics-reporter-impl org.apache.iceberg.metrics.LoggingMetricsReporter 自定义MetricsReporter实现,用于catalog。有关更多详细信息,请参见Metrics reporting部分

6、锁定catalog属性

属性  默认值 描述
lock-impl null 锁管理器的自定义实现,实际接口取决于所使用的目录
lock.table null 用于锁定的辅助表,例如AWS DynamoDB锁管理器
lock.acquire-interval-ms 5000 (5 秒) 获取锁之间等待的间隔
lock.acquire-timeout-ms 180000 (3 分钟) 尝试获取锁的最大时间
lock.heartbeat-interval-ms 3000 (3 秒) 获取锁后每个心跳之间等待的间隔
lock.heartbeat-timeout-ms 15000 (15 秒) 在没有心跳的情况下将锁视为过期的最长时间

7、Hadoop配置

属性 默认值 描述
iceberg.hive.client-pool-size 5 在HMS中跟踪表时Hive客户端池的大小
iceberg.hive.lock-creation-timeout-ms 180000 (3 分钟) 在HMS中创建锁的最大时间(毫秒)
iceberg.hive.lock-creation-min-wait-ms 50 在HMS中创建锁时重试之间的最小时间间隔(毫秒)
iceberg.hive.lock-creation-max-wait-ms 5000 在HMS中创建锁时重试之间的最大时间间隔(毫秒)
iceberg.hive.lock-timeout-ms 180000 (3 分钟) 获取锁的最大时间(毫秒)
iceberg.hive.lock-check-min-wait-ms 50 检查获取锁之间的最小时间间隔(毫秒)
iceberg.hive.lock-check-max-wait-ms 5000 检查获取锁之间的最大时间间隔(毫秒)
iceberg.hive.lock-heartbeat-interval-ms 240000 (4 分钟) HMS锁的心跳间隔
iceberg.hive.metadata-refresh-max-retries 2 元数据文件丢失时的最大重试次数
iceberg.hive.table-level-lock-evict-ms 600000 (10 分钟) JVM表级锁超时时间
iceberg.engine.hive.lock-enabled true 使用HMS锁确保提交的原子性

 

 

 

 

 

其它属性参考官网地址

1、iceberg官网-建表

https://iceberg.apache.org/docs/latest/configuration/

2、iceberg官网-flink写入

https://iceberg.apache.org/docs/latest/flink-connector/

posted @ 2023-11-15 13:50  黑水滴  阅读(341)  评论(0编辑  收藏  举报