SYSTEM RELOAD EMBEDDED DICTIONARIES
Ok.。
SYSTEM RELOAD DICTIONARIES
SYSTEM RELOAD DICTIONARIES 查询会重新加载状态为 LOADED 的字典 (参见 system.dictionaries 的 status 列) ,即此前已成功加载的字典。
默认情况下,字典采用延迟加载 (参见 dictionaries_lazy_load) ,因此不会在启动时自动加载,而是在首次访问时通过调用 dictGet 函数,或对 ENGINE = Dictionary 的表执行 SELECT 时初始化。
语法
SYSTEM RELOAD 字典
dictionary_name,无论该字典当前处于何种状态 (LOADED / NOT_LOADED / FAILED) 。
无论字典更新结果如何,始终返回 Ok.。
system.dictionaries 表来查看字典的状态。
SYSTEM RELOAD MODELS
此语句和
SYSTEM RELOAD MODEL 仅会从 clickhouse-library-bridge 中卸载 catboost 模型。函数 catboostEvaluate()
会在模型尚未加载时于首次访问该模型时将其加载。SYSTEM RELOAD MODEL
model_path 处的 CatBoost 模型。
语法
SYSTEM RELOAD FUNCTIONS
SYSTEM RELOAD ASYNCHRONOUS METRICS
SYSTEM CLEAR|DROP DNS CACHE
disable_internal_dns_cache、dns_cache_max_entries、dns_cache_update_period 参数。
SYSTEM CLEAR|DROP 标记缓存
SYSTEM CLEAR|DROP ICEBERG METADATA CACHE
SYSTEM CLEAR|DROP AVRO SCHEMA CACHE
AvroConfluent 格式使用的、按 URL 区分的 Confluent Schema Registry 缓存。这会同时删除 schema 拉取缓存 (id → schema) 和 schema 注册缓存 (subject + schema → id) ,因此后续的读写都会回退到 registry 服务器。当 registry 端的 schema 被删除或改写时,此功能非常有用;也可用于在测试中验证 registry 的幂等性。
SYSTEM DROP PARQUET METADATA CACHE
SYSTEM CLEAR|DROP TEXT INDEX CACHES
SYSTEM CLEAR TEXT INDEX HEADER CACHE,SYSTEM CLEAR TEXT INDEX DICTIONARY CACHE,或SYSTEM CLEAR TEXT INDEX POSTINGS CACHE
SYSTEM DROP REPLICA
ReplicatedMergeTree 表的失效副本:
ReplicatedMergeTree 的副本路径。当某个副本已失效,且由于对应的表已不存在,无法通过 DROP TABLE 从 ZooKeeper 中删除其元数据时,这一操作就很有用。它只会删除非活动/过期副本,不能删除本地副本;这种情况请使用 DROP TABLE。DROP REPLICA 不会删除任何表,也不会从磁盘中移除任何数据或元数据。
第一种会删除 database.table 表中 'replica_name' 副本的元数据。
第二种会对该数据库中的所有复制表执行相同操作。
第三种会对本地服务器上的所有复制表执行相同操作。
第四种在某个表的所有其他副本都已被删除时,可用于删除失效副本的元数据。它要求显式指定表路径。该路径必须与创建表时传给 ReplicatedMergeTree 引擎第一个参数的路径相同。
SYSTEM DROP DATABASE REPLICA
Replicated 数据库的失效副本:
SYSTEM DROP REPLICA 类似,但当没有可执行 DROP DATABASE 的数据库时,它会从 ZooKeeper 中移除 Replicated 数据库的副本路径。请注意,它不会移除 ReplicatedMergeTree 的副本 (因此你可能还需要使用 SYSTEM DROP REPLICA) 。分片名和副本名是在创建数据库时于 Replicated 引擎参数中指定的名称。此外,这些名称也可以从 system.clusters 的 database_shard_name 和 database_replica_name 列中获取。如果缺少 FROM SHARD 子句,那么 replica_name 必须是完整的副本名称,格式为 shard_name|replica_name。
SYSTEM CLEAR|DROP UNCOMPRESSED CACHE
use_uncompressed_cache 启用或禁用未压缩数据缓存。
其大小可通过服务器级设置 uncompressed_cache_size 配置。
SYSTEM CLEAR|DROP 编译 expression 缓存
compile_expressions 启用或禁用已编译 expression 缓存。
SYSTEM CLEAR|DROP QUERY CONDITION CACHE
SYSTEM CLEAR|DROP 查询缓存
SYSTEM CLEAR|DROP FORMAT SCHEMA CACHE
format_schema_path 加载的 schema 缓存。
支持的目标:
- Protobuf:从内存中移除已导入的 Protobuf 消息定义。
- Files:删除本地
format_schema_path中缓存的 schema 文件,这些文件会在format_schema_source设置为query时生成。 注意:如果未指定目标,则会同时清除这两类缓存。
SYSTEM FLUSH LOGS
SYSTEM RELOAD CONFIG
SYSTEM RELOAD CONFIG 不会重新加载存储在 ZooKeeper 中的 USER 配置;它只会重新加载存储在 users.xml 中的 USER 配置。要重新加载所有 USER 配置,请使用 SYSTEM RELOAD USERS
SYSTEM RELOAD USERS
SYSTEM SHUTDOWN
service clickhouse-server stop / kill {$pid_clickhouse-server})
SYSTEM KILL
kill -9 {$ pid_clickhouse-server})
SYSTEM INSTRUMENT
ENABLE_XRAY=1 构建 ClickHouse 时可用。
这使得无需修改源代码,也能以极低开销在生产环境中进行调试和性能分析。
在未添加任何插桩点时,性能损耗几乎可以忽略不计,因为它只会在长度超过 200 条指令的函数序言和结语处,
额外增加一次跳转到附近地址的操作。
SYSTEM INSTRUMENT ADD
system.instrumentation 系统表中查看。可以为同一函数添加多个 handler,它们会按插桩添加的顺序依次执行。
要进行插桩的函数可从 system.symbols 系统表中获取。
可向函数添加三种不同类型的 handler:
语法
FUNCTION 可以是任意函数,或函数名的一部分 (子串) ,例如 QueryMetricLog::startQuery;而 handler 则为以下之一
LOG
ENTRY 或 EXIT 时,打印作为参数传入的文本以及堆栈跟踪。
SLEEP
ENTRY 或 EXIT 时休眠固定秒数:
PROFILE
ENTRY 到 EXIT 之间所花费的时间。
性能分析结果存储在 system.trace_log 中,并可转换为
Chrome Event Trace Format。
SYSTEM INSTRUMENT REMOVE
ALL 参数对它们全部进行操作:
system.instrumentation 系统表中获取插桩点信息。
管理分布式表
STOP DISTRIBUTED SENDS、FLUSH DISTRIBUTED 和 START DISTRIBUTED SENDS 查询来控制队列处理。你也可以通过 distributed_foreground_insert 设置,以同步方式向分布式表插入数据。
SYSTEM STOP DISTRIBUTED SENDS
如果启用了
prefer_localhost_replica (默认启用) ,数据仍会照常插入本地分片。SYSTEM FLUSH DISTRIBUTED
SETTINGS 子句覆盖某些设置,这有助于规避一些临时限制,例如 max_concurrent_queries_for_all_users 或 max_memory_usage。
每个待处理的块都会按照初始 INSERT 查询中的设置存储到磁盘上,因此有时你可能需要覆盖这些设置。
SYSTEM START DISTRIBUTED SENDS
SYSTEM STOP LISTEN
- 如果指定了
CUSTOM 'protocol'修饰符,则会停止在服务器配置的 protocols 部分中定义的、名称为指定值的自定义协议。 - 如果指定了
QUERIES ALL [EXCEPT .. [,..]]修饰符,则会停止所有协议,除非在EXCEPT子句中指定了排除项。 - 如果指定了
QUERIES DEFAULT [EXCEPT .. [,..]]修饰符,则会停止所有默认协议,除非在EXCEPT子句中指定了排除项。 - 如果指定了
QUERIES CUSTOM [EXCEPT .. [,..]]修饰符,则会停止所有自定义协议,除非在EXCEPT子句中指定了排除项。
SYSTEM START LISTEN
管理 MergeTree 表
SYSTEM STOP MERGES
对表执行
DETACH / ATTACH 后,即使此前已对所有 MergeTree 表停止合并,也会重新为该表启动后台合并。SYSTEM START MERGES
SYSTEM STOP TTL MERGES
Ok.。当数据库不存在时,会返回错误:
SYSTEM START TTL MERGES
Ok.。如果数据库不存在,则返回错误:
SYSTEM STOP MOVES
Ok.。如果数据库不存在,则会返回错误:
SYSTEM START MOVES
Ok.。当数据库不存在时,则返回错误:
SYSTEM SYSTEM UNFREEZE
SYSTEM WAIT LOADING PARTS
管理 ReplicatedMergeTree 表
SYSTEM STOP FETCHES
ReplicatedMergeTree 家族表中已插入 parts 的后台拉取操作:
无论表引擎为何,甚至表或数据库不存在,始终返回 Ok.
SYSTEM START FETCHES
ReplicatedMergeTree 家族中的表启动针对已插入 parts 的后台拉取:
无论表引擎是什么,甚至表或数据库不存在,也始终返回 Ok.。
SYSTEM STOP REPLICATED SENDS
ReplicatedMergeTree 家族表中新插入的 parts 向集群中其他副本的后台发送:
SYSTEM START REPLICATED SENDS
ReplicatedMergeTree 家族中的表启动后台发送,将新插入的 parts 发送到集群中的其他副本:
SYSTEM STOP REPLICATION QUEUES
ReplicatedMergeTree 家族表使用的复制队列里的后台拉取任务。可能的后台任务类型包括:合并、拉取、变更,以及带有 ON CLUSTER 子句的 DDL 语句:
SYSTEM START REPLICATION QUEUES
ReplicatedMergeTree 家族中的表启动存储在 ZooKeeper 中的复制队列里的后台任务。可能的后台任务类型包括:合并、拉取、变更,以及带有 ON CLUSTER 子句的 DDL 语句:
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
SYSTEM RESTART REPLICA
ReplicatedMergeTree 表的 Zookeeper 会话状态;系统会将当前状态与作为事实来源的 Zookeeper 进行比较,并在需要时向 Zookeeper 队列添加任务。
基于 ZooKeeper 数据初始化复制队列的方式与 ATTACH TABLE 语句相同。在短时间内,该表将暂时无法执行任何操作。
SYSTEM RESTORE REPLICA
ReplicatedMergeTree 表。
可在以下情况发生后执行该查询:
- ZooKeeper 根路径
/丢失。 - 副本路径
/replicas丢失。 - 单个副本路径
/replicas/replica_name/丢失。
所有状态的 parts 都会被移到
detached/ 文件夹中。数据丢失前处于活动状态 (committed) 的 parts 会被附加。SYSTEM RESTORE DATABASE REPLICA
SYSTEM RESTART REPLICAS
ReplicatedMergeTree 表重新初始化 Zookeeper 会话状态;它会将当前状态与 Zookeeper 中的状态进行比较,并以 Zookeeper 中的状态为准,必要时向 Zookeeper 队列添加任务
SYSTEM CLEAR|DROP FILESYSTEM CACHE
SYSTEM SYNC FILE CACHE
此操作开销过大,且存在被滥用的风险。
SYSTEM LOAD PRIMARY KEY
SYSTEM UNLOAD PRIMARY KEY
管理可刷新的 materialized view
system.view_refreshes。
SYSTEM STOP [REPLICATED] VIEW, STOP VIEWS
STOP VIEW 仅影响当前副本,而 STOP REPLICATED VIEW 会影响所有副本。
停止后的状态不会在 server 重启后保留。重启后,视图将恢复按其已配置的刷新计划执行。
在 Replicated 或 Shared 数据库 中,
SYSTEM STOP VIEW 仅影响当前副本。使用 SYSTEM STOP REPLICATED VIEW 可停止所有副本上的刷新。SYSTEM START [REPLICATED] VIEW, START VIEWS
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 恢复。
暂停状态在 server 重启后不会保留。重启后,视图将恢复为其配置的刷新计划。
在 Replicated 或 Shared 数据库中,
SYSTEM PAUSE VIEW 仅影响当前副本。