前面介绍了ClickHouse相关的系列文章,该系列文章包括了安装、权限管理、副本分片、配置说明等。这次介绍一些ClickHouse相关的系统命令,如重载配置文件、关闭服务和进程、停止和启动后台任务等。具体的信息可以看官方文档说明,顺也说明下set和optimize的命令。
:) SYSTEM RELOAD EMBEDDED DICTIONARIES;
SELECT from tables with ENGINE = Dictionary
进行访问时被初始化。这个命令就是针对这类表进行重新加载的。:) SYSTEM RELOAD DICTIONARIES;
:) SYSTEM RELOAD DICTIONARY Dictionary_name;
其中 Dictionary_name 的名字和状态可以通过查询 system.dictionaries
表来获得。
RELOAD MODELS
如果在不重新启动服务器的情况下更新了配置,通过该命令重新加载所有 CatBoost 模型。
:) SYSTEM RELOAD MODELS;
:) SYSTEM RELOAD MODEL <model_name>
:) SYSTEM DROP DNS CACHE;
:) SYSTEM DROP MARK CACHE;
:) SYSTEM DROP UNCOMPRESSED CACHE;
:) SYSTEM DROP COMPILED EXPRESSION CACHE;
-- 删除 database.table 表的replica_name副本的元数据 :) SYSTEM DROP REPLICA ‘replica_name‘ FROM TABLE database.table; -- 删除 database 数据库的所有replica_name副本的元数据 :) SYSTEM DROP REPLICA ‘replica_name‘ FROM DATABASE database; -- 删除本地服务器所有 replica_name 副本的元数据 :) SYSTEM DROP REPLICA ‘replica_name‘; -- 用于在表的其它所有副本都删除时,删除已失效副本的元数据。使用时需要明确指定表的路径。该路径必须和创建表时ReplicatedMergeTree引擎的第一个参数一致。 :) SYSTEM DROP REPLICA ‘replica_name‘ FROM ZKPATH ‘/path/to/table/in/zk‘;
该操作将副本的路径从ZooKeeper中删除。当副本失效,并且由于该副本已经不存在导致它的元数据不能通过 DROP TABLE
从zookeeper中删除,这种情形下可以使用该命令。
它只会删除失效或过期的副本,不会删除本地的副本。请使用 DROP TABLE
来删除本地副本。 DROP REPLICA
不会删除任何表,并且不会删除磁盘上的任何数据或元数据信息。
:) SYSTEM FLUSH LOGS;
:) SYSTEM RELOAD CONFIG;
service clickhouse-server stop
/ kill {$pid_clickhouse-server}
)。:) SYSTEM SHUTDOWN;
:) SYSTEM KILL;
:) SYSTEM STOP DISTRIBUTED SENDS [db.]<distributed_table_name>
:) SYSTEM FLUSH DISTRIBUTED [db.]<distributed_table_name>
:) SYSTEM START DISTRIBUTED SENDS [db.]<distributed_table_name>
:) SYSTEM STOP MERGES [[db.]merge_tree_family_table_name]
:) SYSTEM START MERGES [[db.]merge_tree_family_table_name];
:) SYSTEM STOP TTL MERGES [[db.]merge_tree_family_table_name]
:) SYSTEM START TTL MERGES [[db.]merge_tree_family_table_name]
OK.
。当数据库不存在时返回错误。:) SYSTEM STOP MOVES [[db.]merge_tree_family_table_name]
OK.
。当数据库不存在时返回错误。:) SYSTEM STOP MOVES [[db.]merge_tree_family_table_name]
:) SYSTEM STOP FETCHES [[db.]replicated_merge_tree_family_table_name]
:) SYSTEM START FETCHES [[db.]replicated_merge_tree_family_table_name]
:) SYSTEM STOP REPLICATED SENDS [[db.]replicated_merge_tree_family_table_name]
:) SYSTEM START REPLICATED SENDS [[db.]replicated_merge_tree_family_table_name]
ON CLUSTER
的ddl语句。:) SYSTEM STOP REPLICATION QUEUES [[db.]replicated_merge_tree_family_table_name]
ON CLUSTER
的ddl语句。:) SYSTEM START REPLICATION QUEUES [[db.]replicated_merge_tree_family_table_name]
receive_timeout
之前会一直运行。:) SYSTEM SYNC REPLICA [db.]replicated_merge_tree_family_table_name
:) SYSTEM RESTART REPLICA [db.]replicated_merge_tree_family_table_name
-- ZooKeeper 根路径 / 丢失。 -- Replicas 路径/副本丢失。 -- 单个replica路径 /replicas/replica_name/ 丢失。
语法:
:) 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
eg:
-- Creating table on multiple servers 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) <- root loss. :) SYSTEM RESTART REPLICA test; -- Table will attach as readonly as metadata is missing. :) SYSTEM RESTORE REPLICA test; -- Need to execute on every replica, another way: RESTORE REPLICA test ON CLUSTER cluster
:) SYSTEM RESTART REPLICAS;
--设置参数 :) SET param = value --设置来自指定设置配置文件的所有值 :) SET profile = ‘profile-name-from-the-settings-file‘
不能以这种方式更改server的设置
SET ROLE Statement:设置当前用户的角色
SET ROLE {DEFAULT | NONE | role [,...] | ALL | ALL EXCEPT role [,...]}
SET DEFAULT ROLE {NONE | role [,...] | ALL | ALL EXCEPT role [,...]} TO {user|CURRENT_USER} [,...]
默认角色在用户登录时自动激活。 您只能将先前授予的角色设置为默认值。 如果该角色未授予用户,ClickHouse 将引发异常。
eg:
-- 为一个用户设置多个默认角色 :) SET DEFAULT ROLE role1, role2, ... TO user -- 将所有的角色设置为用户的默认值 :) SET DEFAULT ROLE ALL TO user -- 清除用户的默认角色 :) SET DEFAULT ROLE NONE TO user -- 将所有的角色设置为默认角色,其中一些角色除外 :) SET DEFAULT ROLE ALL EXCEPT role1, role2 TO user
:) OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION ID ‘partition_id‘] [FINAL] [DEDUPLICATE [BY expression]]
当 OPTIMIZE 与 ReplicatedMergeTree 系列表引擎一起使用时,ClickHouse 会创建一个合并任务并等待在所有节点上执行(启用replication_alter_partitions_sync)。
如果 OPTIMIZE 由于任何原因未执行合并,则不会通知客户端。 要启用通知,请使用 optimize_throw_if_noop 设置。
如果指定 PARTITION,则仅优化指定的分区。
如果指定 FINAL,即使所有数据都已在一个分区中,也会执行优化,强制合并。
如果指定 DEDUPLICATE,则完全相同的行(除非指定了 by-clause)将被删除重复(所有列都被比较),这仅对 MergeTree 引擎有意义。
BY 表达式
如果要对重复数据删除,可以明确指定列或使用 *、COLUMNS 或 EXCEPT 表达式的任意组合。
OPTIMIZE TABLE table DEDUPLICATE; -- 所有列 OPTIMIZE TABLE table DEDUPLICATE BY *; -- 除 MATERIALIZED 和 ALIAS 列外 OPTIMIZE TABLE table DEDUPLICATE BY colX,colY,colZ; -- 指定列 OPTIMIZE TABLE table DEDUPLICATE BY * EXCEPT colX; OPTIMIZE TABLE table DEDUPLICATE BY * EXCEPT (colX, colY); OPTIMIZE TABLE table DEDUPLICATE BY COLUMNS(‘column-matched-by-regex‘); OPTIMIZE TABLE table DEDUPLICATE BY COLUMNS(‘column-matched-by-regex‘) EXCEPT colX; OPTIMIZE TABLE table DEDUPLICATE BY COLUMNS(‘column-matched-by-regex‘) EXCEPT (colX, colY);
可以看官方的例子说明。
ClickHouse学习系列之七【system&set命令介绍】
原文:https://www.cnblogs.com/zhoujinyi/p/14963278.html