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。