AI 数据湖服务(LAS)提供多种存储优化功能,通过小文件合并等能力帮助用户提升查询性能,优化存储资源。以下是存储优化功能中小文件合并功能的详细说明及操作指南。
在数据湖管理中,小文件合并是优化查询效率和查询性能的重要手段。在数据高频次增量写入或小批量写入,可能导致大量小数据文件块生成,通过持续小文件合并可以提升存储利用率、获取更优的查询性能以及高效的数据管理。
LAS 为您提供小文件合并的存储优化功能,打开开关后,您可配置小文件合并的优化任务,配置完成后,即可实现对小文件的合并优化。
当前仅支持 Lance 和 Iceberg类型的表使用存储优化-小文件合并功能。
登录 LAS 控制台,在顶部左上角根据实际情况选择地域,在左侧导航栏选择 湖管理 > 元数据,选择对应的 数据库 > 数据表,进入数据表列表页面。
选择目标表,进入表详情 > 存储优化界面,并打开小文件合并功能。
配置小文件合并的参数。
参数 | 配置说明 |
|---|---|
资源分配 | 设置为当前小文件合并任务分配的资源CU数。 |
目标文件大小 | 设置需要合并的小文件大小。 |
分区过滤 | 您可通过写入 where 子句的过滤条件来圈定小文件合并的范围。 |
周期调度 | 选择是否需要打开周期调度的开关。
|
终止前一个优化任务 | 设置是否强制终止前序优化任务。打开开关后,在每次调度任务执行时强制终止前一个优化任务。 |
自定义配置 | 根据需要配置小文件合并任务运行过程中涉及的自定义参数。详情请参见下文的参考:自定义参数说明。 |
在配置存储优化过程中,支持配置的 Iceberg 自定义参数包括 Iceberg 官方文档的options参数,strategy和sort_order参数。
配置存储优化过程中,支持配置的 Lance 自定义参数如下。
自定义参数 | 参数说明 |
|---|---|
target_rows_per_fragment | 合并后每个 fragment 的目标行数 |
max_rows_per_group | 控制写入时每个 row group 的上限行数 |
materialize_deletions | 逻辑删除实体化 |
materialize_deletions_threshold | 当某个输入文件的删除占比超过该阈值时,执行实际删除 |
batch_size | 合并重写时的微批大小(行数) |
defer_index_remap | 用于“延迟索引重映射/维护”,当优化或合并产生新的数据文件、行组与行 ID 映射变化时,不在当前操作内立刻更新索引引用,而是把索引维护留到后续独立步骤统一处理 |
完成小文件合并功能开启配置后,您可以在小文件合并页面手动触发优化任务执行,也可查看优化记录和效果。