25 KiB
slug | sidebar_position | sidebar_label |
---|---|---|
/ru/sql-reference/statements/system | 36 | SYSTEM |
Запросы SYSTEM
- RELOAD EMBEDDED DICTIONARIES
- RELOAD DICTIONARIES
- RELOAD DICTIONARY
- RELOAD MODELS
- RELOAD MODEL
- RELOAD FUNCTIONS
- RELOAD FUNCTION
- DROP DNS CACHE
- DROP MARK CACHE
- DROP UNCOMPRESSED CACHE
- DROP COMPILED EXPRESSION CACHE
- DROP REPLICA
- FLUSH LOGS
- RELOAD CONFIG
- SHUTDOWN
- KILL
- STOP DISTRIBUTED SENDS
- FLUSH DISTRIBUTED
- START DISTRIBUTED SENDS
- STOP MERGES
- START MERGES
- STOP TTL MERGES
- START TTL MERGES
- STOP MOVES
- START MOVES
- SYSTEM UNFREEZE
- STOP FETCHES
- START FETCHES
- STOP REPLICATED SENDS
- START REPLICATED SENDS
- STOP REPLICATION QUEUES
- START REPLICATION QUEUES
- SYNC REPLICA
- RESTART REPLICA
- RESTORE REPLICA
- RESTART REPLICAS
RELOAD EMBEDDED DICTIONARIES]
Перегружает все Встроенные словари.
По умолчанию встроенные словари выключены.
Всегда возвращает Ok.
, вне зависимости от результата обновления встроенных словарей.
RELOAD DICTIONARIES
Перегружает все словари, которые были успешно загружены до этого.
По умолчанию включена ленивая загрузка dictionaries_lazy_load, поэтому словари не загружаются автоматически при старте, а только при первом обращении через dictGet или SELECT к ENGINE=Dictionary. После этого такие словари (LOADED) будут перегружаться командой system reload dictionaries
.
Всегда возвращает Ok.
, вне зависимости от результата обновления словарей.
RELOAD DICTIONARY Dictionary_name
Полностью перегружает словарь dictionary_name
, вне зависимости от состояния словаря (LOADED/NOT_LOADED/FAILED).
Всегда возвращает Ok.
, вне зависимости от результата обновления словаря.
Состояние словаря можно проверить запросом к system.dictionaries
.
SELECT name, status FROM system.dictionaries;
RELOAD MODELS
Перегружает все модели CatBoost, если их конфигурация была обновлена, без перезагрузки сервера.
Синтаксис
SYSTEM RELOAD MODELS
RELOAD MODEL
Полностью перегружает модель CatBoost model_name
, если ее конфигурация была обновлена, без перезагрузки сервера.
Синтаксис
SYSTEM RELOAD MODEL <model_name>
RELOAD FUNCTIONS
Перезагружает все зарегистрированные исполняемые пользовательские функции или одну из них из файла конфигурации.
Синтаксис
RELOAD FUNCTIONS
RELOAD FUNCTION function_name
DROP DNS CACHE
Сбрасывает внутренний DNS кеш ClickHouse. Иногда (для старых версий ClickHouse) необходимо использовать эту команду при изменении инфраструктуры (смене IP адреса у другого ClickHouse сервера или сервера, используемого словарями).
Для более удобного (автоматического) управления кешем см. параметры disable_internal_dns_cache, dns_cache_update_period.
DROP MARK CACHE
Сбрасывает кеш «засечек» (mark cache
). Используется при разработке ClickHouse и тестах производительности.
DROP REPLICA
Мертвые реплики можно удалить, используя следующий синтаксис:
SYSTEM DROP REPLICA 'replica_name' FROM TABLE database.table;
SYSTEM DROP REPLICA 'replica_name' FROM DATABASE database;
SYSTEM DROP REPLICA 'replica_name';
SYSTEM DROP REPLICA 'replica_name' FROM ZKPATH '/path/to/table/in/zk';
Удаляет путь реплики из ZooKeeper-а. Это полезно, когда реплика мертва и ее метаданные не могут быть удалены из ZooKeeper с помощью DROP TABLE
, потому что такой таблицы больше нет. DROP REPLICA
может удалить только неактивную / устаревшую реплику и не может удалить локальную реплику, используйте для этого DROP TABLE
. DROP REPLICA
не удаляет таблицы и не удаляет данные или метаданные с диска.
Первая команда удаляет метаданные реплики 'replica_name'
для таблицы database.table
.
Вторая команда удаляет метаданные реплики 'replica_name'
для всех таблиц базы данных database
.
Третья команда удаляет метаданные реплики 'replica_name'
для всех таблиц, существующих на локальном сервере (список таблиц генерируется из локальной реплики).
Четверая команда полезна для удаления метаданных мертвой реплики когда все другие реплики таблицы уже были удалены ранее, поэтому необходимо явно указать ZooKeeper путь таблицы. ZooKeeper путь это первый аргумент для ReplicatedMergeTree
движка при создании таблицы.
DROP UNCOMPRESSED CACHE
Сбрасывает кеш не сжатых данных. Используется при разработке ClickHouse и тестах производительности. Для управления кешем не сжатых данных используйте следующие настройки уровня сервера uncompressed_cache_size и настройки уровня запрос/пользователь/профиль use_uncompressed_cache
DROP COMPILED EXPRESSION CACHE
Сбрасывает кеш скомпилированных выражений. Используется при разработке ClickHouse и тестах производительности. Cкомпилированные выражения используются когда включена настройка уровня запрос/пользователь/профиль compile-expressions
FLUSH LOGS
Записывает буферы логов в системные таблицы (например system.query_log). Позволяет не ждать 7.5 секунд при отладке. Если буфер логов пустой, то этот запрос просто создаст системные таблицы.
RELOAD CONFIG
Перечитывает конфигурацию настроек ClickHouse. Используется при хранении конфигурации в zookeeper.
SHUTDOWN
Штатно завершает работу ClickHouse (аналог service clickhouse-server stop
/ kill {$pid_clickhouse-server}
)
KILL
Аварийно завершает работу ClickHouse (аналог kill -9 {$pid_clickhouse-server}
)
Управление распределёнными таблицами
ClickHouse может оперировать распределёнными таблицами. Когда пользователь вставляет данные в эти таблицы, ClickHouse сначала формирует очередь из данных, которые должны быть отправлены на узлы кластера, а затем асинхронно отправляет подготовленные данные. Вы можете управлять очередью с помощью запросов STOP DISTRIBUTED SENDS, START DISTRIBUTED SENDS и FLUSH DISTRIBUTED. Также есть возможность синхронно вставлять распределенные данные с помощью настройки insert_distributed_sync.
STOP DISTRIBUTED SENDS
Отключает фоновую отправку при вставке данных в распределённые таблицы.
SYSTEM STOP DISTRIBUTED SENDS [db.]<distributed_table_name>
FLUSH DISTRIBUTED
В синхронном режиме отправляет все данные на узлы кластера. Если какие-либо узлы недоступны, ClickHouse генерирует исключение и останавливает выполнение запроса. Такой запрос можно повторять до успешного завершения, что будет означать возвращение связанности с остальными узлами кластера.
SYSTEM FLUSH DISTRIBUTED [db.]<distributed_table_name>
START DISTRIBUTED SENDS
Включает фоновую отправку при вставке данных в распределенные таблицы.
SYSTEM START DISTRIBUTED SENDS [db.]<distributed_table_name>
Managing MergeTree Tables
ClickHouse может управлять фоновыми процессами в MergeTree таблицах.
STOP MERGES
Позволяет остановить фоновые мержи для таблиц семейства MergeTree:
SYSTEM STOP MERGES [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]
:::note
`DETACH / ATTACH` таблицы восстанавливает фоновые мержи для этой таблицы (даже в случае отключения фоновых мержей для всех таблиц семейства MergeTree до `DETACH`).
:::
START MERGES
Включает фоновые мержи для таблиц семейства MergeTree:
SYSTEM START MERGES [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]
STOP TTL MERGES
Позволяет остановить фоновые процессы удаления старых данных основанные на выражениях TTL для таблиц семейства MergeTree:
Возвращает Ok.
даже если указана несуществующая таблица или таблица имеет тип отличный от MergeTree. Возвращает ошибку если указана не существующая база данных:
SYSTEM STOP TTL MERGES [[db.]merge_tree_family_table_name]
START TTL MERGES
Запускает фоновые процессы удаления старых данных основанные на выражениях TTL для таблиц семейства MergeTree:
Возвращает Ok.
даже если указана несуществующая таблица или таблица имеет тип отличный от MergeTree. Возвращает ошибку если указана не существующая база данных:
SYSTEM START TTL MERGES [[db.]merge_tree_family_table_name]
STOP MOVES
Позволяет остановить фоновые процессы переноса данных основанные табличных выражениях TTL с использованием TO VOLUME или TO DISK for tables in the MergeTree family:
Возвращает Ok.
даже если указана несуществующая таблица или таблица имеет тип отличный от MergeTree. Возвращает ошибку если указана не существующая база данных:
SYSTEM STOP MOVES [[db.]merge_tree_family_table_name]
START MOVES
Запускает фоновые процессы переноса данных основанные табличных выражениях TTL с использованием TO VOLUME или TO DISK for tables in the MergeTree family:
Возвращает Ok.
даже если указана несуществующая таблица или таблица имеет тип отличный от MergeTree. Возвращает ошибку если указана не существующая база данных:
SYSTEM START MOVES [[db.]merge_tree_family_table_name]
SYSTEM UNFREEZE
Удаляет с диска все "замороженные" партиции данного бэкапа. Про удаление партиций по отдельности смотрите запрос ALTER TABLE table_name UNFREEZE WITH NAME
SYSTEM UNFREEZE WITH NAME <backup_name>
Managing ReplicatedMergeTree Tables
ClickHouse может управлять фоновыми процессами связанными c репликацией в таблицах семейства ReplicatedMergeTree.
STOP FETCHES
Позволяет остановить фоновые процессы синхронизации новыми вставленными кусками данных с другими репликами в кластере для таблиц семейства ReplicatedMergeTree
:
Всегда возвращает Ok.
вне зависимости от типа таблицы и даже если таблица или база данных не существет.
SYSTEM STOP FETCHES [[db.]replicated_merge_tree_family_table_name]
START FETCHES
Позволяет запустить фоновые процессы синхронизации новыми вставленными кусками данных с другими репликами в кластере для таблиц семейства ReplicatedMergeTree
:
Всегда возвращает Ok.
вне зависимости от типа таблицы и даже если таблица или база данных не существет.
SYSTEM START FETCHES [[db.]replicated_merge_tree_family_table_name]
STOP REPLICATED SENDS
Позволяет остановить фоновые процессы отсылки новых вставленных кусков данных другим репликам в кластере для таблиц семейства ReplicatedMergeTree
:
SYSTEM STOP REPLICATED SENDS [[db.]replicated_merge_tree_family_table_name]
START REPLICATED SENDS
Позволяет запустить фоновые процессы отсылки новых вставленных кусков данных другим репликам в кластере для таблиц семейства ReplicatedMergeTree
:
SYSTEM START REPLICATED SENDS [[db.]replicated_merge_tree_family_table_name]
STOP REPLICATION QUEUES
Останавливает фоновые процессы разбора заданий из очереди репликации которая хранится в Zookeeper для таблиц семейства ReplicatedMergeTree
. Возможные типы заданий - merges, fetches, mutation, DDL запросы с ON CLUSTER:
SYSTEM STOP REPLICATION QUEUES [[db.]replicated_merge_tree_family_table_name]
START REPLICATION QUEUES
Запускает фоновые процессы разбора заданий из очереди репликации которая хранится в Zookeeper для таблиц семейства ReplicatedMergeTree
. Возможные типы заданий - merges, fetches, mutation, DDL запросы с ON CLUSTER:
SYSTEM START REPLICATION QUEUES [[db.]replicated_merge_tree_family_table_name]
SYNC REPLICA
Ждет когда таблица семейства ReplicatedMergeTree
будет синхронизирована с другими репликами в кластере, будет работать до достижения receive_timeout
, если синхронизация для таблицы отключена в настоящий момент времени:
SYSTEM SYNC REPLICA [db.]replicated_merge_tree_family_table_name
После выполнения этого запроса таблица [db.]replicated_merge_tree_family_table_name
синхронизирует команды из общего реплицированного лога в свою собственную очередь репликации. Затем запрос ждет, пока реплика не обработает все синхронизированные команды.
RESTART REPLICA
Реинициализирует состояние сессий Zookeeper для таблицы семейства ReplicatedMergeTree
. Сравнивает текущее состояние с состоянием в Zookeeper (как с эталоном) и при необходимости добавляет задачи в очередь репликации в Zookeeper.
Инициализация очереди репликации на основе данных ZooKeeper происходит так же, как при ATTACH TABLE
. Некоторое время таблица будет недоступна для любых операций.
SYSTEM RESTART REPLICA [db.]replicated_merge_tree_family_table_name
RESTORE REPLICA
Восстанавливает реплику, если метаданные в Zookeeper потеряны, но сами данные возможно существуют.
Работает только с таблицами семейства ReplicatedMergeTree
и только если таблица находится в readonly-режиме.
Запрос можно выполнить если:
- потерян корневой путь ZooKeeper
/
; - потерян путь реплик
/replicas
; - потерян путь конкретной реплики
/replicas/replica_name/
.
К реплике прикрепляются локально найденные куски, информация о них отправляется в Zookeeper. Если присутствующие в реплике до потери метаданных данные не устарели, они не скачиваются повторно с других реплик. Поэтому восстановление реплики не означает повторную загрузку всех данных по сети.
:::danger "Предупреждение"
Потерянные данные в любых состояниях перемещаются в папку detached/
. Куски, активные до потери данных (находившиеся в состоянии Committed), прикрепляются.
Синтаксис
SYSTEM RESTORE REPLICA [db.]replicated_merge_tree_family_table_name [ON CLUSTER cluster_name]
Альтернативный синтаксис:
SYSTEM RESTORE REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name
Пример
Создание таблицы на нескольких серверах. После потери корневого пути реплики таблица будет прикреплена только для чтения, так как метаданные отсутствуют. Последний запрос необходимо выполнить на каждой реплике.
CREATE TABLE test(n UInt32)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/', '{replica}')
ORDER BY n PARTITION BY n % 10;
INSERT INTO test SELECT * FROM numbers(1000);
-- zookeeper_delete_path("/clickhouse/tables/test", recursive=True) <- root loss.
SYSTEM RESTART REPLICA test;
SYSTEM RESTORE REPLICA test;
Альтернативный способ:
SYSTEM RESTORE REPLICA test ON CLUSTER cluster;
RESTART REPLICAS
Реинициализация состояния ZooKeeper-сессий для всех ReplicatedMergeTree
таблиц. Сравнивает текущее состояние реплики с тем, что хранится в ZooKeeper, как c источником правды, и добавляет задачи в очередь репликации в ZooKeeper, если необходимо.