ClickHouse进阶(十八):clickhouse管理与运维-用户配置

news/2024/7/4 14:12:29

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容!

🏡个人主页:含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客

📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情!

👍点赞:赞同优秀创作,你的点赞是对我创作最大的认可!

⭐️ 收藏:收藏原创博文,让我们一起打造IT界的荣耀与辉煌!

✏️评论:留下心声墨迹,你的评论将是我努力改进的方向!

 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频


目录

1. 用户Profile

​​​​​​​2. 配置约束

​​​​​​​2. 用户定义


在之前使用clickhouse过程中为了简便我们使用的default默认用户,默认无密码登录模式,这显然不符合生产环境的要求。我们可以通过“/etc/clickhoue-server/user.xml”来配置用户相关配置项,此文件可以配置系统参数设置、用户定义、权限、以及熔断机制等。

​​​​​​​1. 用户Profile

用户Profile类似用户角色,可以预先在user.xml中为clickhouse定义多组profile角色,并为每组角色定义不同的配置项以实现配置的复用,例如:

<yandex>
	<!-- 配置profiles -->
	<profiles>
		<default><!-- 自定义角色,默认名称 -->
			<max_memory_usage>10000000000</max_memory_usage>
			<use_uncompressed_cache>0</use_uncompressed_cache>
		</default>
		<test1><!-- 自定义角色,默认名称 -->
			<distributed_product_mode>allow</distributed_product_mode>
		</test1>
		... ...
	</profiles>
	... ...
</yandex>
注意:
1.max_memory_usage:在单个clickhouse服务进程中,运行一次查询限制使用的最大内存用量,默认值为10G
2.use_uncompressed_cache:是否使用未压缩块的缓存,填写0或1。默认情况下,0(禁用)。
3.distributed_product_mode:当查询时包含分布式表join时,更改分布式子查询行为。allow允许使用子查询。

以上配置中我们定义了“default”和“test1”两组profile角色,在user.xml中配置用户时,我们就可以使用对应的角色。

注意:在<profiles>标签配置中,名称为“default”的profile将作为默认的配置被加载,所以必须有“default”角色。

​​​​​​​2. 配置约束

constraints标签可以设置一组约束条件,保证profile角色内的参数值不会被随意修改,约束条件有如下三种规则:

  1. Min:最小值约束,在设置相应参数的时候,取值不能小于该阈值。
  2. Max:最大值约束,在设置相应参数的时候,取值不能大于该阈值。
  3. Readonly:只读约束,该参数值不允许被修改。

例如,修改user.xml中<default>profile角色,如下:

<yandex>
	<!-- 配置profiles -->
	<profiles>
		<default><!-- 自定义角色,默认名称 -->
			<max_memory_usage>10000000000</max_memory_usage>
		  <distributed_product_mode>allow</distributed_product_mode>
			<constraints><!--配置约束-->
				<max_memory_usage>
					<min>5000000000</min>
					<max>20000000000</max>
				</max_memory_usage>
				<distributed_product_mode>
					<readonly/>
				</distributed_product_mode>
			</constraints>
		</default>
		... ...
	</profiles>
	... ...
</yandex>

从上面的配置我们可以看出,在default默认的profile角色内给两组参数设置了约束,配置完成之后可以直接登录clickhouse,尝试修改对应的值:

#修改使用最大内存
node1 :) set max_memory_usage=50;
 DB::Exception: Setting max_memory_usage shouldn't be less than 5000000000. (SETTING_CONSTRAINT_VIOLATION)

#修改distributed_product_mode的参数值
node1 :) set distributed_product_mode='deny';
 DB::Exception: Setting distributed_product_mode should not be changed. (SETTING_CONSTRAINT_VIOLATION)

以上我们可以看到配置约束成功阻止了预期外的修改。

注意:在default中默认定义的constraints约束,将作为默认全局约束,自动被其他profile继承。

​​​​​​​2. 用户定义

在user.xml中可以使用users标签配置自定义用户,我们可以在user.xml中看到<users>标签下有default用户,我们之前使用默认就是此用户。下面我们配置一个新的用户“zhangsan”,user.xml配置如下:

