# Paimon表属性参数介绍
创建和修改Paimon表时，可以通过TBLPROPERTIES配置相关参数的值。Paimon表属性参数分为Core属性、Read属性、Write属性和Compaction属性等类别。
#### Core属性参数
表1Core属性参数介绍 
| 参数                    | 默认值                     | 参数说明                                                         |
|:---|:---|:---|
| bucket               | -                          | 指定Bucket分区的数量，用于数据均匀分布。                                     |
| primary-key         | -                         | 指定主键列，多个列用逗号分隔。主键表支持更新和删除操作。                                 |
| partition            | -                         | 指定分区列，多个列用逗号分隔。                                             |
| changelog-producer | none                       | 变更日志生产者类型，支持none、input、lookup、full-compaction。             |
| write-mode          | auto                       | 写入模式，支持auto和append-only。                                     |
| merge-engine         | deduplicate              | 主键表的合并引擎，支持deduplicate、partial-update、aggregation、first-row。 |
| format                | orc                       | 数据文件格式，支持orc和parquet。                                         |
| target-file-size     | 128MB                     | 目标数据文件大小。                                                   |
| file.format          | orc                        | 文件存储格式。                                                     |
| file.compression     | zlib(orc)/snappy(parquet) | 文件压缩算法。                                                       |
   
#### Read属性参数
表2Read属性参数介绍 
| 参数                                 | 默认值    | 参数说明                               |
|:---|:---|:---|
| read.batch-size                   | 1024   | 读取时的批处理大小（行数），控制每次从文件读取的行数。         |
| read.parquet.vectorization.enabled | false | 是否启用Parquet向量化读取。                |
| read.orc.vectorization.enabled      | false   | 是否启用ORC向量化读取。                      |
| read.cache-enabled                | true   | 是否开启读取缓存，缓存数据文件和Manifest文件以提高查询性能。 |
| read.cache.max-memory            | 256MB  | 读取缓存的最大内存使用量。                     |
| read.scan.plan-fetch-batch-size  | 500      | 扫描计划分批获取的Manifest文件数量。             |
| read.streaming.enabled             | false   | 是否启用流式读取模式，用于Flink流式消费场景。           |
| read.streaming.time-gap            | 1s     | 流式读取时两次扫描之间的时间间隔。                  |
   
#### Write属性参数
表3Write属性参数介绍 
| 参数                                        | 默认值    | 参数说明                       |
|:---|:---|:---|
| write.parallelism                       | 1     | 写入时的并行度。                  |
| write.batch-size                         | 500 | 批量写入的行数。                  |
| write.auto-compaction                   | false  | 写入后是否自动触发Compaction。      |
| write.compaction.min-num-messages          | 1000  | 异步Compaction触发的最小消息数。      |
| write.compaction.max-size-amplification | 200 | Compaction最大空间放大比例（百分比）。 |
| sink.parallelism                        | -      | Flink Sink算子的并行度。         |
| sink.commit.max-retries                  | 10    | 提交的最大重试次数。                 |
   
#### Compaction属性参数
表4Compaction属性参数介绍 
| 参数                               | 默认值       | 参数说明                                     |
|:---|:---|:---|
| compaction.min.file-num           | 5           | 触发Compaction的最小文件数。                       |
| compaction.max.file-num            | 50        | 单次Compaction合并的最大文件数。                    |
| compaction.max.size-amplification | 200          | Compaction最大空间放大比例（百分比），超过该值会触发Compaction。 |
| compaction.max.output.file-num    | 5           | Compaction后输出的最大文件数。                      |
| num-sorted-run.compaction-trigger | 5            | 触发Sorted Run合并的LSM-Tree层级数。                |
| num-sorted-run.stop-trigger      | 50         | 停止写入等待Compaction的Sorted Run数量阈值。          |
| compaction.optimization-interval | -          | 异步Compaction优化的时间间隔。                       |
| sort-engine                       | loser-tree | 排序引擎类型，支持loser-tree和janitor。                |
   
