ClickHouse学习系列之七【系统命令介绍】
背景
前面介绍了ClickHouse相关的系列文章,该系列文章包括了安装、权限管理、副本分片、配置说明等。这次介绍一些ClickHouse相关的系统命令,如重载配置文件、关闭服务和进程、停止和启动后台任务等。具体的信息可以看官方文档说明,顺也说明下set和optimize的命令。
说明
SYSTEM命令
- RELOAD EMBEDDED DICTIONARIES重新加载所有内置字典,默认是禁用的,总是返回 OK。
:) SYSTEM RELOAD EMBEDDED DICTIONARIES;
- RELOAD DICTIONARIES重载已经被成功加载过的所有字典。默认情况下,字典是延时加载的( dictionaries_lazy_load),不是在服务启动时自动加载,而是在第一次使用dictGet函数或通过
SELECT from tables with ENGINE = Dictionary进行访问时被初始化。这个命令就是针对这类表进行重新加载的。
:) SYSTEM RELOAD DICTIONARIES;
- RELOAD DICTIONARY重新加载指定字典 dictionary_name,不管该字典的状态如何(LOADED/NOT_LOADED/FAILED),总是返回OK。字典的状态可以通过查询 system.dictionaries表来检查。
:) SYSTEM RELOAD DICTIONARY Dictionary_name;
其中 Dictionary_name 的名字和状态可以通过查询
system.dictionaries表来获得。 RELOAD MODELS
如果在不重新启动服务器的情况下更新了配置,通过该命令重新加载所有 CatBoost 模型。:) SYSTEM RELOAD MODELS;
- RELOAD MODEL
如果在不重新启动服务器的情况下更新了配置,通过该命令重新加载 指定的CatBoost 模型模型名称。
:) SYSTEM RELOAD MODEL <model_name>
- DROP DNS CACHE重置dns缓存。当Clickhouse服务器的ip或字典所在服务器的ip发生变化,需要使用该命令。
:) SYSTEM DROP DNS CACHE;
- DROP MARK CACHE重置mark缓存。在进行ClickHouse开发或性能测试时使用。
:) SYSTEM DROP MARK CACHE;
- DROP UNCOMPRESSED CACHE重置未压缩数据的缓存。用于ClickHouse开发和性能测试。
:) SYSTEM DROP UNCOMPRESSED CACHE;
- DROP COMPILED EXPRESSION CACHE重置已编译的表达式缓存。用于ClickHouse开发和性能测试。
:) SYSTEM DROP COMPILED EXPRESSION CACHE;
- DROP REPLICA删除已经无效的副本,不会删除本地副本和表。
-- 删除 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不会删除任何表,并且不会删除磁盘上的任何数据或元数据信息。 - FLUSH LOGS将日志信息缓冲数据刷入系统表(system.query_log)。调试时允许等待不超过7.5秒。当信息队列为空时,会创建系统表。
:) SYSTEM FLUSH LOGS;
- RELOAD CONFIG重新加载ClickHouse的配置。用在当配置信息存放在ZooKeeper的时候
:) SYSTEM RELOAD CONFIG;
- SHUTDOWN关闭ClickHouse服务(类似于
service clickhouse-server stop/kill {$pid_clickhouse-server})。
:) SYSTEM SHUTDOWN;
- KILL关闭ClickHouse进程 ( kill -9 {$ pid_clickhouse-server})。
:) SYSTEM KILL;
- STOP DISTRIBUTED SENDS当向分布式表插入数据时,禁用后台的分布式数据分发。
:) SYSTEM STOP DISTRIBUTED SENDS [db.]<distributed_table_name>
- FLUSH DISTRIBUTED强制让ClickHouse同步向集群节点发送数据。如果有节点失效,ClickHouse抛出异常并停止插入操作。当所有节点都恢复上线时,你可以重试之前的操作直到成功执行。
:) SYSTEM FLUSH DISTRIBUTED [db.]<distributed_table_name>
- START DISTRIBUTED SENDS当向分布式表插入数据时,允许后台的分布式数据分发。
:) SYSTEM START DISTRIBUTED SENDS [db.]<distributed_table_name>
- STOP MERGES为MergeTree系列引擎表停止后台合并操作。
:) SYSTEM STOP MERGES [[db.]merge_tree_family_table_name]
- START MERGES为MergeTree系列引擎表启动后台合并操作。
:) SYSTEM START MERGES [[db.]merge_tree_family_table_name];
- STOP TTL MERGES根据 TTL表达式,为MergeTree系列引擎表停止后台删除旧数据。不管表存在与否,都返回 OK。当数据库不存在时返回错误。
:) SYSTEM STOP TTL MERGES [[db.]merge_tree_family_table_name]
- START TTL MERGES根据 TTL表达式,为MergeTree系列引擎表开启后台删除旧数据。不管表存在与否,都返回 OK。当数据库不存在时返回错误。
:) SYSTEM START TTL MERGES [[db.]merge_tree_family_table_name]
- STOP MOVES根据 TTL表达式为 MergeTree 系列中的表提供带有 TO VOLUME 或 TO DISK 子句停止后台移动数据。不管表存在与否,都返回
OK.。当数据库不存在时返回错误。
:) SYSTEM STOP MOVES [[db.]merge_tree_family_table_name]
- START MOVES根据 TTL表达式为 MergeTree 系列中的表提供带有 TO VOLUME 或 TO DISK 子句开启后台移动数据。不管表存在与否,都返回
OK.。当数据库不存在时返回错误。:) SYSTEM STOP MOVES [[db.]merge_tree_family_table_name]
- STOP FETCHES停止后台获取ReplicatedMergeTree系列引擎表中插入的数据块。不管表引擎类型如何或表/数据库是否存,都返回 OK。
:) SYSTEM STOP FETCHES [[db.]replicated_merge_tree_family_table_name]
- START FETCHES开启后台获取ReplicatedMergeTree系列引擎表中插入的数据块。不管表引擎类型如何或表/数据库是否存,都返回 OK。
:) SYSTEM START FETCHES [[db.]replicated_merge_tree_family_table_name]
- STOP REPLICATED SENDS停止通过后台分发ReplicatedMergeTree系列引擎表中新插入的数据块到集群的其它副本节点。
:) SYSTEM STOP REPLICATED SENDS [[db.]replicated_merge_tree_family_table_name]
- START REPLICATED SENDS开启通过后台分发ReplicatedMergeTree系列引擎表中新插入的数据块到集群的其它副本节点。
:) SYSTEM START REPLICATED SENDS [[db.]replicated_merge_tree_family_table_name]
- STOP REPLICATION QUEUES停止从Zookeeper中获取ReplicatedMergeTree系列表的复制队列的后台任务。可能的后台任务类型包含:merges, fetches, mutation,带有
ON CLUSTER的ddl语句。
:) SYSTEM STOP REPLICATION QUEUES [[db.]replicated_merge_tree_family_table_name]
- START REPLICATION QUEUES开启从Zookeeper中获取ReplicatedMergeTree系列表的复制队列的后台任务。可能的后台任务类型包含:merges, fetches, mutation,带有
ON CLUSTER的ddl语句。
:) SYSTEM START REPLICATION QUEUES [[db.]replicated_merge_tree_family_table_name]
- SYNC REPLICA等到ReplicatedMergeTree表和集群中的其它副本进行同步之前会一直运行。如果当前对表的获取操作禁用的话,在达到
receive_timeout之前会一直运行。
:) SYSTEM SYNC REPLICA [db.]replicated_merge_tree_family_table_name
- RESTART REPLICA重置ReplicatedMergeTree表的Zookeeper会话状态。该操作会以Zookeeper为参照,对比当前状态,有需要的情况下将任务添加到ZooKeeper队列。基于ZooKeeper的日期初始化复制队列,类似于 ATTACH TABLE语句。短时间内不能对表进行任何操作。
:) SYSTEM RESTART REPLICA [db.]replicated_merge_tree_family_table_name
- RESTORE REPLICA如果数据 [可能] 存在但 Zookeeper 元数据丢失,则恢复副本,仅适用于只读 ReplicatedMergeTree 表。适用于出现以下这些情况:
-- 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_nameeg:
-- 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
- RESTART REPLICAS重置所有ReplicatedMergeTree表的ZooKeeper会话状态。该操作会以Zookeeper为参照,对比当前状态,有需要的情况下将任务添加到ZooKeeper队列。
:) SYSTEM RESTART REPLICAS;
SET命令
- SET Statement:修改参数值
--设置参数
:) 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 :为用户设置默认角色
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 命令:执行合并分区的操作
- OPTIMIZE Statement:仅支持MergeTree 系列、MaterializedView 和 Buffer 引擎。
:) 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学习系列之七【系统命令介绍】的更多相关文章
- SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理
前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
- Dubbo学习系列之七(分布式订单ID方案)
既然选择,就注定风雨兼程! 开始吧! 准备:Idea201902/JDK11/ZK3.5.5/Gradle5.4.1/RabbitMQ3.7.13/Mysql8.0.11/Lombok0.26/Erl ...
- ClickHouse学习系列之三【配置文件说明】
背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在介绍了安装和用户权限管理之后,本文对其配置文件做下相关的 ...
- ClickHouse学习系列之四【副本&分片部署说明】
背景 以前介绍过ClickHouse相关的系列文章,现在继续说明.本文开始说明ClickHouse的副本与分片,和其他数据库一样,ClickHouse也会出现单节点故障和单节点资源到达上限的情况.所以 ...
- ClickHouse学习系列之五【系统库system说明】
背景 之前介绍过ClickHouse相关的系列文章,现在ClickHouse已经能正常使用起来了,包括副本和分片.因为ClickHouse已经可以提供服务了,现在需要关心的就是服务期间该数据库的各项性 ...
- ClickHouse学习系列之八【数据导入迁移&同步】
背景 在介绍了一些ClickHouse相关的系列文章之后,大致对ClickHouse有了比较多的了解.它是一款非常优秀的OLAP数据库,为了更好的来展示其强大的OLAP能力,本文将介绍一些快速导入大量 ...
- ClickHouse学习系列之一【安装说明】
背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.按照习惯第一步先安装,本文对其用户权限管理方面进行梳理说明 ...
- ClickHouse学习系列之二【用户权限管理】
背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在安装完之后首先做的应该如何设置用户密码以及权限控制.因为 ...
随机推荐
- [bug] kafka启动报错 could not be established. Broker may not be available.
原因 配置文件和命令行中的主机名不一致,建议都用ip地址 参考 https://blog.csdn.net/getyouwant/article/details/79000524
- [转载]好好好centos7 安装 KVM
centos7 安装 KVM 2019-04-03 09:58:24 34 0 0 一.基础环境准备 centos7.X 最小环境安装 关闭selinux # vi /etc ...
- im-chooser重新选择输入法框架在终端执行im-chooser命令
CentOS 7安装图像桌面.Ibus拼音输入法一.图形桌面安装1.安装额外包yum源(extra package for Enterprise Linux) yum install epel-rel ...
- Yarn 集群环境 HA 搭建
环境准备 确保主机搭建 HDFS HA 运行环境 步骤一:修改 mapred-site.xml 配置文件 [root@node-01 ~]# cd /root/apps/hadoop-3.2.1/et ...
- 并发王者课-青铜7:顺藤摸瓜-如何从synchronized中的锁认识Monitor
在前面的文章中,我们已经体验过synchronized的用法,并对锁的概念和原理做了简单的介绍.然而,你可能已经察觉到,有一个概念似乎总是和synchronized.锁这两个概念如影相随,很多人也比较 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十五)——集中式接口文档实现
之前有小伙伴在评论区留言说如何集成swagger,最开始没有想透给了对方一个似是而非的回答.实际上后来下来想了一下,用.NET5 提供的Source Generator其实可以很方便的实现接口集成.今 ...
- CSS 奇思妙想 | Single Div 绘图技巧
经常能看到有关 CSS 绘图的文章,譬如使用纯 HTML + CSS 绘制一幅哆啦 A 梦图画.实现的方式就是通过堆叠 div,一步一步实现图画中的一块一块.这种技巧本身没有什么问题,但是就是少了一些 ...
- 微信小程序在ios系统不兼容new Date('yyyy-mm-dd')
微信小程序中使用new Date('2021-04-01 10:11:20')来转换时间在苹果手机不生效 兼容写法为new Date('2021/04/01 10:11:20')
- Element-ui Popconfirm气泡确认框的确认及取消事件不生效
Element-ui 官方文档对 Popconfirm气泡确认框的一些属性及事件的描述不够详细,导致第一次使用时会遇到各种各样的问题 对确定事件及取消事件描述如下: 但是如果给组件绑定@confirm ...
- go语言json技巧
go语言json技巧 本文总结了在项目中遇到的那些关于go语言JSON数据与结构体之间相互转换的问题及解决办法. 基本的序列化 首先我们来看一下Go语言中json.Marshal()(系列化)与jso ...