Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

SYSTEM

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 DICTIONARIES

SYSTEM 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_name

SYSTEM 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.]table

SYSTEM PREWARM PRIMARY INDEX CACHE

Загружает первичные индексы таблицы MergeTree в кэш первичного индекса.

SYSTEM PREWARM PRIMARY INDEX CACHE [ON CLUSTER cluster_name] [db.]table

SYSTEM 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 Cloud

Обычно останавливает 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 1

PROFILE

Измеряет время, затраченное между ENTRY и EXIT при выполнении функции. Результат профилирования сохраняется в system.trace_log и может быть преобразован в формат трассировки событий Chrome.

SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' PROFILE

SYSTEM 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

Не поддерживается в ClickHouse Cloud

Позволяет остановить фоновые слияния для таблиц семейства MergeTree:

SYSTEM STOP MERGES [ON CLUSTER cluster_name] [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]

SYSTEM START MERGES

Не поддерживается в ClickHouse Cloud

Позволяет запускать фоновые слияния для таблиц семейства MergeTree:

SYSTEM START MERGES [ON CLUSTER cluster_name] [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]

SYSTEM STOP TTL MERGES

Не поддерживается в ClickHouse Cloud

Позволяет остановить фоновое удаление старых данных в соответствии с TTL expression для таблиц семейства MergeTree: Возвращает Ok. даже если таблица не существует или не использует движок MergeTree. Возвращает ошибку, если база данных не существует:

SYSTEM STOP TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name]

SYSTEM START TTL MERGES

Не поддерживается в ClickHouse Cloud

Позволяет запустить фоновое удаление старых данных в соответствии с 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

Не поддерживается в ClickHouse Cloud

Позволяет остановить фоновую загрузку вставленных частей для таблиц семейства ReplicatedMergeTree: Всегда возвращает Ok. независимо от движка таблицы, даже если таблица или база данных не существуют.

SYSTEM STOP FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]

SYSTEM START FETCHES

Не поддерживается в ClickHouse Cloud

Позволяет запускать фоновые загрузки вставленных частей для таблиц семейства 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_name

SYSTEM 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.]name
SYSTEM LOAD PRIMARY KEY

SYSTEM UNLOAD PRIMARY KEY

Выгружает первичные ключи для указанной таблицы или всех таблиц.

SYSTEM UNLOAD PRIMARY KEY [db.]name
SYSTEM 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.]name
SYSTEM STOP VIEWS

SYSTEM 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.]name
SYSTEM START VIEWS

SYSTEM PAUSE VIEW, PAUSE VIEWS

Отключает периодическое обновление указанного представления или всех обновляемых представлений. В отличие от SYSTEM STOP VIEW, команда SYSTEM PAUSE VIEW не прерывает уже выполняющееся обновление: текущему обновлению даётся завершиться, а предотвращаются только последующие обновления.

Отменить это действие можно с помощью SYSTEM START VIEW или SYSTEM START VIEWS.

SYSTEM PAUSE VIEW [db.]name
SYSTEM PAUSE VIEWS

SYSTEM REFRESH VIEW

Немедленно запускает внеплановое обновление указанного представления.

SYSTEM REFRESH VIEW [db.]name

SYSTEM WAIT VIEW

Ожидает завершения текущего обновления. Если обновление не выполняется, команда сразу возвращает результат. Если последняя попытка обновления завершилась неудачей, возвращается ошибка.

Можно использовать сразу после создания нового refreshable materialized view (без ключевого слова EMPTY), чтобы дождаться завершения первоначального обновления.

Если представление находится в базе данных Replicated или Shared и обновление выполняется на другой реплике, команда ожидает завершения этого обновления.

SYSTEM WAIT VIEW [db.]name

SYSTEM CANCEL VIEW

Если на текущей реплике для указанного представления выполняется обновление, прервите его и отмените. В противном случае ничего не произойдет.

SYSTEM CANCEL VIEW [db.]name

Управление фоновой активностью

Команды, не зависящие от движка, для управления фоновой активностью одной таблицы или всех таких таблиц на сервере одновременно. Они применяются к:

Для 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 BACKGROUND

SYSTEM START

Возобновляет работу после выполнения SYSTEM STOP или SYSTEM PAUSE. Текущая активность не прерывается.

SYSTEM START [db.]table
SYSTEM START ALL BACKGROUND

SYSTEM PAUSE

Приостанавливает дальнейшую фоновую активность, но позволяет текущим операциям завершиться.

SYSTEM PAUSE [db.]table
SYSTEM PAUSE ALL BACKGROUND

SYSTEM CANCEL

Прерывает только текущую выполняемую операцию, не блокируя последующие — таблица продолжает обновляться или потреблять данные по расписанию. Если никакая операция не выполняется, ничего не происходит.

SYSTEM CANCEL [db.]table
SYSTEM CANCEL ALL BACKGROUND

SYSTEM 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'
Navigation