* Limit log frequence for "Skipping send data over distributed table" message After SYSTEM STOP DISTRIBUTED SENDS it will constantly print this message. Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com> * Rename directory monitor concept into async INSERT Rename the following query settings (with preserving backward compatiblity, by keeping old name as an alias): - distributed_directory_monitor_sleep_time_ms -> distributed_async_insert_sleep_time_ms - distributed_directory_monitor_max_sleep_time_ms -> distributed_async_insert_max_sleep_time_ms - distributed_directory_monitor_batch -> distributed_async_insert_batch_inserts - distributed_directory_monitor_split_batch_on_failure -> distributed_async_insert_split_batch_on_failure Rename the following table settings (with preserving backward compatiblity, by keeping old name as an alias): - monitor_batch_inserts -> async_insert_batch - monitor_split_batch_on_failure -> async_insert_split_batch_on_failure - directory_monitor_sleep_time_ms -> async_insert_sleep_time_ms - directory_monitor_max_sleep_time_ms -> async_insert_max_sleep_time_ms And also update all the references: $ gg -e directory_monitor_ -e monitor_ tests docs | cut -d: -f1 | sort -u | xargs sed -e 's/distributed_directory_monitor_sleep_time_ms/distributed_async_insert_sleep_time_ms/g' -e 's/distributed_directory_monitor_max_sleep_time_ms/distributed_async_insert_max_sleep_time_ms/g' -e 's/distributed_directory_monitor_batch_inserts/distributed_async_insert_batch/g' -e 's/distributed_directory_monitor_split_batch_on_failure/distributed_async_insert_split_batch_on_failure/g' -e 's/monitor_batch_inserts/async_insert_batch/g' -e 's/monitor_split_batch_on_failure/async_insert_split_batch_on_failure/g' -e 's/monitor_sleep_time_ms/async_insert_sleep_time_ms/g' -e 's/monitor_max_sleep_time_ms/async_insert_max_sleep_time_ms/g' -i Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com> * Rename async_insert for Distributed into background_insert This will avoid amigibuity between general async INSERT's and INSERT into Distributed, which are indeed background, so new term express it even better. Mostly done with: $ git di HEAD^ --name-only | xargs sed -i -e 's/distributed_async_insert/distributed_background_insert/g' -e 's/async_insert_batch/background_insert_batch/g' -e 's/async_insert_split_batch_on_failure/background_insert_split_batch_on_failure/g' -e 's/async_insert_sleep_time_ms/background_insert_sleep_time_ms/g' -e 's/async_insert_max_sleep_time_ms/background_insert_max_sleep_time_ms/g' Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com> * Mark 02417_opentelemetry_insert_on_distributed_table as long CI: https://s3.amazonaws.com/clickhouse-test-reports/55978/7a6abb03a0b507e29e999cb7e04f246a119c6f28/stateless_tests_flaky_check__asan_.html Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com> --------- Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
12 KiB
slug | sidebar_position | sidebar_label |
---|---|---|
/zh/sql-reference/statements/system | 37 | SYSTEM |
SYSTEM Queries
RELOAD EMBEDDED DICTIONARIES]
重新加载所有内置字典。默认情况下内置字典是禁用的。 总是返回 ‘OK.’,不管这些内置字典的更新结果如何。
RELOAD DICTIONARIES
重载已经被成功加载过的所有字典。
默认情况下,字典是延时加载的( dictionaries_lazy_load),不是在服务启动时自动加载,而是在第一次使用dictGet函数或通过 SELECT from tables with ENGINE = Dictionary
进行访问时被初始化。这个命令 SYSTEM RELOAD DICTIONARIES
就是针对这类表进行重新加载的。
RELOAD DICTIONARY Dictionary_name
完全重新加载指定字典 dictionary_name
,不管该字典的状态如何(LOADED / NOT_LOADED / FAILED)。不管字典的更新结果如何,总是返回 OK.
字典的状态可以通过查询 system.dictionaries
表来检查。
SELECT name, status FROM system.dictionaries;
DROP DNS CACHE
重置CH的dns缓存。有时候(对于旧的ClickHouse版本)当某些底层环境发生变化时(修改其它Clickhouse服务器的ip或字典所在服务器的ip),需要使用该命令。 更多自动化的缓存管理相关信息,参见disable_internal_dns_cache, dns_cache_update_period这些参数。
DROP MARK CACHE
重置mark缓存。在进行ClickHouse开发或性能测试时使用。
DROP REPLICA
使用下面的语句可以删除已经无效的副本。
SYSTEM DROP REPLICA 'replica_name' FROM TABLE database.table;
SYSTEM DROP REPLICA 'replica_name' FROM DATABASE database;
SYSTEM DROP REPLICA 'replica_name';
SYSTEM DROP REPLICA 'replica_name' FROM ZKPATH '/path/to/table/in/zk';
该操作将副本的路径从Zookeeper中删除。当副本失效,并且由于该副本已经不存在导致它的元数据不能通过 DROP TABLE
从zookeeper中删除,这种情形下可以使用该命令。它只会删除失效或过期的副本,不会删除本地的副本。请使用 DROP TABLE
来删除本地副本。 DROP REPLICA
不会删除任何表,并且不会删除磁盘上的任何数据或元数据信息。
第1条语句:删除 database.table
表的 replica_name
副本的元数据
第2条语句:删除 database
数据库的 所有replica_name
副本的元数据
第3条语句:删除本地服务器所有 replica_name
副本的元数据
第4条语句:用于在表的其它所有副本都删除时,删除已失效副本的元数据。使用时需要明确指定表的路径。该路径必须和创建表时 ReplicatedMergeTree
引擎的第一个参数一致。
DROP UNCOMPRESSED CACHE
重置未压缩数据的缓存。用于ClickHouse开发和性能测试。
管理未压缩数据缓存的参数,使用以下的服务器级别设置 uncompressed_cache_size以及 query/user/profile
级别设置 use_uncompressed_cache
DROP COMPILED EXPRESSION CACHE
重置已编译的表达式缓存。用于ClickHouse开发和性能测试。
当 query/user/profile
启用配置项 compile-expressions时,编译的表达式缓存开启。
FLUSH LOGS
将日志信息缓冲数据刷入系统表(例如system.query_log)。调试时允许等待不超过7.5秒。当信息队列为空时,会创建系统表。
SYSTEM FLUSH LOGS [ON CLUSTER cluster_name]
RELOAD CONFIG
重新加载ClickHouse的配置。用于当配置信息存放在ZooKeeper时。
SYSTEM RELOAD CONFIG [ON CLUSTER cluster_name]
SHUTDOWN
关闭ClickHouse服务(类似于 service clickhouse-server stop
/ kill {$pid_clickhouse-server}
)
KILL
关闭ClickHouse进程 ( kill -9 {$ pid_clickhouse-server}
)
Managing Distributed Tables
ClickHouse可以管理 distribute表。当用户向这类表插入数据时,ClickHouse首先为需要发送到集群节点的数据创建一个队列,然后异步的发送它们。你可以维护队列的处理过程,通过STOP DISTRIBUTED SENDS, FLUSH DISTRIBUTED, 以及 START DISTRIBUTED SENDS。你也可以设置 distributed_foreground_insert
参数来以同步的方式插入分布式数据。
STOP DISTRIBUTED SENDS
当向分布式表插入数据时,禁用后台的分布式数据分发。
SYSTEM STOP DISTRIBUTED SENDS [db.]<distributed_table_name> [ON CLUSTER cluster_name]
FLUSH DISTRIBUTED
强制让ClickHouse同步向集群节点同步发送数据。如果有节点失效,ClickHouse抛出异常并停止插入操作。当所有节点都恢复上线时,你可以重试之前的操作直到成功执行。
SYSTEM FLUSH DISTRIBUTED [db.]<distributed_table_name> [ON CLUSTER cluster_name]
START DISTRIBUTED SENDS
当向分布式表插入数据时,允许后台的分布式数据分发。
SYSTEM START DISTRIBUTED SENDS [db.]<distributed_table_name> [ON CLUSTER cluster_name]
Managing MergeTree Tables
ClickHouse可以管理 MergeTree表的后台处理进程。
STOP MERGES
为MergeTree系列引擎表停止后台合并操作。
SYSTEM STOP MERGES [ON CLUSTER cluster_name] [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]
:::note
DETACH / ATTACH
表操作会在后台进行表的merge操作,甚至当所有MergeTree表的合并操作已经停止的情况下。
:::
START MERGES
为MergeTree系列引擎表启动后台合并操作。
SYSTEM START MERGES [ON CLUSTER cluster_name] [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]
STOP TTL MERGES
根据 TTL expression,为MergeTree系列引擎表停止后台删除旧数据。
不管表存在与否,都返回 OK.
。当数据库不存在时返回错误。
SYSTEM STOP TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name]
START TTL MERGES
根据 TTL expression,为MergeTree系列引擎表启动后台删除旧数据。不管表存在与否,都返回 OK.
。当数据库不存在时返回错误。
SYSTEM START TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name]
STOP MOVES
根据 TTL expression,为MergeTree系列引擎表停止后台移动数据。不管表存在与否,都返回 OK.
。当数据库不存在时返回错误。
SYSTEM STOP MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name]
START MOVES
根据 TTL expression,为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>
Managing ReplicatedMergeTree Tables
管理 ReplicatedMergeTree表的后台复制相关进程。
STOP FETCHES
停止后台获取 ReplicatedMergeTree
系列引擎表中插入的数据块。
不管表引擎类型如何或表/数据库是否存,都返回 OK.
。
SYSTEM STOP FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]
START FETCHES
启动后台获取 ReplicatedMergeTree
系列引擎表中插入的数据块。
不管表引擎类型如何或表/数据库是否存,都返回 OK.
。
SYSTEM START FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]
STOP REPLICATED SENDS
停止通过后台分发 ReplicatedMergeTree
系列引擎表中新插入的数据块到集群的其它副本节点。
SYSTEM STOP REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]
START REPLICATED SENDS
启动通过后台分发 ReplicatedMergeTree
系列引擎表中新插入的数据块到集群的其它副本节点。
SYSTEM START REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]
STOP REPLICATION QUEUES
停止从Zookeeper中获取 ReplicatedMergeTree
系列表的复制队列的后台任务。可能的后台任务类型包含:merges, fetches, mutation,带有 ON CLUSTER
的ddl语句
SYSTEM STOP REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]
START REPLICATION QUEUES
启动从Zookeeper中获取 ReplicatedMergeTree
系列表的复制队列的后台任务。可能的后台任务类型包含:merges, fetches, mutation,带有 ON CLUSTER
的ddl语句
SYSTEM START REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name]
SYNC REPLICA
直到 ReplicatedMergeTree
表将要和集群的其它副本进行同步之前会一直运行。如果当前对表的获取操作禁用的话,在达到 receive_timeout
之前会一直运行。
SYSTEM SYNC REPLICA [db.]replicated_merge_tree_family_table_name [STRICT | LIGHTWEIGHT | PULL]
RESTART REPLICA
重置 ReplicatedMergeTree
表的Zookeeper会话状态。该操作会以Zookeeper为参照,对比当前状态,有需要的情况下将任务添加到ZooKeeper队列。
基于ZooKeeper的日期初始化复制队列,类似于 ATTACH TABLE
语句。短时间内不能对表进行任何操作。
SYSTEM RESTART REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name
RESTART REPLICAS
重置所有 ReplicatedMergeTree
表的ZooKeeper会话状态。该操作会以Zookeeper为参照,对比当前状态,有需要的情况下将任务添加到ZooKeeper队列。