COMPACT TABLE
Описание
Вручную запускает компактацию. Doris поддерживает два уровня детализации:
ADMIN COMPACT TABLE: запускает компактацию для всех реплик в указанном разделе таблицы. Поддерживается только в режиме с совмещённым хранением и вычислениями.ADMIN COMPACT TABLET: запускает компактацию для всех реплик указанного таблета. Поддерживается начиная с версии 4.1.4 как в режиме с совмещённым хранением и вычислениями, так и в режиме с разделением хранения и вычислений.
Синтаксис
ADMIN COMPACT TABLE <table_name>
PARTITION <partition_name>
WHERE TYPE={ BASE | CUMULATIVE }
ADMIN COMPACT TABLET <tablet_id>
WHERE TYPE={ BASE | CUMULATIVE | FULL }
Обязательные параметры
ADMIN COMPACT TABLE
<table_name>
Имя таблицы, для которой необходимо запустить компактацию.
<partition_name>
Имя раздела, для которого необходимо запустить компактацию.
TYPE={ BASE | CUMULATIVE }
Здесь BASE означает запуск базовой компактации, а CUMULATIVE — запуск кумулятивной компактации. Подробности см. в разделе COMPACTION.
ADMIN COMPACT TABLET
<tablet_id>
Идентификатор таблета, для которого необходимо запустить компактацию. Таблет должен принадлежать внутренней таблице (OLAP). Чтобы получить его идентификатор, используйте
SHOW TABLETS FROM <table_name>.
TYPE={ BASE | CUMULATIVE | FULL }
Помимо BASE и CUMULATIVE, поддерживается FULL, который означает запуск полной компактации.
Требования к правам доступа
ADMIN COMPACT TABLE
Для успешного выполнения этой команды SQL необходимо иметь право ADMIN_PRIV. См. документацию по правам доступа.
| Право | Объект | Примечания |
|---|---|---|
| ADMIN_PRIV | Права управления всем кластером | Все права, кроме NODE_PRIV |
ADMIN COMPACT TABLET
Для успешного выполнения этой команды SQL необходимо иметь либо глобальное право ADMIN_PRIV, либо право ALTER_PRIV на таблицу, к которой относится таблет. Достаточно любого из этих прав.
| Право | Объект | Примечания |
|---|---|---|
| ADMIN_PRIV | Права управления всем кластером | Все права, кроме NODE_PRIV |
| ALTER_PRIV | Таблица | Достаточно права ALTER на таблицу, к которой относится таблет |
Пример
- Запуск кумулятивной компактации для раздела par01 таблицы tbl.
ADMIN COMPACT TABLE tbl PARTITION par01 WHERE TYPE='CUMULATIVE';
- Запуск полной компактации для таблета 10086.
ADMIN COMPACT TABLET 10086 WHERE TYPE='FULL';
- Запуск базовой компактации для таблета 10086.
ADMIN COMPACT TABLET 10086 WHERE TYPE='BASE';
Примечания по использованию
ADMIN COMPACT TABLEне поддерживается в режиме с разделением хранения и вычислений. Выполнение команды в этом режиме приведёт к ошибке, например:
ADMIN COMPACT TABLE tbl PARTITION par01 WHERE TYPE='CUMULATIVE';
Сообщение об ошибке выглядит следующим образом:
ERROR 1105 (HY000): errCode = 2, detailMessage = Unsupported operation
В этом случае используйте ADMIN COMPACT TABLET.
ADMIN COMPACT TABLETподдерживает только таблеты внутренних таблиц (OLAP). Если идентификатор таблета не существует, база данных или таблица, к которой он относится, удалена либо индекс, к которому он относится, не виден, выполнение команды сразу завершается ошибкой, например:
ERROR 1105 (HY000): errCode = 2, detailMessage = Unknown tablet: 10086
- Обе команды лишь передают задачу компактации на BE. Успешное выполнение команды не означает, что компактация завершена. Используйте SHOW TABLET, чтобы отслеживать изменение количества версий таблета, или API BE compaction-status, чтобы проверить ход выполнения.