OPTIMIZE 命令
概述
OPTIMIZE 是ClickZetta Lakehouse中用于表数据优化和压缩的核心操作命令。通过整合小文件、清理删除标记和重组数据布局,可以显著改善查询性能和存储效率。虽然Lakehouse后台不定时默认会自动执行文件合并,但在频繁更新或需要精细控制合并频率的场景中,用户可以通过手动调用该命令来满足特定业务需求。该命令支持异步和同步两种执行模式,为不同场景提供灵活的优化方案。
命令语法
- table_name(必选)
- 需要优化的目标表名称,格式为
[schema_name.]table_name
- WHERE predicate(可选)
- 分区过滤条件,必须包含完整的分区列匹配条件
- 支持格式:
partition_column = 'value'或复合分区dt='2023-01-01' AND region='us' - OPTIONS:Lakehouse保留参数
注意事项
- 该功能只能在通用型(GENERAL PURPOSE VIRTUAL CLUSTER)计算集群运行,如果在分析型该功能不会生效
核心功能
- 小文件合并:将多个小数据文件整合为大文件,减少文件元数据开销
- 删除标记清理:清理UPDATE/DELETE操作产生的删除标记,回收存储空间
- 数据重组:重新整理数据布局,提升查询性能
执行模式
1. 异步执行模式(默认)
异步执行为OPTIMIZE的默认行为,操作在后台进行,不阻塞当前连接。
特点
- 非阻塞:立即返回Job ID,操作在后台执行
语法
2. 同步执行模式
同步执行会阻塞当前连接,直到优化操作完全完成,立即获取详细的执行结果。
特点
- 阻塞式:操作完成才返回,期间连接被占用
- 实时反馈:立即获得详细的执行统计和成功状态
- 适用场景:开发测试、小表优化、验证优化效果
- 确定性:确保操作完全完成
语法
适用场景
- 大量UPDATE/DELETE操作后的存储清理
- 释放临时存储空间的定期维护
- 优化表的总体存储布局
联系我们
