Iceberg数据湖的Table、Catalog、Hadoop配置Configuration

1. Configuration

1.1 table properties

1.1.1 Read properties

因为Iceberg在HDFS上的data文件,通常都是一个个的小文件,所以读取的时候会先进行combine,然后再返回数据。下面是进行combine的一些配置

Property默认描述
read.split.target-size134217728 (128 MB)合并data输入文件的目标大小
read.split.metadata-target-size33554432 (32 MB)合并metadata输入文件的目标大小
read.split.planning-lookback10合并输入文件时,计划使用的垃圾箱数量
read.split.open-file-cost4194304 (4 MB)合并输入文件时,预估打开一个输入文件的成本大小

1.1.2 Write properties

Property默认描述
write.format.defaultparquet表默认的file format,可选参数为parquet、avro、orc
write.parquet.row-group-size-bytes134217728 (128 MB)Parquet row group size
write.parquet.page-size-bytes1048576 (1 MB)Parquet page size
write.parquet.dict-size-bytes2097152 (2 MB)Parquet dictionary page size
write.parquet.compression-codecgzipParquet压缩编码格式,可选参数为zstd、brotli、lz4、gzip、snappy、uncompressed
write.parquet.compression-levelnullParquet compression level
write.avro.compression-codecgzipAvro压缩编码格式,可选参数为gzip(deflate with 9 level)、gzip、snappy、uncompressed
write.metadata.compression-codecnoneMetadata压缩编码格式,可选参数为none、gzip
write.metadata.metrics.defaulttruncate(16)表中所有列默认的metrics模式,可选的参数为none、counts、truncate(length)、full
write.metadata.metrics.column.col-name(not set)表中某一列的metrics模式,可选的参数为none、counts、truncate(length)、full
write.target-file-size-bytes536870912 (512 MB)写入文件的目标大小
write.distribution-modenone定义写入数据的分布式情况,可选参数为:1. none: 不shuffle数据,2. hash: 根据partition key进行hash分布,3. range: 根据partition key或者sort key进行范围分布
write.wap.enabledfalseEnables write-audit-publish writes
write.summary.partition-limit0如果changed partition count小于当前参数,则snapshot summaries包含partition-level汇总状态
write.metadata.delete-after-commit.enabledfalse当表commit之后,是否删除oldest version metadata files
write.metadata.previous-versions-max100当表commit之后,保留最大历史version metadata files数量,超过该历史版本数量的将被删除
write.spark.fanout.enabledfalse在Spark中开启Partitioned-Fanout-Writer writes

1.1.3 Table behavior properties

Property默认描述
commit.retry.num-retries4在失败前,commit重试的次数
commit.retry.min-wait-ms100当一次commit失败,到再次进行commit,之间的最小时间间隔
commit.retry.max-wait-ms60000 (1 min)当一次commit失败,到再次进行commit,之间的最大时间间隔
commit.retry.total-timeout-ms1800000 (30 min)当一个commit进行多次重试时,累计的重试超时时间
commit.status-check.num-retries3当一个connection丢失,导致一个未知的commit状态,需要进行多少次status-check,去判断一个commit是否成功
commit.status-check.min-wait-ms1000 (1s)当一次status-check完成,到下一次status-check,之间的最小时间间隔
commit.status-check.max-wait-ms60000 (1 min)当一次status-check完成,到下一次status-check,之间的最大时间间隔
commit.status-check.total-timeout-ms1800000 (30 min)当进行多次status-check时,累计的check超时时间
commit.manifest.target-size-bytes8388608 (8 MB)合并manifest files的目标大小
commit.manifest.min-count-to-merge100当manifest files的数量最少达到多少时,才进行合并
commit.manifest-merge.enabledtrue写的时候是否自动合并manifest files
history.expire.max-snapshot-age-ms432000000 (5 days)默认最大的snapshot过期时间
history.expire.min-snapshots-to-keep1当所有snapshot都过期时,默认最小保留多少个snapshot不过期
history.expire.max-ref-age-msLong.MAX_VALUE (forever)对于snapshot references(除了main branch,main branch永远不会过期),默认最大snapshot references过期时间

1.1.4 Reserved table properties

只在创建或更新表的时候使用,并不会作为表metadata保存下来

Property默认描述
format-version1表的format version,即版本1和版本2,可选的参数为1、2

1.1.4 Compatibility flags

Property默认描述
compatibility.snapshot-id-inheritance.enabledfalse开启提交没有显式snapshot IDs的snapshots

1.2 Catalog properties

Property默认描述
warehousenull数据仓库的根路径
urinullURI字符串,比如Hive metastore URI
clients2客户端池大小

1.2.1 Lock catalog properties

关于catalog lock相关的配置,用来控制commit期间的lock行为

Property默认描述
lock.tablenull用于lock的辅助表
lock.acquire-interval-ms5 secondsthe interval to wait between each attempt to acquire a lock在两次尝试获取lock之间的时间间隔
lock.acquire-timeout-ms3 minutes尝试获取lock所花费的的最大时间
lock.heartbeat-interval-ms3 seconds当获取lock之后,两次心跳之间的时间间隔
lock.heartbeat-timeout-ms15 seconds当没有心跳超过多久,lock被认为过期

1.3 Hadoop configuration

用于Hive Metastore connector

Property默认描述
iceberg.hive.client-pool-size5当追踪HMS中的表,Hive客户端连接池的大小
iceberg.hive.lock-timeout-ms180000 (3 min)获取一个lock所花费的最大时间,单位毫秒
iceberg.hive.lock-check-min-wait-ms50检查获取到的lock状态,所花费的最小时间,单位毫秒
iceberg.hive.lock-check-max-wait-ms5000检查获取到的lock状态,所花费的最大时间,单位毫秒。该参数应该小于Hive Metastore的事务超时时间,即hive.txn.timeout或metastore.txn.timeout(新版本)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值