属性值 | 含义 | 配置指导 |
format-version | iceberg 表版本,取值范围1、2,默认取值为1 | 如果用户写入场景有 upsert,该值必须设置为2 |
write.upsert.enabled | 是否开启 upsert,取值为true;不设置则为不开启 | 如果用户写入场景有 upsert,必须设置为 true |
write.update.mode | 更新模式 | merge-on-read 指定为 MOR 表,缺省为 COW |
write.merge.mode | merge 模式 | merge-on-read 指定为 MOR 表,缺省为 COW |
write.parquet.bloom-filter-enabled.column.{col} | 开启 bloom,取值为 true 表示开启,缺省不开启 | upsert 场景必须开启,需要根据上游的主键进行配置;如上游有多个主键,最多取前两个;开启后可提升 MOR 查询和小文件合并性能 |
write.distribution-mode | 写实模式 | 建议取值为 hash,当取值为 hash 时,当数据写入时会自行进行 repartition,缺点是影响部分写入性能 |
write.metadata.delete-after-commit.enabled | 开始 metadata 文件自动清理 | 强烈建议设置为 true,开启后 iceberg 在产生快照时会自动清理历史的 metadata 文件,可避免大量的 metadata 文件堆积 |
write.metadata.previous-versions-max | 设置默认保留的 metadata 文件数量 | 默认值为100,在某些特殊的情况下,用户可适当调整该值,需要配合 write.metadata.delete-after-commit.enabled 一起使用 |
write.metadata.metrics.default | 设置列 metrices 模型 | 必须取值为 full |
属性值 | 系统默认值 | 含义 | 配置指导 |
commit.retry.num-retries | 4 | 提交失败后的重试次数 | 发生重试时,可尝试提大次数 |
commit.retry.min-wait-ms | 100 | 重试前的最小等待时间,单位为毫秒 | 当时冲突十分频繁,如等待一段时间后依然冲突,可尝试调整该值,加大重试之间的间隔 |
commit.retry.max-wait-ms | 60000(1 min) | 重试前的最大等待时间,单位为毫秒 | 结合commit.retry.min-wait-ms一起调整使用 |
commit.retry.total-timeout-ms | 1800000(30 min) | 整个重试提交的超时时间 | - |
转换策略 | 描述 | 原始字段类型 | 转换后类型 |
identity | 不转换 | 所有类型 | 与原类型一致 |
bucket[N, col] | hash分桶 | int, long, decimal, date, time, timestamp, timestamptz, string, uuid, fixed, binary | int |
truncate[col] | 截取固定长度 | int, long, decimal, string | 与原类型一致 |
year | 提取字段 year 信息 | date, timestamp, timestamptz | int |
month | 提取字段 mouth 信息 | date, timestamp, timestamptz | int |
day | 提取字段 day 信息 | date, timestamp, timestamptz | int |
hour | 提取字段 hour 信息 | timestamp, timestamptz | int |
场景 | CALL 语句 | 执行引擎 |
查询 history | select * from `DataLakeCatalog`.`db`.`sample$history` | SuperSQL引擎 spark(sql)、SuperSQL presto 引擎 |
| select * from `DataLakeCatalog`.`db`.`sample`.`history` | SuperSQL引擎 spark(作业)、标准引擎 spark |
查询快照 | select * from `DataLakeCatalog`.`db`.`sample$snapshots` | SuperSQL引擎 spark(sql)、SuperSQL presto 引擎 |
| select * from `DataLakeCatalog`.`db`.`sample`.`snapshots` | SuperSQL引擎 spark(作业)、标准引擎 spark |
查询 data 文件 | select * from `DataLakeCatalog`.`db`.`sample$files` | SuperSQL引擎 spark(sql)、SuperSQL presto 引擎 |
| select * from `DataLakeCatalog`.`db`.`sample`.`files` | SuperSQL引擎 spark(作业)、标准引擎 spark |
查询manifests | select * from `DataLakeCatalog`.`db`.`sample$manifests` | SuperSQL引擎 spark(sql)、SuperSQL presto 引擎 |
| select * from `DataLakeCatalog`.`db`.`sample`.`manifests` | SuperSQL引擎 spark(作业)、标准引擎 spark |
查询分区 | select * from `DataLakeCatalog`.`db`.`sample$partitions` | SuperSQL引擎 spark(sql)、SuperSQL presto 引擎 |
| select * from `DataLakeCatalog`.`db`.`sample`.`partitions` | SuperSQL引擎 spark(作业)、标准引擎 spark |
回滚指定快照 | CALL DataLakeCatalog.`system`.rollback_to_snapshot('db.sample', 1) | SuperSQL引擎 spark、标准引擎 spark |
回滚到某个时间点 | CALL DataLakeCatalog.`system`.rollback_to_timestamp('db.sample', TIMESTAMP '2021-06-30 00:00:00.000') | SuperSQL引擎 spark、标准引擎 spark |
设置当前快照 | CALL DataLakeCatalog.`system`.set_current_snapshot('db.sample', 1) | SuperSQL引擎 spark、标准引擎 spark |
合并文件 | CALL DataLakeCatalog.`system`.rewrite_data_files(table => 'db.sample', strategy => 'sort', sort_order => 'id DESC NULLS LAST,name ASC NULLS FIRST') | SuperSQL引擎 spark、标准引擎 spark |
快照过期 | CALL DataLakeCatalog.`system`.expire_snapshots('db.sample', TIMESTAMP '2021-06-30 00:00:00.000', 100) | SuperSQL引擎 spark、标准引擎 spark |
移除孤立文件 | CALL DataLakeCatalog.`system`.remove_orphan_files(table => 'db.sample', dry_run => true) | SuperSQL引擎 spark、标准引擎 spark |
重新元数据 | CALL DataLakeCatalog.`system`.rewrite_manifests('db.sample') | SuperSQL引擎 spark、标准引擎 spark |
文档反馈