<yandex>
... ...
	<users>
		<default>
			... ...
		</default>
		<zhangsan>
			<!-- 设置密码 -->
			<password>123456</password>
			
			<!-- 设置用户允许登录的网络地址 -->
			<networks>
				<!-- 表示任意节点登录 -->
				<ip>::/0</ip>
			</networks>
			
			<!-- 用户使用的profile 角色 -->
			<profile>default</profile>
			
			<!-- 设置熔断机制 -->
			<quota>default</quota>
			
		</zhangsan>
	</users>
</yandex>

以上配置完成后,不需重启clickhouse,使用用户zhangsan登录clickhouse,操作如下:

[root@node1 ~]# clickhouse-client -u zhangsan --password 123456

用户zhangsan有密码登录生效。


👨‍💻如需博文中的资料请私信博主。



http://lihuaxi.xjx100.cn/news/1555930.html

相关文章

idea 使用 groovyScript 获取方法参数列表生成方法注释模板遇到的问题。

1、网上好多使用groovyScript来设置获取方法列表生成注释模板的代码&#xff0c;我这篇文章的是想讨论下这种方式存在的一个问题&#xff0c;希望有大佬能提供一个解决方案。 2、设置步骤什么的就省略了直接描述问题。 3、groovyScript代码段如下&#xff1a; groovyScript(…

在windows上执行ssh-keygen报错Bad permissions

在windows上执行ssh-keygen报错Bad permissions&#xff1a;如下 C:\Users\xiaoming>ssh-keygen -p -m PEM -f C:\mywork\id_rsa Bad permissions. Try removing permissions for user: BUILTIN\\Users (S-1-6-92-143) on file C:/mywork/id_rsa.WARNING: UNPROTECTED PRIV…

vue模板语法上集->插值,指令,过滤器,计算属性监听属性,vue购物车

插值指令过滤器计算属性&监听属性vue购物车 1.插值 <!DOCTYPE html> <html><head><meta charset"utf-8"><script src"https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script><script src&quo…

掷骰子的多线程应用程序2基于互斥量的线程同步(复现《Qt C++6.0》)

说明&#xff1a;在复现过程中出现两点问题&#xff08;1&#xff09;run()函数中对m_diceValued的赋值&#xff08;2&#xff09;do_timeOut()函数中没有对m_seq、m_diceValued进行定义。修改后的复现程序如下所示&#xff1a; 主线程&#xff1a; .h #pragma once#include…

电脑提示找不到msvcr120.dll无法继续执行代码,哪个修复方法更简单

电脑报错“找不到msvcr120.dll无法继续执行代码”。我相信&#xff0c;对于许多使用电脑的朋友来说&#xff0c;这个问题并不陌生。我们在使用电脑的过程中&#xff0c;可能会遇到各种各样的问题&#xff0c;其中就包括了找不到msvcr120.dll这个文件的问题。那么&#xff0c;这…

分界线-积木游戏 demo

目录 匿名信 题目描述: 输入描述 输出描述: 示例: Java实现 (期待看官能够修复一下, 害): 二、积木游戏 题目描述: 输入描述 输出描述 补充说明 示例 Java代码实现 匿名信 题目描述: 电视剧《分界线》里面有一个片段&#xff0c;男主为了向警察透露案件细节&…

echarts散点图的圆点设置成不同的自定义图片且使用本地静态资源图片的写法

现在要实现的功能是&#xff1a; 散点图的每个点都不再是小圆点而是一张图片&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 即&#xff1a; 散点图的圆点设置成不同的自定义图片、且使用本地静态资源图片的写法 首先举个栗子&#xff0c;假设有个echarts散点…

C++跳坑记:位移超出范围的处理

在C编程中&#xff0c;数据类型的选择不仅影响内存占用和性能&#xff0c;还可以对某些操作的结果产生意想不到的影响。今天&#xff0c;我将分享一个关于C在不同变量类型下位移操作结果的发现。 位移操作是C中常见的对整数的高效操作之一。然而&#xff0c;我们可能会忽视一个…