Операторы SYSTEM
SYSTEM RELOAD EMBEDDED DICTIONARIES
Перезагружает все внутренние словари.
По умолчанию внутренние словари отключены.
Всегда возвращает Ok. независимо от результата обновления внутреннего словаря.
SYSTEM RELOAD DICTIONARIES
Запрос SYSTEM RELOAD DICTIONARIES перезагружает словари со статусом LOADED (см. столбец status в system.dictionaries), то есть словари, которые ранее были успешно загружены.
По умолчанию словари загружаются по требованию (см. dictionaries_lazy_load), поэтому вместо автоматической загрузки при запуске они инициализируются при первом обращении через функцию dictGet или при выполнении SELECT из таблиц с ENGINE = Dictionary.
Синтаксис
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
Очищает кеш несжатых данных.
Кеш несжатых данных включается или отключается с помощью настройки на уровне запроса/USER/профиля use_uncompressed_cache.
Его размер можно настроить с помощью серверной настройки uncompressed_cache_size.
SYSTEM DROP COMPILED EXPRESSION CACHE
Очищает кеш скомпилированных выражений.
Кеш скомпилированных выражений включается и отключается с помощью настройки compile_expressions на уровне запроса, USER или профиля.
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; он перезагружает только конфигурацию пользователей (USER), которая хранится в users.xml. Чтобы перезагрузить всю конфигурацию пользователей (USER), используйте SYSTEM RELOAD USERS.
SYSTEM RELOAD USERS
Перезагружает все хранилища управления доступом, включая users.xml, локальное дисковое хранилище управления доступом и реплицируемое хранилище управления доступом (в Zookeeper).
ОСТАНОВКА СИСТЕМЫ
Стандартным образом останавливает ClickHouse (как service clickhouse-server stop / kill {$pid_clickhouse-server})
SYSTEM KILL
Принудительно завершает процесс ClickHouse (например, как kill -9 {$ pid_clickhouse-server})
SYSTEM INSTRUMENT
Управляет точками инструментирования с помощью функции XRay в LLVM, доступной, когда ClickHouse собран с параметром ENABLE_XRAY=1.
Это позволяет выполнять отладку и профилирование в продакшене без изменения исходного кода и с минимальными накладными расходами.
Когда не добавлено ни одной точки инструментирования, штраф по производительности пренебрежимо мал, поскольку добавляется лишь один дополнительный переход
на близкий адрес в прологе и эпилоге тех функций, которые содержат более 200 инструкций.
SYSTEM INSTRUMENT ADD
Добавляет новую точку инструментирования. Инструментированные функции можно просмотреть в системной таблице system.instrumentation. Для одной и той же функции можно добавить более одного обработчика, и они будут выполняться в том же порядке, в котором было добавлено инструментирование.
Функции для инструментирования можно получить из системной таблицы system.symbols.
Существует три разных типа обработчиков, которые можно добавить к функциям:
Синтаксис
где FUNCTION — любая функция или подстрока имени функции, например QueryMetricLog::startQuery, а обработчик — один из следующих вариантов
LOG
Выводит переданный в качестве аргумента текст и стек вызовов при входе (ENTRY) или выходе (EXIT) из функции.
SLEEP
Приостанавливает выполнение на фиксированное число секунд при ENTRY или EXIT:
или для равномерно распределённого случайного интервала в секундах, задав минимум и максимум, разделённые пробелом:
PROFILE
Измеряет время, проходящее между ENTRY и EXIT функции.
Результат профилирования сохраняется в таблице system.trace_log.
SYSTEM INSTRUMENT REMOVE
Удаляет одну точку инструментирования командой:
все они с параметром ALL:
или набор идентификаторов из подзапроса:
Идентификатор точки инструментирования можно получить из системной таблицы system.instrumentation.
Управление distributed таблицами
ClickHouse может управлять distributed таблицами. Когда пользователь вставляет данные в такие таблицы, ClickHouse сначала создает очередь данных, которые должны быть отправлены на узлы кластера, после чего асинхронно отправляет их. Вы можете управлять обработкой очереди с помощью запросов STOP DISTRIBUTED SENDS, FLUSH DISTRIBUTED и START DISTRIBUTED SENDS. Также вы можете синхронно вставлять распределённые данные с помощью настройки distributed_foreground_insert.
SYSTEM STOP DISTRIBUTED SENDS
Отключает фоновое распределение данных при вставке данных в distributed таблицы.
Если параметр prefer_localhost_replica включён (по умолчанию), данные всё равно будут вставляться в локальный сегмент.
SYSTEM FLUSH DISTRIBUTED
Выполняет принудительную синхронную отправку данных с ClickHouse на узлы кластера. Если какие-либо узлы недоступны, ClickHouse генерирует исключение и останавливает выполнение запроса. Вы можете повторно выполнять запрос до тех пор, пока он не завершится успешно, что произойдёт, когда все узлы снова станут доступными.
Вы также можете переопределить некоторые настройки с помощью предложения SETTINGS — это может быть полезно для обхода временных ограничений, таких как max_concurrent_queries_for_all_users или max_memory_usage.
Каждый ожидающий блок хранится на диске с настройками из исходного оператора INSERT, поэтому иногда имеет смысл переопределить эти настройки.
SYSTEM START DISTRIBUTED SENDS
Включает фоновое распределение при вставке данных в distributed таблицы.
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 в режиме только для чтения (readonly).
Команду можно выполнить после:
- Потери корня Zookeeper
/. - Потери пути реплик
/replicas. - Потери пути отдельной реплики
/replicas/replica_name/.
Реплика присоединяет локально найденные части и отправляет информацию о них в Zookeeper. Части, присутствующие на реплике до потери метаданных, не запрашиваются заново с других реплик, если они не устарели (поэтому восстановление реплики не означает повторную загрузку всех данных по сети).
Части во всех состояниях перемещаются в папку detached/. Части, активные до потери данных (committed), присоединяются.
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
Выгружает первичные ключи для указанной таблицы или для всех таблиц.
Управление refreshable materialized views
Команды для управления фоновыми задачами, выполняемыми refreshable materialized views.
При использовании отслеживайте состояние в таблице 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
Ожидает завершения выполняющегося обновления. Если обновление не выполняется, возвращает управление немедленно. Если последняя попытка обновления завершилась с ошибкой, сообщает об ошибке.
Может использоваться сразу после создания новой refreshable materialized view (без ключевого слова EMPTY), чтобы дождаться завершения начального обновления.
Если view находится в базе данных Replicated или Shared, и обновление выполняется на другой реплике, ожидает завершения этого обновления.