Операторы SYSTEM
SYSTEM RELOAD EMBEDDED DICTIONARIES
Перезагружает все внутренние словари.
По умолчанию внутренние словари отключены.
Всегда возвращает Ok. независимо от результата обновления внутреннего словаря.
SYSTEM RELOAD DICTIONARIES
Перезагружает все словари, которые были успешно загружены ранее.
По умолчанию словари загружаются по требованию (см. dictionaries_lazy_load), поэтому вместо автоматической загрузки при запуске они инициализируются при первом обращении через функцию dictGet или SELECT из таблиц с ENGINE = Dictionary. Запрос SYSTEM RELOAD DICTIONARIES перезагружает такие словари (LOADED).
Всегда возвращает Ok. независимо от результата обновления словаря.
Синтаксис
SYSTEM RELOAD DICTIONARY
Полностью перезагружает словарь dictionary_name независимо от его состояния (LOADED / NOT_LOADED / FAILED).
Всегда возвращает Ok. независимо от результата обновления словаря.
Статус словаря можно проверить, выполнив запрос к таблице system.dictionaries.
SYSTEM RELOAD MODELS
Эта команда и SYSTEM RELOAD MODEL только выгружают модели CatBoost из clickhouse-library-bridge. Функция catboostEvaluate() загружает модель при первом обращении, если она ещё не загружена.
Выгружает все модели CatBoost.
Синтаксис
SYSTEM RELOAD MODEL
Перезагружает модель CatBoost, расположенную по пути model_path.
Синтаксис
SYSTEM RELOAD FUNCTIONS
Перезагружает все зарегистрированные исполняемые пользовательские функции или одну из них из конфигурационного файла.
Синтаксис
SYSTEM RELOAD ASYNCHRONOUS METRICS
Пересчитывает все асинхронные метрики. Поскольку асинхронные метрики периодически обновляются на основе параметра asynchronous_metrics_update_period_s, их ручное обновление с помощью данной команды обычно не требуется.
SYSTEM DROP DNS CACHE
Очищает внутренний DNS-кеш ClickHouse. В некоторых случаях (для старых версий ClickHouse) необходимо использовать эту команду при изменении инфраструктуры (например, при изменении IP-адреса другого сервера ClickHouse или сервера, используемого словарями).
Для более удобного (автоматического) управления кешем см. параметры disable_internal_dns_cache, dns_cache_max_entries, dns_cache_update_period.
SYSTEM DROP MARK CACHE
Очищает кеш засечек.
SYSTEM DROP ICEBERG METADATA CACHE
Очищает кэш метаданных Iceberg.
SYSTEM DROP TEXT INDEX DICTIONARY CACHE
Очищает кэш словаря текстового индекса.
SYSTEM DROP TEXT INDEX HEADER CACHE
Очищает кеш заголовков текстовых индексов.
SYSTEM DROP TEXT INDEX POSTINGS CACHE
Очищает кэш постингов текстового индекса.
SYSTEM DROP TEXT INDEX CACHES
Очищает кэш заголовков текстового индекса, кэш словаря и кэш постингов.
SYSTEM DROP REPLICA
Неактивные реплики таблиц ReplicatedMergeTree можно удалить с помощью следующего синтаксиса:
Запросы удаляют путь реплики ReplicatedMergeTree в ZooKeeper. Это полезно, когда реплика неактивна и её метаданные невозможно удалить из ZooKeeper командой DROP TABLE, поскольку такой таблицы больше не существует. Команда удаляет только неактивные/устаревшие реплики и не может удалить локальную реплику — для этого используйте DROP TABLE. DROP REPLICA не удаляет таблицы и не удаляет данные или метаданные с диска.
Первый вариант удаляет метаданные реплики 'replica_name' таблицы database.table.
Второй выполняет то же самое для всех реплицируемых таблиц в базе данных.
Третий выполняет то же самое для всех реплицируемых таблиц на локальном сервере.
Четвёртый вариант полезен для удаления метаданных неактивной реплики, когда все остальные реплики таблицы были удалены. Требуется явно указать путь к таблице. Это должен быть тот же путь, который был передан в качестве первого аргумента движка ReplicatedMergeTree при создании таблицы.
SYSTEM DROP DATABASE REPLICA
Неработающие реплики баз данных Replicated можно удалить с помощью следующего синтаксиса:
Аналогично SYSTEM DROP REPLICA, но удаляет путь реплики базы данных Replicated из ZooKeeper в случае, когда отсутствует база данных для выполнения DROP DATABASE. Обратите внимание, что данная команда не удаляет реплики ReplicatedMergeTree (поэтому может также потребоваться выполнение SYSTEM DROP REPLICA). Имена шарда и реплики — это имена, которые были указаны в аргументах движка Replicated при создании базы данных. Эти имена также можно получить из столбцов database_shard_name и database_replica_name в таблице system.clusters. Если предложение FROM SHARD отсутствует, то replica_name должно быть полным именем реплики в формате shard_name|replica_name.
SYSTEM DROP UNCOMPRESSED CACHE
Очищает кэш несжатых данных.
Кэш несжатых данных включается и отключается с помощью настройки use_uncompressed_cache на уровне запроса, пользователя или профиля.
Размер кэша настраивается с помощью серверной настройки uncompressed_cache_size.
SYSTEM DROP COMPILED EXPRESSION CACHE
Очищает кэш скомпилированных выражений.
Кэш скомпилированных выражений включается и отключается с помощью настройки compile_expressions на уровне запроса, пользователя или профиля.
SYSTEM DROP QUERY CONDITION CACHE
Очищает кеш условий запроса.
SYSTEM DROP QUERY CACHE
Очищает кеш запросов. Если указан тег, удаляются только записи кеша запросов с указанным тегом.
SYSTEM DROP FORMAT SCHEMA CACHE
Очищает кэш схем, загруженных из format_schema_path.
Поддерживаемые типы:
- Protobuf: Удаляет из памяти импортированные определения сообщений Protobuf.
- Files: Удаляет кэшированные файлы схем, хранящиеся локально в
format_schema_path, которые создаются при установкеformat_schema_sourceв значениеquery. Примечание: Если тип не указан, очищаются оба кэша.
SYSTEM FLUSH LOGS
Сбрасывает буферизованные сообщения журнала в системные таблицы, например system.query_log. Полезна в основном для отладки, так как большинство системных таблиц имеют интервал сброса по умолчанию 7,5 секунд. Эта команда также создаст системные таблицы, даже если очередь сообщений пуста.
Если не требуется сбрасывать всё, можно сбросить один или несколько отдельных журналов, указав их имя или целевую таблицу:
SYSTEM RELOAD CONFIG
Перезагружает конфигурацию ClickHouse. Используется, когда конфигурация хранится в ZooKeeper. Обратите внимание, что SYSTEM RELOAD CONFIG не перезагружает конфигурацию пользователей (USER), хранящуюся в ZooKeeper, а только конфигурацию пользователей из файла users.xml. Для перезагрузки всей конфигурации пользователей используйте SYSTEM RELOAD USERS.
SYSTEM RELOAD USERS
Перезагружает все хранилища управления доступом, включая: users.xml, локальное дисковое хранилище доступа, реплицируемое (в ZooKeeper) хранилище доступа.
SYSTEM SHUTDOWN
Корректно завершает работу ClickHouse (аналогично командам service clickhouse-server stop / kill {$pid_clickhouse-server})
SYSTEM KILL
Завершает процесс ClickHouse (аналогично kill -9 {$ pid_clickhouse-server})
Управление распределёнными таблицами
ClickHouse может управлять распределёнными таблицами. Когда пользователь вставляет данные в эти таблицы, ClickHouse сначала создаёт очередь данных, которые должны быть отправлены на узлы кластера, а затем асинхронно отправляет их. Управлять обработкой очереди можно с помощью запросов STOP DISTRIBUTED SENDS, FLUSH DISTRIBUTED и START DISTRIBUTED SENDS. Также можно синхронно вставлять распределённые данные с помощью настройки distributed_foreground_insert.
SYSTEM STOP DISTRIBUTED SENDS
Отключает фоновое распределение данных при вставке данных в распределённые таблицы.
Если включена настройка prefer_localhost_replica (по умолчанию), данные в локальный шард всё равно будут вставлены.
SYSTEM FLUSH DISTRIBUTED
Заставляет ClickHouse синхронно отправлять данные на узлы кластера. Если какие-либо узлы недоступны, ClickHouse выбрасывает исключение и останавливает выполнение запроса. Запрос можно повторять до тех пор, пока он не выполнится успешно, что произойдёт, когда все узлы снова будут в сети.
Также можно переопределить некоторые настройки с помощью секции SETTINGS, что может быть полезно для обхода некоторых временных ограничений, таких как max_concurrent_queries_for_all_users или max_memory_usage.
Каждый ожидающий блок хранится на диске с настройками из исходного запроса INSERT, поэтому иногда может потребоваться переопределить настройки.
SYSTEM START DISTRIBUTED SENDS
Включает фоновое распределение данных при вставке данных в распределённые таблицы.
SYSTEM STOP LISTEN
Закрывает сокет и корректно завершает существующие соединения с сервером на указанном порту с указанным протоколом.
Однако если соответствующие настройки протокола не были указаны в конфигурации clickhouse-server, эта команда не будет иметь эффекта.
- Если указан модификатор
CUSTOM 'protocol', будет остановлен пользовательский протокол с указанным именем, определённый в секции protocols конфигурации сервера. - Если указан модификатор
QUERIES ALL [EXCEPT .. [,..]], останавливаются все протоколы, если они не указаны в секцииEXCEPT. - Если указан модификатор
QUERIES DEFAULT [EXCEPT .. [,..]], останавливаются все протоколы по умолчанию, если они не указаны в секцииEXCEPT. - Если указан модификатор
QUERIES CUSTOM [EXCEPT .. [,..]], останавливаются все пользовательские протоколы, если они не указаны в секцииEXCEPT.
SYSTEM START LISTEN
Разрешает установку новых соединений по указанным протоколам.
Однако если сервер на указанном порту и протоколе не был остановлен с помощью команды SYSTEM STOP LISTEN, эта команда не будет иметь эффекта.
Управление таблицами MergeTree
ClickHouse может управлять фоновыми процессами в таблицах MergeTree.
SYSTEM STOP MERGES
Позволяет остановить фоновые слияния для таблиц семейства MergeTree:
DETACH / ATTACH таблицы запустит фоновые слияния для таблицы, даже если слияния были остановлены для всех таблиц MergeTree ранее.
SYSTEM START MERGES
Позволяет запустить фоновые слияния для таблиц семейства MergeTree:
SYSTEM STOP TTL MERGES
Позволяет остановить фоновое удаление старых данных согласно выражению TTL для таблиц семейства MergeTree.
Возвращает Ok., даже если таблица не существует или таблица не использует движок MergeTree. Возвращает ошибку, если база данных не существует:
SYSTEM START TTL MERGES
Позволяет запустить фоновое удаление старых данных согласно выражению TTL для таблиц семейства MergeTree.
Возвращает Ok., даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM STOP MOVES
Позволяет остановить фоновое перемещение данных согласно табличному выражению TTL с предложением TO VOLUME или TO DISK для таблиц семейства MergeTree.
Возвращает Ok., даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM START MOVES
Позволяет запустить фоновое перемещение данных согласно табличному выражению TTL с предложением TO VOLUME и TO DISK для таблиц семейства MergeTree.
Возвращает Ok., даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM SYSTEM UNFREEZE
Удаляет замороженную резервную копию с указанным именем со всех дисков. Подробнее о размораживании отдельных частей см. в ALTER TABLE table_name UNFREEZE WITH NAME
SYSTEM WAIT LOADING PARTS
Ожидает завершения загрузки всех асинхронно загружаемых частей данных таблицы (устаревших частей данных).
Управление таблицами ReplicatedMergeTree
ClickHouse может управлять фоновыми процессами, связанными с репликацией, в таблицах ReplicatedMergeTree.
SYSTEM STOP FETCHES
Позволяет остановить фоновую загрузку вставленных кусков данных для таблиц семейства ReplicatedMergeTree.
Всегда возвращает Ok. независимо от движка таблицы, даже если таблица или база данных не существует.
SYSTEM START FETCHES
Позволяет запустить фоновую загрузку вставленных кусков данных для таблиц семейства ReplicatedMergeTree.
Всегда возвращает Ok. независимо от движка таблицы, даже если таблица или база данных не существует.
SYSTEM STOP REPLICATED SENDS
Позволяет остановить фоновую отправку новых вставленных кусков данных другим репликам в кластере для таблиц семейства ReplicatedMergeTree:
SYSTEM START REPLICATED SENDS
Позволяет запустить фоновую отправку новых вставленных кусков данных другим репликам в кластере для таблиц семейства ReplicatedMergeTree:
SYSTEM STOP REPLICATION QUEUES
Позволяет остановить фоновые задачи загрузки из очередей репликации, хранящихся в ZooKeeper, для таблиц семейства ReplicatedMergeTree. Возможные типы фоновых задач: слияния, загрузки, мутации, DDL-операторы с предложением ON CLUSTER:
SYSTEM START REPLICATION QUEUES
Позволяет запустить фоновые задачи загрузки из очередей репликации, хранящихся в ZooKeeper, для таблиц семейства ReplicatedMergeTree. Возможные типы фоновых задач: слияния, загрузки, мутации, DDL-операторы с предложением ON CLUSTER:
SYSTEM STOP PULLING REPLICATION LOG
Останавливает загрузку новых записей из журнала репликации в очередь репликации таблицы ReplicatedMergeTree.
SYSTEM START PULLING REPLICATION LOG
Отменяет действие SYSTEM STOP PULLING REPLICATION LOG.
SYSTEM SYNC REPLICA
Ожидает синхронизации таблицы ReplicatedMergeTree с другими репликами в кластере, но не более receive_timeout секунд.
После выполнения этого оператора таблица [db.]replicated_merge_tree_family_table_name загружает команды из общего журнала репликации в свою очередь репликации, после чего запрос ожидает, пока реплика обработает все загруженные команды. Поддерживаются следующие модификаторы:
- С
IF EXISTS(доступно с версии 25.6) запрос не вызовет ошибку, если таблица не существует. Это полезно при добавлении новой реплики в кластер, когда она уже является частью конфигурации кластера, но всё ещё находится в процессе создания и синхронизации таблицы. - Если указан модификатор
STRICT, запрос ожидает, пока очередь репликации не станет пустой. ВерсияSTRICTможет никогда не завершиться успешно, если в очереди репликации постоянно появляются новые записи. - Если указан модификатор
LIGHTWEIGHT, запрос ожидает обработки только записейGET_PART,ATTACH_PART,DROP_RANGE,REPLACE_RANGEиDROP_PART. Кроме того, модификатор LIGHTWEIGHT поддерживает необязательное предложение FROM 'srcReplicas', где 'srcReplicas' — это список имён исходных реплик, разделённых запятыми. Это расширение позволяет выполнять более целенаправленную синхронизацию, фокусируясь только на задачах репликации, поступающих от указанных исходных реплик. - Если указан модификатор
PULL, запрос извлекает новые записи очереди репликации из ZooKeeper, но не ожидает их обработки.
SYNC DATABASE REPLICA
Ожидает, пока указанная реплицируемая база данных применит все изменения схемы из очереди DDL этой базы данных.
Синтаксис
SYSTEM RESTART REPLICA
Предоставляет возможность повторно инициализировать состояние сессии Zookeeper для таблицы ReplicatedMergeTree, сравнивает текущее состояние с Zookeeper как источником истины и добавляет задачи в очередь Zookeeper при необходимости.
Инициализация очереди репликации на основе данных ZooKeeper происходит так же, как и для оператора ATTACH TABLE. На короткое время таблица будет недоступна для любых операций.
SYSTEM RESTORE REPLICA
Восстанавливает реплику, если данные [возможно] присутствуют, но метаданные Zookeeper утеряны.
Работает только с таблицами ReplicatedMergeTree, доступными только для чтения.
Запрос можно выполнить после:
- Потери корня ZooKeeper
/. - Потери пути реплик
/replicas. - Потери пути отдельной реплики
/replicas/replica_name/.
Реплика присоединяет локально найденные части и отправляет информацию о них в Zookeeper. Части, присутствующие на реплике до потери метаданных, не загружаются повторно с других реплик, если они не устарели (таким образом, восстановление реплики не означает повторную загрузку всех данных по сети).
Части во всех состояниях перемещаются в папку detached/. Части, активные до потери данных (зафиксированные), присоединяются.
SYSTEM RESTORE DATABASE REPLICA
Восстанавливает реплику, если данные [возможно] присутствуют, но метаданные Zookeeper утеряны.
Синтаксис
Пример
Синтаксис
Альтернативный синтаксис:
Пример
Создание таблицы на нескольких серверах. После потери метаданных реплики в ZooKeeper таблица будет присоединена в режиме только для чтения, так как метаданные отсутствуют. Последний запрос необходимо выполнить на каждой реплике.
Другой способ:
SYSTEM RESTART REPLICAS
Предоставляет возможность повторно инициализировать состояние сессий Zookeeper для всех таблиц ReplicatedMergeTree, сравнивает текущее состояние с Zookeeper как источником истины и добавляет задачи в очередь Zookeeper при необходимости
SYSTEM DROP FILESYSTEM CACHE
Позволяет очистить кеш файловой системы.
SYSTEM SYNC FILE CACHE
Эта операция ресурсоёмкая и может быть использована некорректно.
Выполняет системный вызов sync.
SYSTEM LOAD PRIMARY KEY
Загружает первичные ключи для указанной таблицы или для всех таблиц.
SYSTEM UNLOAD PRIMARY KEY
Выгружает первичные ключи для указанной таблицы или для всех таблиц.
Управление обновляемыми материализованными представлениями
Команды для управления фоновыми задачами, выполняемыми обновляемыми материализованными представлениями
При использовании отслеживайте состояние в таблице system.view_refreshes.
SYSTEM REFRESH VIEW
Запускает немедленное внеплановое обновление указанного представления.
SYSTEM WAIT VIEW
Ожидает завершения текущего обновления. Если обновление завершается с ошибкой, генерирует исключение. Если обновление не выполняется, завершается немедленно, генерируя исключение, если предыдущее обновление завершилось с ошибкой.
SYSTEM STOP [REPLICATED] VIEW, STOP VIEWS
Отключает периодическое обновление указанного представления или всех обновляемых представлений. Если обновление выполняется, также отменяет его.
Если представление находится в реплицируемой (Replicated) или общей (Shared) базе данных, STOP VIEW влияет только на текущую реплику, тогда как STOP REPLICATED VIEW влияет на все реплики.
SYSTEM START [REPLICATED] VIEW, START VIEWS
Включает периодическое обновление для указанного представления или всех обновляемых представлений. Немедленное обновление не запускается.
Если представление находится в реплицируемой (Replicated) или общей (Shared) базе данных, START VIEW отменяет действие STOP VIEW, а START REPLICATED VIEW отменяет действие STOP REPLICATED VIEW.
SYSTEM CANCEL VIEW
Если для указанного представления на текущей реплике выполняется обновление, прерывает и отменяет его. В противном случае ничего не делает.
SYSTEM WAIT VIEW
Ожидает завершения выполняющегося обновления. Если обновление не выполняется, возвращает управление немедленно. Если последняя попытка обновления завершилась с ошибкой, сообщает об ошибке.
Может использоваться сразу после создания нового обновляемого материализованного представления (без ключевого слова EMPTY) для ожидания завершения начального обновления.
Если представление находится в реплицируемой (Replicated) или общей (Shared) базе данных и обновление выполняется на другой реплике, ожидает завершения этого обновления.