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 DICTIONARY
Полностью перезагружает словарьdictionary_name независимо от его состояния (LOADED / NOT_LOADED / FAILED).
Всегда возвращает Ok. независимо от результата обновления словаря.
system.dictionaries.
SYSTEM UNLOAD DICTIONARY
Выгружает словарьdictionary_name, чтобы освободить занимаемую им память, если статус словаря — LOADED.
При следующем обращении словарь при необходимости снова загружается отложенно.
system.dictionaries.
SYSTEM UNLOAD DICTIONARIES
ЗапросSYSTEM UNLOAD DICTIONARIES выгружает из памяти все словари со статусом LOADED (см. столбец status в system.dictionaries), то есть словари, которые ранее были успешно загружены.
SYSTEM RELOAD FUNCTIONS
Перезагружает все зарегистрированные исполняемые пользовательские функции или одну из них из файла конфигурации. СинтаксисSYSTEM RELOAD ASYNCHRONOUS METRICS
Пересчитывает все асинхронные метрики. Поскольку асинхронные метрики периодически обновляются в соответствии с настройкой asynchronous_metrics_update_period_s, вручную обновлять их с помощью этого оператора обычно не нужно.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 PRIMARY INDEX CACHE
Загружает первичные индексы таблицыMergeTree в кэш первичного индекса.
SYSTEM CLEAR|DROP DISK METADATA CACHE
Очищает кэш метаданных указанного диска.SYSTEM SYNC FILESYSTEM CACHE
Синхронизирует хранящееся в памяти состояние файлового кэша ClickHouse с файлами кэша, фактически находящимися на диске, и возвращаетcache_name, path и загруженный size каждого кэшированного сегмента файла. Необязательное имя кэша ограничивает операцию одним кэшем.
SYSTEM CLEAR|DROP DISTRIBUTED CACHE
SYSTEM CLEAR|DROP DISTRIBUTED CACHE доступна только в ClickHouse Cloud.CONNECTIONS, чтобы удалить только кэшированные соединения с серверами распределённого кэша, либо передайте идентификатор сервера, чтобы выбрать только один сервер.
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 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|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.
SYSTEM INSTRUMENT REMOVE
Удаляет либо одну точку инструментирования с помощью:ALL:
system.instrumentation.
Управление distributed таблицами
ClickHouse может работать с distributed таблицами. Когда пользователь вставляет данные в эти таблицы, ClickHouse сначала создаёт очередь данных, которые должны быть отправлены на узлы кластера, а затем асинхронно отправляет их. Вы можете управлять обработкой очереди с помощью запросовSTOP DISTRIBUTED SENDS, FLUSH DISTRIBUTED и START DISTRIBUTED SENDS. Вы также можете синхронно вставлять распределённые данные с помощью настройки distributed_foreground_insert.
SYSTEM STOP DISTRIBUTED SENDS
Отключает фоновое распределение данных при вставке в distributed-таблицы.Если параметр
prefer_localhost_replica включен (по умолчанию), данные всё равно будут вставлены в локальный сегмент.SYSTEM FLUSH DISTRIBUTED
Принудительно заставляет ClickHouse синхронно отправлять данные на узлы кластера. Если какие-либо узлы недоступны, ClickHouse генерирует исключение и останавливает выполнение запроса. Вы можете повторять запрос, пока он не завершится успешно; это произойдёт, когда все узлы снова будут в сети. Вы также можете переопределить некоторые настройки с помощью предложенияSETTINGS; это может быть полезно, чтобы обойти временные ограничения, например max_concurrent_queries_for_all_users или max_memory_usage.
Каждый блок, ожидающий отправки, хранится на диске с настройками из исходного запроса INSERT, поэтому иногда может понадобиться переопределить эти настройки.
SYSTEM START DISTRIBUTED SENDS
Включает фоновую отправку данных при вставке в distributed таблицы.SYSTEM STOP LISTEN
Закрывает сокет и корректно завершает существующие соединения с сервером на указанном порту по указанному протоколу. Однако, если соответствующие настройки протокола не были указаны в конфигурации clickhouse-server, эта команда не даст никакого эффекта.- Если указан модификатор
CUSTOM 'protocol', будет остановлен пользовательский протокол с указанным именем, определённый в разделеprotocolsконфигурации сервера. - Если указан модификатор
QUERIES ALL [EXCEPT .. [,..]], будут остановлены все протоколы, кроме указанных в предложенииEXCEPT. - Если указан модификатор
QUERIES DEFAULT [EXCEPT .. [,..]], будут остановлены все протоколы по умолчанию, кроме указанных в предложенииEXCEPT. - Если указан модификатор
QUERIES CUSTOM [EXCEPT .. [,..]], будут остановлены все пользовательские протоколы, кроме указанных в предложенииEXCEPT.
SYSTEM START LISTEN
Позволяет устанавливать новые соединения по указанным протоколам. Однако если сервер на указанном порту и по указанному протоколу не был остановлен с помощью команды SYSTEM STOP LISTEN, эта команда не возымеет никакого эффекта.Управление таблицами MergeTree
ClickHouse позволяет управлять фоновыми процессами в таблицах MergeTree.SYSTEM STOP MERGES
Позволяет остановить фоновые слияния для таблиц семейства MergeTree:DETACH / ATTACH для таблицы запустит фоновые слияния, даже если ранее они были остановлены для всех таблиц MergeTree.SYSTEM START MERGES
Позволяет запускать фоновые слияния для таблиц семейства MergeTree:SYSTEM STOP TTL MERGES
Позволяет остановить фоновое удаление старых данных в соответствии с TTL expression для таблиц семейства MergeTree: ВозвращаетOk. даже если таблица не существует или не использует движок MergeTree. Возвращает ошибку, если база данных не существует:
SYSTEM START TTL MERGES
Позволяет запустить фоновое удаление старых данных в соответствии с TTL expression для таблиц семейства MergeTree: ВозвращаетOk. даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM STOP MOVES
Позволяет остановить фоновое перемещение данных в соответствии с TTL-выражением таблицы с клаузой TO VOLUME или TO DISK для таблиц семейства MergeTree: ВозвращаетOk., даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM START MOVES
Позволяет запускать фоновое перемещение данных в соответствии с TTL-выражением таблицы с клаузами TO VOLUME и TO DISK для таблиц семейства MergeTree: ВозвращаетOk. даже если таблица не существует. Возвращает ошибку, если база данных не существует:
SYSTEM UNFREEZE
Удаляет замороженную резервную копию с указанным именем со всех дисков. Подробнее о разморозке отдельных частей см. в ALTER TABLE table_name UNFREEZE WITH NAMESYSTEM WAIT LOADING PARTS
Ожидает завершения загрузки всех асинхронно загружаемых частей данных таблицы (устаревших частей данных).Управление таблицами ReplicatedMergeTree
ClickHouse может управлять фоновыми процессами, связанными с репликацией, в таблицах ReplicatedMergeTree.SYSTEM STOP FETCHES
Позволяет остановить фоновую загрузку вставленных частей для таблиц семействаReplicatedMergeTree:
Всегда возвращает Ok. независимо от движка таблицы, даже если таблица или база данных не существуют.
SYSTEM START FETCHES
Позволяет запускать фоновые загрузки вставленных частей для таблиц семействаReplicatedMergeTree:
Всегда возвращает Ok. независимо от движка таблицы, даже если таблица или база данных не существуют.
SYSTEM STOP REPLICATED SENDS
Позволяет остановить фоновую отправку другим репликам в кластере новых частей, создаваемых при вставке данных, для таблиц семействаReplicatedMergeTree:
SYSTEM START REPLICATED SENDS
Позволяет запустить фоновую отправку новых вставленных частей таблиц семействаReplicatedMergeTree на другие реплики в кластере:
SYSTEM STOP REPLICATION QUEUES
Позволяет остановить фоновые задачи загрузки из очередей репликации, хранящихся в Zookeeper, для таблиц семействаReplicatedMergeTree. Возможные типы фоновых задач: слияние, загрузка, мутация, DDL-операторы с предложением ON CLUSTER:
SYSTEM START REPLICATION QUEUES
Позволяет запускать фоновые задачи загрузки из очередей репликации, хранящихся в Zookeeper, для таблиц семействаReplicatedMergeTree. Возможные типы фоновых задач — слияния, загрузки, мутации, DDL-операторы с предложением ON CLUSTER:
SYSTEM STOP PULLING REPLICATION LOG
Останавливает загрузку новых записей из журнала репликации в очередь репликации таблицыReplicatedMergeTree.
SYSTEM START PULLING REPLICATION LOG
Отменяет действиеSYSTEM STOP PULLING REPLICATION LOG.
SYSTEM SYNC REPLICA
Ожидать, пока таблицаReplicatedMergeTree синхронизируется с другими репликами в кластере, но не дольше receive_timeout секунд.
[db.]replicated_merge_tree_family_table_name получает команды из общего журнала репликации в свою очередь репликации, а затем запрос ждёт, пока реплика не обработает все полученные команды. Поддерживаются следующие модификаторы:
- С
IF EXISTS(доступно начиная с 25.6) запрос не сгенерирует ошибку, если таблица не существует. Это полезно при добавлении новой реплики в кластер, когда она уже входит в конфигурацию кластера, но таблица для неё всё ещё создаётся и синхронизируется. - Если указан модификатор
STRICT, запрос ждёт, пока очередь репликации не опустеет. ВариантSTRICTможет так и не завершиться успешно, если в очереди репликации постоянно появляются новые записи. - Если указан модификатор
LIGHTWEIGHT, запрос ждёт только обработки записейGET_PART,ATTACH_PART,DROP_RANGE,REPLACE_RANGEиDROP_PART. Кроме того, модификатор LIGHTWEIGHT поддерживает необязательное выражение FROM ‘srcReplicas’, где ‘srcReplicas’ — это список имён исходных реплик, разделённых запятыми. Это расширение позволяет точнее настраивать синхронизацию, ограничивая её задачами репликации только от указанных исходных реплик. - Если указан модификатор
PULL, запрос получает новые записи очереди репликации из ZooKeeper, но не ждёт их обработки.
SYNC DATABASE REPLICA
Ожидает, пока указанная база данных Replicated не применит все изменения схемы из очереди DDL этой базы данных. СинтаксисSYSTEM RESTART REPLICA
Позволяет повторно инициализировать состояние сеанса ZooKeeper для таблицыReplicatedMergeTree: текущее состояние будет сверено с ZooKeeper как с источником истины, и при необходимости в очередь ZooKeeper будут добавлены задачи.
Инициализация очереди репликации на основе данных ZooKeeper выполняется так же, как и для оператора ATTACH TABLE. На короткое время таблица будет недоступна для выполнения любых операций.
SYSTEM RESTORE REPLICA
Восстанавливает реплику, если данные [возможно] присутствуют, но метаданные ZooKeeper утеряны. Работает только с таблицамиReplicatedMergeTree в режиме только для чтения.
Запрос можно выполнить после:
- Потери корневого пути ZooKeeper
/. - Потери пути реплик
/replicas. - Потери пути отдельной реплики
/replicas/replica_name/.
Части во всех состояниях перемещаются в папку
detached/. Части, которые были активны до потери данных (committed), подключаются.SYSTEM RESTORE DATABASE REPLICA
Восстанавливает реплику, если данные [возможно] сохранились, но метаданные ZooKeeper утеряны. СинтаксисSYSTEM RESTART REPLICAS
Позволяет повторно инициализировать состояние сеансов ZooKeeper для всех таблицReplicatedMergeTree, сравнивает текущее состояние с ZooKeeper как с источником истины и при необходимости добавляет задачи в очередь ZooKeeper
SYSTEM CLEAR|DROP FILESYSTEM CACHE
Позволяет сбросить файловый кэш.SYSTEM SYNC FILE CACHE
Это слишком затратная операция и может использоваться не по назначению.
SYSTEM LOAD PRIMARY KEY
Загружает первичные ключи для указанной таблицы или для всех таблиц.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 — на все реплики.
Состояние остановки не сохраняется после перезапуска сервера. После перезапуска представления возобновят обновление в соответствии с настроенным для них расписанием.
В базах данных 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. START VIEW также отменяет действие PAUSE VIEW.
SYSTEM PAUSE VIEW, PAUSE VIEWS
Отключает периодическое обновление указанного представления или всех обновляемых представлений. В отличие отSYSTEM STOP VIEW, команда SYSTEM PAUSE VIEW не прерывает уже выполняющееся обновление: текущему обновлению даётся завершиться, а предотвращаются только последующие обновления.
Отменить это действие можно с помощью SYSTEM START VIEW или SYSTEM START VIEWS.
Состояние паузы не сохраняется после перезапуска сервера. После перезапуска представления возобновят обновление по настроенному расписанию.
В базах данных Replicated или Shared команда
SYSTEM PAUSE VIEW влияет только на текущую реплику.SYSTEM REFRESH VIEW
Немедленно запускает внеплановое обновление указанного представления.SYSTEM WAIT VIEW
Ожидает завершения текущего обновления. Если обновление не выполняется, команда сразу возвращает результат. Если последняя попытка обновления завершилась неудачей, возвращается ошибка. Можно использовать сразу после создания нового refreshable materialized view (без ключевого слова EMPTY), чтобы дождаться завершения первоначального обновления. Если представление находится в базе данных Replicated или Shared и обновление выполняется на другой реплике, команда ожидает завершения этого обновления.SYSTEM CANCEL VIEW
Если на текущей реплике для указанного представления выполняется обновление, прервите его и отмените. В противном случае ничего не произойдет.Управление фоновой активностью
Команды, не зависящие от движка, для управления фоновой активностью одной таблицы или всех таких таблиц на сервере одновременно. Они применяются к:- Refreshable materialized views (периодическому обновлению), и
- потоковым движкам таблиц, непрерывно считывающим данные из внешнего источника: Kafka, RabbitMQ, NATS, S3Queue и AzureQueue.
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 не может доставить их повторно.
Ни одно из этих состояний не сохраняется после перезапуска сервера. После перезапуска refreshable views возобновляют работу по настроенному расписанию, а потоковые движки возобновляют получение данных.
SYSTEM STOP
Остановить фоновую активность: прервать выполняющиеся задачи и не запускать новые до выполненияSYSTEM START. Эквивалентно PAUSE + CANCEL.
SYSTEM START
Возобновляет работу после выполненияSYSTEM STOP или SYSTEM PAUSE. Текущая активность не прерывается.
SYSTEM PAUSE
Приостанавливает дальнейшую фоновую активность, но позволяет текущим операциям завершиться.SYSTEM CANCEL
Прерывает только текущую выполняемую операцию, не блокируя последующие — таблица продолжает обновляться или потреблять данные по расписанию. Если никакая операция не выполняется, ничего не происходит.SYSTEM REFRESH
Запускает один дополнительный цикл вне расписания. Для потоковой таблицы выполняется немедленно и однократно, даже если таблица остановлена или приостановлена. Для refreshable materialized view действует аналогичноSYSTEM REFRESH VIEW: если view остановлено, запрос на обновление запоминается и выполняется один раз после запуска с помощью SYSTEM START.
Привилегии
Для каждой команды требуется привилегия соответствующего движка:SYSTEM VIEWS для refreshable materialized view и SYSTEM STREAMING ENGINES для потоковой таблицы. Обе привилегии являются дочерними по отношению к SYSTEM BACKGROUND, поэтому предоставление SYSTEM BACKGROUND позволяет управлять фоновой активностью всех таких таблиц. Варианты ALL BACKGROUND применяются только к таблицам, которыми пользователь имеет право управлять, и без уведомления пропускают остальные.
SYSTEM FLUSH OBJECT STORAGE QUEUE
Блокирует выполнение до тех пор, пока указанный файл не будет обработан указанной таблицей S3Queue или AzureQueue, либо пока для него не будет зафиксирована необратимая ошибка. Если файл уже был обработан, управление возвращается немедленно. Вызывает ошибку, если обработка файла завершилась необратимой ошибкой (все повторные попытки исчерпаны).SYSTEM ENABLE|DISABLE FAILPOINT
Failpoint — это именованные места в коде сервера, куда по требованию можно внедрить сбой: ошибку, задержку или приостановку выполняющегося потока — в целях тестирования. Они перечислены в таблицеsystem.fail_points вместе с их текущим состоянием.
SYSTEM ENABLE FAILPOINT активирует один failpoint; SYSTEM DISABLE FAILPOINT деактивирует его и возобновляет все заблокированные на нём потоки, а если failpoint не был включён, не делает ничего.
SYSTEM DISABLE ALL FAILPOINTS отключает сразу все failpoint’ы и возобновляет все потоки, заблокированные на failpoint’ах с приостановкой. Этот оператор не принимает имени и идемпотентен, поэтому тестовая среда может с его помощью вернуть сервер в состояние без каких-либо инъекций, не зная, какие именно failpoint’ы включил предыдущий тест. В сборке без поддержки failpoint’ов оператор выполняется успешно и не делает ничего.
SYSTEM WAIT FAILPOINT ... PAUSE блокируется до тех пор, пока какой-либо поток не приостановится на указанном failpoint’е с приостановкой (или пока этот failpoint не будет отключён), ... RESUME блокируется до возобновления приостановленного потока, а SYSTEM NOTIFY FAILPOINT возобновляет приостановленные потоки, не отключая failpoint.
Failpoint’ы — это локальное состояние узла, поэтому ни один из этих операторов не принимает предложение ON CLUSTER. Для всех них требуется привилегия SYSTEM FAILPOINT.