Перейти к содержимому
Последнее обновление

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 на таблицу, к которой относится таблет

Пример​

  1. Запуск кумулятивной компактации для раздела par01 таблицы tbl.
ADMIN COMPACT TABLE tbl PARTITION par01 WHERE TYPE='CUMULATIVE';
  1. Запуск полной компактации для таблета 10086.
ADMIN COMPACT TABLET 10086 WHERE TYPE='FULL';
  1. Запуск базовой компактации для таблета 10086.
ADMIN COMPACT TABLET 10086 WHERE TYPE='BASE';

Примечания по использованию​

  1. ADMIN COMPACT TABLE не поддерживается в режиме с разделением хранения и вычислений. Выполнение команды в этом режиме приведёт к ошибке, например:
ADMIN COMPACT TABLE tbl PARTITION par01 WHERE TYPE='CUMULATIVE';

Сообщение об ошибке выглядит следующим образом:

ERROR 1105 (HY000): errCode = 2, detailMessage = Unsupported operation

В этом случае используйте ADMIN COMPACT TABLET.

  1. ADMIN COMPACT TABLET поддерживает только таблеты внутренних таблиц (OLAP). Если идентификатор таблета не существует, база данных или таблица, к которой он относится, удалена либо индекс, к которому он относится, не виден, выполнение команды сразу завершается ошибкой, например:
ERROR 1105 (HY000): errCode = 2, detailMessage = Unknown tablet: 10086
  1. Обе команды лишь передают задачу компактации на BE. Успешное выполнение команды не означает, что компактация завершена. Используйте SHOW TABLET, чтобы отслеживать изменение количества версий таблета, или API BE compaction-status, чтобы проверить ход выполнения.