ALTER TABLE COMPACTION
命令功能
ALTER TABLE COMPACTION命令将合并指定数量的segment为一个segment。这将提高该表的查询性能。
命令格式
ALTER TABLE[db_name.]table_name COMPACT 'MINOR/MAJOR/SEGMENT_INDEX';
ALTER TABLE[db_name.]table_name COMPACT 'CUSTOM' WHERE SEGMENT.ID IN (id1, id2, ...);
参数描述
Parameter |
Description |
---|---|
db_name |
数据库名。如果未指定,则选择当前数据库。 |
table_name |
表名。 |
MINOR |
Minor合并,详见合并Segments。 |
MAJOR |
Major合并,详见合并Segments。 |
SEGMENT_INDEX |
这会将一个segment内的所有Carbon索引文件(.carbonindex)合并为一个Carbon索引合并文件(.carbonindexmerge)。 这增强了首次查询性能。详见表1。 |
CUSTOM |
Custom合并,详见合并Segments。 |
注意事项
NA
示例
ALTER TABLE ProductDatabase COMPACT 'MINOR';
ALTER TABLE ProductDatabase COMPACT 'MAJOR';
ALTER TABLE ProductDatabase COMPACT 'SEGMENT_INDEX';
ALTER TABLE ProductDatabase COMPACT 'CUSTOM' WHERE SEGMENT.ID IN (0, 1);
系统响应
由于为后台运行,ALTER TABLE COMPACTION命令不会显示压缩响应。
如果想要查看MINOR合并和MAJOR合并的响应结果,用户可以检查日志或运行SHOW SEGMENTS命令查看。
示例:
+------+------------+--------------------------+------------------+------------+------------+-------------+--------------+--+ | ID | Status | Load Start Time | Load Time Taken | Partition | Data Size | Index Size | File Format | +------+------------+--------------------------+------------------+------------+------------+-------------+--------------+--+ | 3 | Success | 2020-09-28 22:53:26.336 | 3.726S | {} | 6.47KB | 3.30KB | columnar_v3 | | 2 | Success | 2020-09-28 22:53:01.702 | 6.688S | {} | 6.47KB | 3.30KB | columnar_v3 | | 1 | Compacted | 2020-09-28 22:51:15.242 | 5.82S | {} | 6.50KB | 3.43KB | columnar_v3 | | 0.1 | Success | 2020-10-30 20:49:24.561 | 16.66S | {} | 12.87KB | 6.91KB | columnar_v3 | | 0 | Compacted | 2020-09-28 22:51:02.6 | 6.819S | {} | 6.50KB | 3.43KB | columnar_v3 | +------+------------+--------------------------+------------------+------------+------------+-------------+--------------+--+
其中,
- Compacted表示该数据已被合并。
- 0.1表示segment0与segment1合并之后的结果。
数据合并前后的其他操作没有差别。
被合并的segments(例如segment0和segment1)即成为无用的segments,会占用空间,因此建议合并之后使用CLEAN FILES命令进行彻底删除,再进行其他操作。CLEAN FILES命令的使用方法可参考CLEAN FILES。