SYSTEM RELOAD EMBEDDED DICTIONARIES
Перезагружает все встроенные словари.
По умолчанию встроенные словари отключены.
Всегда возвращает Ok. независимо от результата обновления встроенных словарей.
SYSTEM RELOAD DICTIONARIES
Запрос SYSTEM RELOAD DICTIONARIES перезагружает словари со status LOADED (см. столбец status в system.dictionaries), то есть словари, которые ранее уже были успешно загружены.
По умолчанию словари загружаются лениво (см. dictionaries_lazy_load), поэтому вместо автоматической загрузки при запуске они инициализируются при первом обращении — через функцию dictGet или при выполнении SELECT из таблиц с ENGINE = Dictionary.
Синтаксис
SYSTEM RELOAD DICTIONARIES [ON CLUSTER cluster_name]SYSTEM RELOAD DICTIONARY
Полностью перезагружает словарь dictionary_name независимо от его состояния (LOADED / NOT_LOADED / FAILED).
Всегда возвращает Ok. независимо от результата обновления словаря.
SYSTEM RELOAD DICTIONARY [ON CLUSTER cluster_name] dictionary_nameСтатус словаря можно проверить, выполнив запрос к таблице system.dictionaries.
SELECT name, status FROM system.dictionaries;SYSTEM UNLOAD DICTIONARY
Выгружает словарь dictionary_name, чтобы освободить занимаемую им память, если статус словаря — LOADED.
При следующем обращении словарь при необходимости снова загружается отложенно.
SYSTEM UNLOAD DICTIONARY dictionary_nameСтатус словаря можно проверить, выполнив запрос к таблице system.dictionaries.
SELECT name, status FROM system.dictionaries;SYSTEM UNLOAD DICTIONARIES
Запрос SYSTEM UNLOAD DICTIONARIES выгружает из памяти все словари со статусом LOADED (см. столбец status в system.dictionaries), то есть словари, которые ранее были успешно загружены.
SYSTEM UNLOAD DICTIONARIESSYSTEM RELOAD MODELS
Выгружает все модели CatBoost.
Синтаксис
SYSTEM RELOAD MODELS [ON CLUSTER cluster_name]SYSTEM RELOAD MODEL
Выгружает модель CatBoost из model_path.
Синтаксис
SYSTEM RELOAD MODEL [ON CLUSTER cluster_name] <model_path>SYSTEM RELOAD FUNCTIONS
Перезагружает все зарегистрированные исполняемые пользовательские функции или одну из них из файла конфигурации.
Синтаксис
SYSTEM RELOAD FUNCTIONS [ON CLUSTER cluster_name]
SYSTEM RELOAD FUNCTION [ON CLUSTER cluster_name] function_nameSYSTEM RELOAD ASYNCHRONOUS METRICS
Пересчитывает все асинхронные метрики. Поскольку асинхронные метрики периодически обновляются в соответствии с настройкой asynchronous_metrics_update_period_s, вручную обновлять их с помощью этого оператора обычно не нужно.
SYSTEM RELOAD ASYNCHRONOUS METRICS [ON CLUSTER cluster_name]SYSTEM CLEAR|DROP DNS CACHE
Очищает внутренний DNS-кеш ClickHouse. Иногда (в старых версиях ClickHouse) эту команду необходимо использовать при изменении инфраструктуры (например, при смене IP-адреса другого сервера ClickHouse или сервера, используемого словарями).
Для более удобного (автоматического) управления кешем см. параметры disable_internal_dns_cache, dns_cache_max_entries, dns_cache_update_period.
SYSTEM CLEAR|DROP MARK CACHE
Очищает кэш меток.
SYSTEM CLEAR|DROP PRIMARY INDEX CACHE
Очищает кэш первичного индекса, в котором в памяти хранятся первичные ключи таблиц MergeTree.
Его размер задаётся настройкой уровня сервера primary_index_cache_size.
SYSTEM CLEAR|DROP ICEBERG METADATA CACHE
Очищает кэш метаданных Iceberg.
SYSTEM CLEAR|DROP AVRO SCHEMA CACHE
Очищает кэши Confluent Schema Registry для каждого URL, используемые форматом AvroConfluent. Эта команда удаляет как кэш получения схем (id → схема), так и кэш регистрации схем (subject + схема → id), поэтому последующие операции чтения и записи снова будут обращаться к серверу Schema Registry. Полезно, если схема была удалена или перезаписана на стороне реестра, а также для проверки идемпотентности реестра в тестах.
SYSTEM DROP PARQUET METADATA CACHE
Очищает кэш метаданных Parquet.
SYSTEM CLEAR|DROP PAIMON METADATA CACHE
Очищает хранящийся в памяти кэш разобранных файлов метаданных Paimon (manifest lists и manifests).
SYSTEM CLEAR|DROP POINT IN POLYGON CACHE
Очищает кэш предварительно обработанных константных полигонов, используемых функцией pointInPolygon. Настроенное ограничение размера (настройка сервера point_in_polygon_cache_size) остаётся без изменений, поэтому после этого кэш продолжает принимать новые записи. Чтобы отключить кэш, установите point_in_polygon_cache_size в 0.
SYSTEM CLEAR|DROP TEXT INDEX CACHES
Очищает кэши токенов, заголовка и списков вхождений текстового индекса.
Если вы хотите очистить один из этих кэшей отдельно, можно выполнить
SYSTEM CLEAR TEXT INDEX TOKENS CACHE,SYSTEM CLEAR TEXT INDEX HEADER CACHEилиSYSTEM CLEAR TEXT INDEX POSTINGS CACHE
SYSTEM CLEAR|DROP INDEX MARK CACHE
Очищает кэш меток вторичных индексов пропуска данных.
SYSTEM CLEAR|DROP INDEX UNCOMPRESSED CACHE
Очищает кэш несжатых блоков для вторичных индексов пропуска данных.
SYSTEM CLEAR|DROP MMAP CACHE
Очищает кэш файлов, отображаемых в память.
SYSTEM CLEAR|DROP PAGE CACHE
Очищает кэш страниц в пространстве пользователя — собственный кэш данных ClickHouse в памяти, где хранятся данные, считанные из нижележащего хранилища.
SYSTEM CLEAR|DROP VECTOR SIMILARITY INDEX CACHE
Очищает кэш индекса векторного сходства.
SYSTEM CLEAR|DROP CONNECTIONS CACHE
Очищает кэш пулов HTTP-соединений для исходящих подключений.
SYSTEM CLEAR|DROP S3 CLIENT CACHE
Очищает кэш S3-клиентов.
SYSTEM PREWARM MARK CACHE
Загружает метки таблицы в кэш меток. Метки вторичного индекса также загружаются в кэш меток вторичного индекса пропуска данных.
SYSTEM PREWARM MARK CACHE [ON CLUSTER cluster_name] [db.]tableSYSTEM PREWARM PRIMARY INDEX CACHE
Загружает первичные индексы таблицы MergeTree в кэш первичного индекса.
SYSTEM PREWARM PRIMARY INDEX CACHE [ON CLUSTER cluster_name] [db.]tableSYSTEM CLEAR|DROP DISK METADATA CACHE
Очищает кэш метаданных указанного диска.
SYSTEM DROP DISK METADATA CACHE <disk_name>SYSTEM SYNC FILESYSTEM CACHE
Синхронизирует хранящееся в памяти состояние файлового кэша ClickHouse с файлами кэша, фактически находящимися на диске, и возвращает cache_name, path и загруженный size каждого кэшированного сегмента файла. Необязательное имя кэша ограничивает операцию одним кэшем.
SYSTEM SYNC FILESYSTEM CACHE ['<cache_name>']SYSTEM CLEAR|DROP DISTRIBUTED CACHE
Удаляет распределённый кэш. Используйте CONNECTIONS, чтобы удалить только кэшированные соединения с серверами распределённого кэша, либо передайте идентификатор сервера, чтобы выбрать только один сервер.
SYSTEM DROP DISTRIBUTED CACHE [CONNECTIONS | 'server_id']SYSTEM DROP REPLICA
Недоступные реплики таблиц ReplicatedMergeTree можно удалить с помощью следующего синтаксиса:
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';Запросы удаляют путь реплики ReplicatedMergeTree в ZooKeeper. Это полезно, когда реплика недоступна, а ее метаданные невозможно удалить из ZooKeeper с помощью DROP TABLE, потому что такой таблицы уже не существует. Удалить можно только неактивную/устаревшую реплику; локальную реплику удалить нельзя, для этого используйте DROP TABLE. DROP REPLICA не удаляет никаких таблиц и не удаляет с диска ни данные, ни метаданные.
Первый удаляет метаданные реплики 'replica_name' таблицы database.table.
Второй делает то же самое для всех реплицируемых таблиц в базе данных.
Третий делает то же самое для всех реплицируемых таблиц на локальном сервере.
Четвертый полезен для удаления метаданных недоступной реплики, когда все остальные реплики таблицы были удалены. Для него нужно явно указать путь к таблице. Это должен быть тот же путь, который был передан в качестве первого аргумента движка ReplicatedMergeTree при создании таблицы.
SYSTEM DROP DATABASE REPLICA
Неработающие реплики баз данных Replicated можно удалить с помощью следующего синтаксиса:
SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'] FROM DATABASE database;
SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'];
SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'] FROM ZKPATH '/path/to/table/in/zk';Подобно 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 CLEAR|DROP UNCOMPRESSED CACHE
Очищает кэш несжатых данных.
Кэш несжатых данных включается и отключается с помощью настройки уровня запроса, пользователя или профиля use_uncompressed_cache.
Его размер можно задать с помощью настройки уровня сервера uncompressed_cache_size.
SYSTEM CLEAR|DROP COMPILED EXPRESSION CACHE
Очищает кэш скомпилированных выражений.
Кэш скомпилированных выражений включается и отключается с помощью настройки уровня запроса, пользователя или профиля compile_expressions.
SYSTEM CLEAR|DROP QUERY CONDITION CACHE
Очищает кэш условий запроса.
SYSTEM CLEAR|DROP ENCRYPTION HEADERS CACHE
Очищает кэш заголовков шифрования. В этом кэше хранятся заголовки шифрования, считываемые из начала зашифрованных файлов. Он используется экспериментальным путём чтения use_reader_executor, чтобы избежать их повторного чтения; его размер задаётся настройкой сервера encryption_header_cache_size.
SYSTEM CLEAR|DROP КЭШ ЗАПРОСОВ
SYSTEM CLEAR QUERY CACHE;
SYSTEM CLEAR QUERY CACHE TAG '<tag>'Очищает кэш запросов. Если указана метка, удаляются только записи кэша запросов с этой меткой.
SYSTEM CLEAR|DROP FORMAT SCHEMA CACHE
Очищает кэш для схем, загруженных из format_schema_path.
Поддерживаемые цели:
- Protobuf: удаляет импортированные определения сообщений Protobuf из памяти.
- Files: удаляет кэшированные файлы схем, хранящиеся локально в
format_schema_pathи создаваемые, когдаformat_schema_sourceимеет значениеquery. Примечание: если цель не указана, очищаются оба кэша.
SYSTEM CLEAR|DROP FORMAT SCHEMA CACHE [FOR Protobuf/Files]SYSTEM FLUSH LOGS
Сбрасывает буферизованные сообщение лога в системные таблицы, например system.query_log. В основном полезно для отладки, поскольку для большинства системных таблиц интервал сброса по умолчанию составляет 7,5 секунды.
Также создаёт системные таблицы, даже если очередь сообщений пуста.
SYSTEM FLUSH LOGS [ON CLUSTER cluster_name] [log_name|[database.table]] [, ...]Если не нужно сбрасывать всё, можно сбросить один или несколько отдельных журналов, указав либо их имя, либо соответствующую целевую таблицу:
SYSTEM FLUSH LOGS query_log, system.query_views_log;SYSTEM RELOAD CONFIG
Перезагружает конфигурацию ClickHouse. Используется, когда конфигурация хранится в ZooKeeper. Обратите внимание, что SYSTEM RELOAD CONFIG не перезагружает конфигурацию USER, хранящуюся в ZooKeeper: эта команда перезагружает только конфигурацию USER, которая хранится в users.xml. Чтобы перезагрузить всю конфигурацию USER, используйте SYSTEM RELOAD USERS
SYSTEM RELOAD CONFIG [ON CLUSTER cluster_name]SYSTEM RELOAD USERS
Перезагружает все хранилища доступа, включая: users.xml, локальное дисковое хранилище доступа и реплицируемое (в ZooKeeper) хранилище доступа.
SYSTEM RELOAD USERS [ON CLUSTER cluster_name]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.
Существует три типа обработчиков, которые можно добавить к функциям:
Синтаксис
SYSTEM INSTRUMENT ADD FUNCTION HANDLER [ARGUMENTS]где FUNCTION — это любая функция или её подстрока, например QueryMetricLog::startQuery, а обработчик — один из следующих
LOG
Выводит текст, переданный в качестве аргумента, и трассировку стека при ENTRY или EXIT функции.
SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' LOG ENTRY 'this is a log printed at entry'
SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' LOG EXIT 'this is a log printed at exit'SLEEP
Приостанавливает выполнение на фиксированное количество секунд либо при ENTRY, либо при EXIT:
SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0.5или для случайного числа секунд с равномерным распределением, указав минимальное и максимальное значения через пробел:
SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0 1PROFILE
Измеряет время, затраченное между ENTRY и EXIT при выполнении функции.
Результат профилирования сохраняется в system.trace_log и может быть преобразован
в формат трассировки событий Chrome.
SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' PROFILESYSTEM INSTRUMENT REMOVE
Удаляет либо одну точку инструментирования с помощью:
SYSTEM INSTRUMENT REMOVE IDвсе их с помощью ключевого слова ALL:
SYSTEM INSTRUMENT REMOVE ALLнабор идентификаторов из подзапроса:
SYSTEM INSTRUMENT REMOVE (SELECT id FROM system.instrumentation WHERE handler = 'log')или все точки инструментирования, соответствующие указанному function_name:
SYSTEM INSTRUMENT REMOVE 'QueryMetricLog::startQuery'Информацию о точках инструментирования можно получить из системной таблицы system.instrumentation.
Управление distributed таблицами
ClickHouse может работать с distributed таблицами. Когда пользователь вставляет данные в эти таблицы, ClickHouse сначала создаёт очередь данных, которые должны быть отправлены на узлы кластера, а затем асинхронно отправляет их. Вы можете управлять обработкой очереди с помощью запросов STOP DISTRIBUTED SENDS, FLUSH DISTRIBUTED и START DISTRIBUTED SENDS. Вы также можете синхронно вставлять распределённые данные с помощью настройки distributed_foreground_insert.
SYSTEM STOP DISTRIBUTED SENDS
Отключает фоновое распределение данных при вставке в distributed-таблицы.
SYSTEM STOP DISTRIBUTED SENDS [db.]<distributed_table_name> [ON CLUSTER cluster_name]SYSTEM FLUSH DISTRIBUTED
Принудительно заставляет ClickHouse синхронно отправлять данные на узлы кластера. Если какие-либо узлы недоступны, ClickHouse генерирует исключение и останавливает выполнение запроса. Вы можете повторять запрос, пока он не завершится успешно; это произойдёт, когда все узлы снова будут в сети.
Вы также можете переопределить некоторые настройки с помощью предложения SETTINGS; это может быть полезно, чтобы обойти временные ограничения, например max_concurrent_queries_for_all_users или max_memory_usage.
SYSTEM FLUSH DISTRIBUTED [db.]<distributed_table_name> [ON CLUSTER cluster_name] [SETTINGS ...]SYSTEM START DISTRIBUTED SENDS
Включает фоновую отправку данных при вставке в distributed таблицы.
SYSTEM START DISTRIBUTED SENDS [db.]<distributed_table_name> [ON CLUSTER cluster_name]SYSTEM STOP LISTEN
Закрывает сокет и корректно завершает существующие соединения с сервером на указанном порту по указанному протоколу.
Однако, если соответствующие настройки протокола не были указаны в конфигурации clickhouse-server, эта команда не даст никакого эффекта.
SYSTEM STOP LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | QUERIES CUSTOM | TCP | TCP WITH PROXY | TCP SECURE | HTTP | HTTPS | MYSQL | GRPC | POSTGRESQL | PROMETHEUS | CUSTOM 'protocol']- Если указан модификатор
CUSTOM 'protocol', будет остановлен пользовательский протокол с указанным именем, определённый в разделеprotocolsконфигурации сервера. - Если указан модификатор
QUERIES ALL [EXCEPT .. [,..]], будут остановлены все протоколы, кроме указанных в предложенииEXCEPT. - Если указан модификатор
QUERIES DEFAULT [EXCEPT .. [,..]], будут остановлены все протоколы по умолчанию, кроме указанных в предложенииEXCEPT. - Если указан модификатор
QUERIES CUSTOM [EXCEPT .. [,..]], будут остановлены все пользовательские протоколы, кроме указанных в предложенииEXCEPT.
SYSTEM START LISTEN
Позволяет устанавливать новые соединения по указанным протоколам.
Однако если сервер на указанном порту и по указанному протоколу не был остановлен с помощью команды SYSTEM STOP LISTEN, эта команда не возымеет никакого эффекта.
SYSTEM START LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | QUERIES CUSTOM | TCP | TCP WITH PROXY | TCP SECURE | HTTP | HTTPS | MYSQL | GRPC | POSTGRESQL | PROMETHEUS | CUSTOM 'protocol']Управление таблицами MergeTree
ClickHouse позволяет управлять фоновыми процессами в таблицах MergeTree.
SYSTEM STOP MERGES
Позволяет остановить фоновые слияния для таблиц семейства MergeTree:
SYSTEM STOP MERGES [ON CLUSTER cluster_name] [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]SYSTEM START MERGES
Позволяет запускать фоновые слияния для таблиц семейства MergeTree:
SYSTEM START MERGES [ON CLUSTER cluster_name] [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]SYSTEM STOP TTL MERGES
Позволяет остановить фоновое удаление старых данных в соответствии с TTL expression для таблиц семейства MergeTree:
Возвращает Ok. даже если таблица не существует или не использует движок MergeTree. Возвращает ошибку, если база данных не существует:
SYSTEM STOP TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name]SYSTEM START TTL MERGES
Позволяет запустить фоновое удаление старых данных в соответствии с TTL expression для таблиц семейства MergeTree:
Возвращает Ok. даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM START TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name]SYSTEM STOP MOVES
Позволяет остановить фоновое перемещение данных в соответствии с TTL-выражением таблицы с клаузой TO VOLUME или TO DISK для таблиц семейства MergeTree:
Возвращает Ok., даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM STOP MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name]SYSTEM START MOVES
Позволяет запускать фоновое перемещение данных в соответствии с TTL-выражением таблицы с клаузами TO VOLUME и TO DISK для таблиц семейства MergeTree:
Возвращает Ok. даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM START MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name]SYSTEM UNFREEZE
Удаляет замороженную резервную копию с указанным именем со всех дисков. Подробнее о разморозке отдельных частей см. в ALTER TABLE table_name UNFREEZE WITH NAME
SYSTEM UNFREEZE WITH NAME <backup_name>SYSTEM WAIT LOADING PARTS
Ожидает завершения загрузки всех асинхронно загружаемых частей данных таблицы (устаревших частей данных).
SYSTEM WAIT LOADING PARTS [ON CLUSTER cluster_name] [db.]merge_tree_family_table_nameУправление таблицами ReplicatedMergeTree
ClickHouse может управлять фоновыми процессами, связанными с репликацией, в таблицах ReplicatedMergeTree.
SYSTEM STOP FETCHES
Позволяет остановить фоновую загрузку вставленных частей для таблиц семейства ReplicatedMergeTree:
Всегда возвращает Ok. независимо от движка таблицы, даже если таблица или база данных не существуют.
SYSTEM STOP FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]SYSTEM START FETCHES
Позволяет запускать фоновые загрузки вставленных частей для таблиц семейства ReplicatedMergeTree:
Всегда возвращает Ok. независимо от движка таблицы, даже если таблица или база данных не существуют.
SYSTEM START FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]SYSTEM STOP REPLICATED SENDS
Позволяет остановить фоновую отправку другим репликам в кластере новых частей, создаваемых при вставке данных, для таблиц семейства ReplicatedMergeTree:
SYSTEM STOP REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]SYSTEM START REPLICATED SENDS
Позволяет запустить фоновую отправку новых вставленных частей таблиц семейства ReplicatedMergeTree на другие реплики в кластере:
SYSTEM START REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]SYSTEM STOP REPLICATION QUEUES
Позволяет остановить фоновые задачи загрузки из очередей репликации, хранящихся в Zookeeper, для таблиц семейства ReplicatedMergeTree. Возможные типы фоновых задач: слияние, загрузка, мутация, DDL-операторы с предложением ON CLUSTER:
SYSTEM STOP REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]SYSTEM START REPLICATION QUEUES
Позволяет запускать фоновые задачи загрузки из очередей репликации, хранящихся в Zookeeper, для таблиц семейства ReplicatedMergeTree. Возможные типы фоновых задач — слияния, загрузки, мутации, DDL-операторы с предложением ON CLUSTER:
SYSTEM START REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]SYSTEM STOP PULLING REPLICATION LOG
Останавливает загрузку новых записей из журнала репликации в очередь репликации таблицы ReplicatedMergeTree.
SYSTEM STOP PULLING REPLICATION LOG [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]SYSTEM START PULLING REPLICATION LOG
Отменяет действие SYSTEM STOP PULLING REPLICATION LOG.
SYSTEM START PULLING REPLICATION LOG [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]SYSTEM SYNC REPLICA
Ожидать, пока таблица ReplicatedMergeTree синхронизируется с другими репликами в кластере, но не дольше receive_timeout секунд.
SYSTEM SYNC REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name [IF EXISTS] [STRICT | LIGHTWEIGHT [FROM 'srcReplica1'[, 'srcReplica2'[, ...]]] | PULL]После выполнения этого оператора [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
Ожидает, пока указанная база данных Replicated не применит все изменения схемы из очереди DDL этой базы данных.
Синтаксис
SYSTEM SYNC DATABASE REPLICA replicated_database_name;SYSTEM RESTART REPLICA
Позволяет повторно инициализировать состояние сеанса ZooKeeper для таблицы ReplicatedMergeTree: текущее состояние будет сверено с ZooKeeper как с источником истины, и при необходимости в очередь ZooKeeper будут добавлены задачи.
Инициализация очереди репликации на основе данных ZooKeeper выполняется так же, как и для оператора ATTACH TABLE. На короткое время таблица будет недоступна для выполнения любых операций.
SYSTEM RESTART REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_nameSYSTEM RESTORE REPLICA
Восстанавливает реплику, если данные [возможно] присутствуют, но метаданные ZooKeeper утеряны.
Работает только с таблицами ReplicatedMergeTree в режиме только для чтения.
Запрос можно выполнить после:
- Потери корневого пути ZooKeeper
/. - Потери пути реплик
/replicas. - Потери пути отдельной реплики
/replicas/replica_name/.
Реплика подключает найденные локально части и отправляет информацию о них в ZooKeeper. Части, присутствовавшие на реплике до потери метаданных, не загружаются повторно с других реплик, если они не устарели (то есть восстановление реплики не означает повторную загрузку всех данных по сети).
SYSTEM RESTORE DATABASE REPLICA
Восстанавливает реплику, если данные [возможно] сохранились, но метаданные ZooKeeper утеряны.
Синтаксис
SYSTEM RESTORE DATABASE REPLICA repl_db [ON CLUSTER cluster]Пример
CREATE DATABASE repl_db
ENGINE=Replicated("/clickhouse/repl_db", shard1, replica1);
CREATE TABLE repl_db.test_table (n UInt32)
ENGINE = ReplicatedMergeTree
ORDER BY n PARTITION BY n % 10;
-- zookeeper_delete_path("/clickhouse/repl_db", recursive=True) <- потеря корневого узла.
SYSTEM RESTORE DATABASE REPLICA repl_db;Синтаксис
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Пример
Создание таблицы на нескольких серверах. Если метаданные реплики в ZooKeeper утеряны, таблица подключится в режиме только для чтения, поскольку метаданные отсутствуют. Последний запрос нужно выполнить на каждой реплике.
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) <- потеря корня.
SYSTEM RESTART REPLICA test;
SYSTEM RESTORE REPLICA test;Ещё один способ:
SYSTEM RESTORE REPLICA test ON CLUSTER cluster;SYSTEM RESTART REPLICAS
Позволяет повторно инициализировать состояние сеансов ZooKeeper для всех таблиц ReplicatedMergeTree, сравнивает текущее состояние с ZooKeeper как с источником истины и при необходимости добавляет задачи в очередь ZooKeeper
SYSTEM CLEAR|DROP FILESYSTEM CACHE
Позволяет сбросить файловый кэш.
SYSTEM CLEAR FILESYSTEM CACHE [ON CLUSTER cluster_name]SYSTEM SYNC FILE CACHE
Выполняет системный вызов sync.
SYSTEM SYNC FILE CACHE [ON CLUSTER cluster_name]SYSTEM LOAD PRIMARY KEY
Загружает первичные ключи для указанной таблицы или для всех таблиц.
SYSTEM LOAD PRIMARY KEY [db.]nameSYSTEM LOAD PRIMARY KEYSYSTEM UNLOAD PRIMARY KEY
Выгружает первичные ключи для указанной таблицы или всех таблиц.
SYSTEM UNLOAD PRIMARY KEY [db.]nameSYSTEM UNLOAD PRIMARY KEYУправление Refreshable Materialized Views
Команды для управления фоновыми задачами, выполняемыми Refreshable Materialized Views
При работе с ними отслеживайте system.view_refreshes.
SYSTEM STOP [REPLICATED] VIEW, STOP VIEWS
Останавливает периодическое обновление указанного представления или всех обновляемых представлений. Если обновление уже выполняется, оно также будет отменено.
Если представление находится в базе данных Replicated или Shared, STOP VIEW действует только на текущую реплику, а STOP REPLICATED VIEW — на все реплики.
SYSTEM STOP VIEW [db.]nameSYSTEM STOP VIEWSSYSTEM START [REPLICATED] VIEW, START VIEWS
Включает периодическое обновление для указанного представления или для всех обновляемых представлений. Немедленное обновление не запускается.
Если представление находится в базе данных Replicated или Shared, START VIEW отменяет действие STOP VIEW, а START REPLICATED VIEW — действие STOP REPLICATED VIEW. START VIEW также отменяет действие PAUSE VIEW.
SYSTEM START VIEW [db.]nameSYSTEM START VIEWSSYSTEM PAUSE VIEW, PAUSE VIEWS
Отключает периодическое обновление указанного представления или всех обновляемых представлений.
В отличие от SYSTEM STOP VIEW, команда SYSTEM PAUSE VIEW не прерывает уже выполняющееся обновление: текущему обновлению даётся завершиться, а предотвращаются только последующие обновления.
Отменить это действие можно с помощью SYSTEM START VIEW или SYSTEM START VIEWS.
SYSTEM PAUSE VIEW [db.]nameSYSTEM PAUSE VIEWSSYSTEM REFRESH VIEW
Немедленно запускает внеплановое обновление указанного представления.
SYSTEM REFRESH VIEW [db.]nameSYSTEM WAIT VIEW
Ожидает завершения текущего обновления. Если обновление не выполняется, команда сразу возвращает результат. Если последняя попытка обновления завершилась неудачей, возвращается ошибка.
Можно использовать сразу после создания нового refreshable materialized view (без ключевого слова EMPTY), чтобы дождаться завершения первоначального обновления.
Если представление находится в базе данных Replicated или Shared и обновление выполняется на другой реплике, команда ожидает завершения этого обновления.
SYSTEM WAIT VIEW [db.]nameSYSTEM CANCEL VIEW
Если на текущей реплике для указанного представления выполняется обновление, прервите его и отмените. В противном случае ничего не произойдет.
SYSTEM CANCEL VIEW [db.]nameУправление фоновой активностью
Команды, не зависящие от движка, для управления фоновой активностью одной таблицы или всех таких таблиц на сервере одновременно. Они применяются к:
- Refreshable materialized views (периодическому обновлению), и
- потоковым движкам таблиц, непрерывно считывающим данные из внешнего источника: Kafka, RabbitMQ, NATS, S3Queue и AzureQueue.
Для refreshable materialized view каждый глагол является псевдонимом соответствующей команды SYSTEM ... VIEW из раздела Управление Refreshable Materialized Views, поэтому SYSTEM STOP [db.]name работает точно так же, как SYSTEM STOP VIEW [db.]name, и так далее.
Варианты для отдельной таблицы и с подстановочным знаком различаются обработкой таблиц без фоновой активности. Вариант для отдельной таблицы (SYSTEM STOP [db.]table) генерирует ошибку, если указанная таблица не является ни потоковым движком, ни refreshable materialized view. Вариант с подстановочным знаком молча пропускает такие таблицы, поэтому его всегда можно безопасно выполнять.
STOP и CANCEL прерывают получение данных при первой возможности. Для Kafka, RabbitMQ и NATS они прекращают чтение из источника, но не прерывают уже начавшуюся вставку: блок, уже записываемый в materialized views, всё равно дописывается и фиксируется. S3Queue и AzureQueue выполняют чтение и вставку в рамках одного конвейера. При включённой дедупликации (по умолчанию) вставка также отменяется, а файлы позже обрабатываются повторно. При отключённой дедупликации текущий батч, напротив, завершается и фиксируется (как и для перечисленных выше движков), чтобы избежать дублирования строк. Данные, которые были прочитаны, но ещё не зафиксированы, позже считываются повторно, поэтому ничего не теряется, кроме core NATS (без JetStream), который не может повторно доставить эти данные и отбрасывает их.
PAUSE не прерывает выполняющуюся вставку, поэтому обычно данные не теряются. Исключение — core NATS: приостановка прекращает получение данных и отбрасывает сообщения, которые он уже получил, но ещё не вставил, поскольку core NATS не может доставить их повторно.
SYSTEM STOP
Остановить фоновую активность: прервать выполняющиеся задачи и не запускать новые до выполнения SYSTEM START. Эквивалентно PAUSE + CANCEL.
SYSTEM STOP [db.]table
SYSTEM STOP ALL BACKGROUNDSYSTEM START
Возобновляет работу после выполнения SYSTEM STOP или SYSTEM PAUSE. Текущая активность не прерывается.
SYSTEM START [db.]table
SYSTEM START ALL BACKGROUNDSYSTEM PAUSE
Приостанавливает дальнейшую фоновую активность, но позволяет текущим операциям завершиться.
SYSTEM PAUSE [db.]table
SYSTEM PAUSE ALL BACKGROUNDSYSTEM CANCEL
Прерывает только текущую выполняемую операцию, не блокируя последующие — таблица продолжает обновляться или потреблять данные по расписанию. Если никакая операция не выполняется, ничего не происходит.
SYSTEM CANCEL [db.]table
SYSTEM CANCEL ALL BACKGROUNDSYSTEM REFRESH
Запускает один дополнительный цикл вне расписания. Для потоковой таблицы выполняется немедленно и однократно, даже если таблица остановлена или приостановлена. Для refreshable materialized view действует аналогично SYSTEM REFRESH VIEW: если view остановлено, запрос на обновление запоминается и выполняется один раз после запуска с помощью SYSTEM START.
SYSTEM REFRESH [db.]table
SYSTEM REFRESH ALL BACKGROUNDПривилегии
Для каждой команды требуется привилегия соответствующего движка: SYSTEM VIEWS для refreshable materialized view и SYSTEM STREAMING ENGINES для потоковой таблицы. Обе привилегии являются дочерними по отношению к SYSTEM BACKGROUND, поэтому предоставление SYSTEM BACKGROUND позволяет управлять фоновой активностью всех таких таблиц. Варианты ALL BACKGROUND применяются только к таблицам, которыми пользователь имеет право управлять, и без уведомления пропускают остальные.
SYSTEM FLUSH OBJECT STORAGE QUEUE
Блокирует выполнение до тех пор, пока указанный файл не будет обработан указанной таблицей S3Queue или AzureQueue, либо пока для него не будет зафиксирована необратимая ошибка. Если файл уже был обработан, управление возвращается немедленно. Вызывает ошибку, если обработка файла завершилась необратимой ошибкой (все повторные попытки исчерпаны).
SYSTEM FLUSH OBJECT STORAGE QUEUE [db.]table_name PATH 'path'