跳转至

Configurations

多级配置管理

Arctic 提供的参数都可以在 catalog, table, 引擎端配置,配置的优先级为引擎优先表,优先 catalog,一般情况下,我们推荐用户在 catalog 中设置默认值,比如 self-optimizing 相关参数,推荐用户在 创建表 时指定表的个性化配置,也可以通过 修改表 修改配置,如果要在引擎中针对性调优,再考虑在引擎中配置

Self-optimizing 配置

Self-optimizing 配置对 Iceberg format, Mixed streaming format 都会生效。

配置名称 默认值 描述
self-optimizing.enabled true 是否开启 self-optimizing
self-optimizing.group default self-optimizing 所属的 optimizer 组
self-optimizing.quota 0.1 表所能占用的 self-optimizing 资源量
self-optimizing.num-retries 5 self-optimizing 失败时的重试次数
self-optimizing.execute.timeout 1800000(30分钟) self-optimizing 执行超时时间,超时会失败重试
self-optimizing.target-size 134217728(128MB) self-optimizing 的目标文件大小
self-optimizing.max-file-count 10000 一次 self-optimizing 最多处理的文件个数
self-optimizing.fragment-ratio 8 fragment 文件大小阈值,实际计算时取倒数与 self-optimizing.target-size 的值相乘
self-optimizing.minor.trigger.file-count 12 触发 minor optimizing 的 fragment 最少文件数量
self-optimizing.minor.trigger.interval 3600000(1小时) 触发 minor optimizing 的最长时间间隔
self-optimizing.major.trigger.file-count 12 触发 major optimizing 的最少文件数量
self-optimizing.major.trigger.duplicate-ratio 0.5 在一个 target-size 空间内,在主键上重复的数据量占比到达 duplicate-ratio 阈值后出发 major optimizing
self-optimizing.major.trigger.interval 86400000(1天) 触发 major optimizing 的最长时间间隔
self-optimizing.full.trigger.interval -1(关闭) 触发 full optimizing 的最长时间间隔

数据清理配置

数据清理配置对 Iceberg format, Mixed streaming format 都会生效。

配置名称 默认值 描述
table-expire.enabled true 是否开启的表过期数据自动清理
change.data.ttl.minutes 10080(7天) ChangeStore 数据的过期时间
snapshot.change.keep.minutes 10080(7天) ChangeStore 历史快照的保留时间
snapshot.base.keep.minutes 720(12小时) BaseStore 历史快照的保留时间
clean-orphan-file.enabled false 是否开启孤儿文件自动清理
clean-orphan-file.min-existing-time-minutes 2880(2天) 存在时间超过 min-existing-time-minutes 未被引用的孤儿文件会被自动清理

Mixed streaming format

如果使用 native Iceberg format 表,请参阅 Iceberg configurations,以下参数对 Mixed streaming format 有效。

表读取配置

配置名称 默认值 描述
read.split.open-file-cost 4194304(4MB) 预估与读取开销等价的打开一个文件开销,一般不改
read.split.planning-lookback 10 拆分读取任务所使用分桶算法里桶的个数
read.split.target-size 134217728(128MB) 查询引擎中的读取任务会尽量拆分成这个大小

表写入配置

配置名称 默认值 描述
base.write.format parquet BaseStore 的文件格式,只对有主键表有效
change.write.format parquet ChangeStore 的文件格式,只对有主键表有效
write.format.default parquet 表的默认写入文件格式,只对无主建表有效
base.file-index.hash-bucket 4 BaseStore auto-bucket 的初始 bucket 个数
change.file-index.hash-bucket 4 ChangeStore auto-bucket 文件索引的初始 bucket 个数
write.target-file-size-bytes 134217728(128MB) 文件写入时的目标文件大小
write.upsert.enabled false 是否开启 upsert 写入模式,开启后相同主键的多条 insert 数据会被合并
write.distribution-mode hash 数据写入时的 shuffle 规则,无主键表可以选择 none、hash,有主键表目前只能选择 hash
write.distribution.hash-mode auto 使用 auto-bucket hash,支持 primary-key、partition-key、primary-partition-key 和 auto

Logstore 相关配置

配置名称 默认值 描述
log-store.enabled false 是否开启 Logstore
log-store.type kafka Logstore 的类型,当前支持 'kafka'、'pulsar'
log-store.address NULL 当 log-store.enabled=true 时必填,Logstore 的地址。对于 Kafka,为 kafka bootstrap servers地址;对于 Pulsar,为 Pulsar Service url,如: 'pulsar://localhost:6650'
log-store.topic NULL 当 log-store.enabled=true 时必填,Logstore 使用的 topic
log-store.consistency-guarantee.enabled false 标记是否开启一致性保证,目前 log-store.type=plusar 时不支持开启一致性保证
properties.pulsar.admin.adminUrl NULL Logstore 是 pulsar 时必填,否则可不填。Pulsar admin 的 HTTP URL,如:http://my-broker.example.com:8080
properties.XXX NULL Logstore的参数。

对于 Logstore 为 Kafka ('log-store.type'='kafka' 默认值)时,Kafka Consumer/Producer 支持的其他所有参数都可以通过在前面拼接 properties. 的前缀来设置,
如:'properties.batch.size'='16384'
完整的参数信息可以参考 Kafka consumer 配置kafka producer 配置

对于 Logstore 为 Pulsar ('log-store.type'='pulsar')时,Pulsar 支持的相关配置都可以通过在前面拼接 properties. 的前缀来设置,
如:'properties.pulsar.client.requestTimeoutMs'='60000'
完整的参数信息可以参考 Flink-Pulsar-Connector文档

Watermark 相关配置

配置名称 默认值 描述
table.event-time-field _ingest_time 计算 watermark 的事件时间字段,默认的 _ingest_time 表示使用数据写入时间来计算
table.watermark-allowed-lateness-second 0 计算 watermark 时允许的数据乱序时间
table.event-time-field.datetime-string-format yyyy-MM-dd HH:mm:ss 当事件时间为字符串时,事件时间的格式
table.event-time-field.datetime-number-format TIMESTAMP_MS 当事件时间为数字时,事件时间的格式,支持 TIMESTAMP_MS(毫秒级时间戳)与TIMESTAMP_S(秒级时间戳)

Mixed Hive format 相关配置

配置名称 默认值 描述
base.hive.auto-sync-schema-change true 是否从 HMS 自动同步 Hive 的 schema 变更
base.hive.auto-sync-data-write false 是否自动同步 Hive 的原生的数据写入,有 Hive 原生数据写入时需要打开

Trash 相关配置

配置名称 默认值 描述
table-trash.enabled false 是否开启回收站功能
table-trash.custom-root-location null 自定义回收站目录
table-trash.keep.days 7 回收站保留时间
table-trash.file-pattern .+\.parquet|.*snap-[0-9]+-[0-9]+-.+\.avro|.*version-hint.text|.*V[0-9]+\.metadata\.json|.*[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}-m[0-9]+\.avro 允许放入回收站的文件的正则表达式