Операторы 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 CACHES
Очищает кеш заголовков текстового индекса, кеш словаря и кеш постингов.
Если вы хотите очистить один из этих кешей по отдельности, выполните:
SYSTEM DROP TEXT INDEX HEADER CACHE,SYSTEM DROP TEXT INDEX DICTIONARY CACHEилиSYSTEM DROP TEXT INDEX POSTINGS CACHE
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) хранилище доступа.
SYSTEM SHUTDOWN
Обычно завершает работу сервера 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 и могут быть преобразованы
в Chrome Event Trace Format.
SYSTEM INSTRUMENT REMOVE
Удаляет одну точку инструментирования с помощью:
для удаления всех используйте параметр ALL:
набор идентификаторов из подзапроса:
или все точки инструментирования, соответствующие заданному параметру function_name:
Информацию о точке инструментирования можно получить из системной таблицы system.instrumentation.
Управление distributed таблицами
ClickHouse может работать с distributed таблицами. При вставке данных в такие таблицы ClickHouse сначала создаёт очередь данных для отправки на узлы кластера, а затем асинхронно отправляет их. Вы можете управлять обработкой очереди с помощью запросов STOP DISTRIBUTED SENDS, FLUSH DISTRIBUTED и START DISTRIBUTED SENDS. Вы также можете выполнять синхронную вставку данных в distributed таблицы с помощью настройки 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
Предоставляет возможность запустить фоновые операции FETCH для вставленных частей в таблицах семейства 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 влияет на все реплики.
Остановленное состояние не сохраняется после перезапуска сервера. После перезапуска представления возобновят выполнение настроенных расписаний обновления.
В базах данных Replicated или Shared SYSTEM STOP VIEW влияет только на текущую реплику. Используйте SYSTEM 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), чтобы дождаться завершения начального обновления.
Если представление находится в базе данных Replicated или Shared и обновление выполняется на другой реплике, ожидает завершения этого обновления.