clickhouse配置项config.xml详解

您所在的位置:网站首页 提瓦特大陆是什么游戏 clickhouse配置项config.xml详解

clickhouse配置项config.xml详解

2023-09-10 02:47| 来源: 网络整理| 查看: 265

调研学习clickhouse,上一章介绍了clickhouse的配置项users.xml,这一章介绍另一大项config.xml

从clickhouse的官网看,clickhouse的配置参数主要分了两大方面,一个是config.xml中的服务器配置参数(Server Settings),另一个是常规配置参数(setttings)。

这里先介绍服务器配置参数(Server Settings)

 

目录

服务器配置参数介绍

配置文件

覆写

替代

用户设置

举例

注意

服务器设置

builtin_dictionaries_reload_interval

compression

custom_settings_prefixes

core_dump

default_database

default_profile

dictionaries_config

dictionaries_lazy_load

format_schema_path

graphite

graphite_rollup

http_port/https_port

http_server_default_response

include_from

interserver_http_port

interserver_http_host

interserver_http_credentials

keep_alive_timeout

listen_host

logger

send_crash_reports

macros

mark_cache_size

max_server_memory_usage

max_server_memory_usage_to_ram_ratio

max_concurrent_queries

max_concurrent_queries_for_all_users

max_connections

max_open_files

max_table_size_to_drop

max_thread_pool_size

merge_tree

replicated_merge_tree

openSSL

part_log

path

prometheus

query_log

query_thread_log

text_log

trace_log

query_masking_rules

remote_servers

timezone

tcp_port

tcp_port_secure

mysql_port

tmp_path

tmp_policy

uncompressed_cache_size

user_files_path

users_config

zookeeper

use_minimalistic_part_header_in_zookeeper

disable_internal_dns_cache

dns_cache_update_period

access_control_path

user_directories

  服务器配置参数介绍

本节包含无法在会话或查询级别更改的服务器设置的说明。

这些设置默认存储在/etc/clickhouse-server/config.xml中。

在研究设置之前,先请阅读“配置文件”部分,并注意使用替代(incl和optional属性)。

 

配置文件

ClickHouse支持多文件配置管理。主服务器配置文件是/etc/clickhouse-server/config.xml。其他文件必须在/etc/clickhouse-server/config.d目录中。

所有配置文件均应为XML格式。而且,它们通常应具有相同的根元素。

覆写

主配置文件中指定的某些设置可以在其他配置文件中覆盖:

replace或remove属性,用于这些配置文件的元素指定属性。如果未指定,则它将递归合并元素的内容,替换重复子元素的值。如果replace指定,则将整个元素替换为指定的元素。如果remove指定,则删除该元素。 替代

该配置还可以定义“substitutions”(替代)。

如果元素具有incl属性,将使用文件中属性对应的值。默认情况下,替代文件的文件目录是/etc/metrika.xml,这个可以在服务器设置的include_from属性中被更改。

在此文件中,替换值被保存在/yandex/substitution_name元素中。如果incl中指定的替代不存在,则将其记录在日志中。为防止ClickHouse记录缺少的替代项,请指定:optional= true属性。(例如,宏设置)。

可以从ZooKeeper中进行替换,指定属性from_zk =“ /path/to/node”。元素值将替换为ZooKeeper中/path/to/node上节点的内容。还可以将整个XML子树放在ZooKeeper节点上,并将其完全插入到source元素中。

用户设置

 config.xml文件可以使用users设置,为profiles和quotas指定单独的配置。此配置的相对路径在'users_config'元素中设置。默认情况下,它是users.xml。如果省略users_config,则直接在config.xml中指定。

用户配置可以指定在config.xml或者指定为保存在config.d/中的和config.xml类似的单独文件。

用户设置的目录名称被定义users_config中(不带.xml后缀)。

默认使用目录users.d,users_config默认使用users.xml。

举例

可以为每个用户使用单独的配置文件,如下所示:

$ cat /etc/clickhouse-server/users.d/alice.xml analytics ::/0 ... analytics 注意

对于每个配置文件,服务器启动时会生成file-preprocessed.xml 。这些文件包含所有已完成的替换和替代,仅供参考。

如果在配置文件中使用了ZooKeeper替换项,但是ZooKeeper在服务器启动时不可用,则服务器将从预处理文件中加载配置。

 

 

服务器设置 builtin_dictionaries_reload_interval

重新加载内置词典的时间间隔(以秒为单位),默认3600。可以在不重新启动服务器的情况下“即时”修改词典。

3600 compression

官方说如果对clickhouse不是很熟悉,不要进行改动。

MergeTree引擎表的数据压缩设置。配置模板如:

... ... ... ...

部分说明:

min_part_size –数据部分的最小大小。min_part_size_ratio –数据部分大小与表大小的比率。method–压缩方法。可接受的值:lz4或zstd。

可以配置多个部分。

满足条件时的操作:

如果数据部分与条件集匹配,则ClickHouse使用指定的压缩方法。如果数据部分匹配多个条件集,则ClickHouse将使用第一个匹配的条件集。

举例:

10000000000 0.01 zstd custom_settings_prefixes

自定义设置的前缀列表。(在users.xml中有提及)前缀必须用逗号分隔。

(没有其他介绍,我感觉很像自定义变量、宏定义之类的,不能长久存在,只在当前连接有效,退出再连就没有了)

举例:

custom_ SET custom_a = 123; SELECT getSetting('custom_a'); core_dump

核心转储文件大小的软限制,默认情况下为1 GB。

1073741824

(硬限制是通过系统工具配置的)

default_database

默认数据库。

要获取数据库列表,请使用SHOW DATABASES查询。

default default_profile

默认设置配置文件。

设置配置文件位于参数中指定的文件中user_config。

default dictionaries_config

外部词典的配置文件的路径。

路径:

指定绝对路径或相对于服务器配置文件的路径。该路径可以包含通配符*和?

另请参阅“外部词典”。

*_dictionary.xml dictionaries_lazy_load

延迟加载字典。

如果为true,则每个字典都在首次使用时创建。如果字典创建失败,则正在使用字典的函数将引发异常。

如果为false,则在服务器启动时将创建所有词典,如果有错误,则服务器将关闭。

默认值为true。

true format_schema_path

包含输入数据方案(例如CapnProto格式的方案)的目录路径。

format_schemas/ graphite

发送数据到Graphite。它是一款企业级监控。 

设定:

localhost -- Graphite服务器 42000 -- Graphite服务器上的端口 0.1 -- 发送超时时间,以秒为单位 60 -- 发送间隔,以秒为单位 one_min -- 密钥的前缀 true -- 从system.metrics表发送数据 true -- 从system.events表发送在该时间段内累积的增量数据 false -- 从system.events表发送累积数据 true -- 从system.asynchronous_metrics表发送数据

可以配置多个子句。例如,您可以使用它以不同的时间间隔发送不同的数据。

graphite_rollup

数据汇总设置

max 0 60 3600 300 86400 3600

更多详细信息,请参见GraphiteMergeTree.

http_port/https_port

通过HTTP连接到服务器的端口。

如果指定了https_port,则必须配置openSSL。如果指定了http_port,则即使已设置openSSL配置,也会将其忽略。 9999 http_server_default_response

访问ClickHouse HTTP服务器时默认显示的页面。默认值为“OK”(末尾有换行符)

例如:当访问http://localhost: http_port.时打开https://tabix.io/

]]> include_from

替换文件的路径。

有关更多信息,请参见“配置文件”一节。

默认为/etc/metrica.xml

/etc/metrica.xml interserver_http_port

在ClickHouse服务器之间交换数据的端口。

9009 interserver_http_host

其他服务器可以用来访问该服务器的主机名。如果省略,则其定义方法与hostname -f命令相同。

example.yandex.ru interserver_http_credentials

在使用Replicated *引擎进行复制期间进行身份验证的用户名和密码。

这些凭据仅用于副本之间的通信,与ClickHouse客户端的凭据无关。

服务器会在连接副本时检查凭据,并在连接到其他副本时使用相同的凭据。 因此,对于群集中的所有副本,应将这些凭据设置为相同。

默认不使用身份验证。

本节包含以下参数:

user - 用户名。password —密码。 admin 222 keep_alive_timeout

ClickHouse在关闭连接之前等待传入请求的秒数。默认为3秒。

3 listen_host

限制来源主机的请求, 如果要服务器回答所有请求,请指定“::” :

::1 127.0.0.1 logger

日志记录设置。选项组里的设置有:level、log、errorlog、size、count:

trace --日志记录级别。可接受的值: trace, debug, information, warning, error /var/log/clickhouse-server/clickhouse-server.log --日志文件,根据级别包含所有条目 /var/log/clickhouse-server/clickhouse-server.err.log -- 错误日志文件 1000M -- 文件的大小。适用于loganderrorlog,文件达到大小后,ClickHouse将对其进行存档并重命名,并在其位置创建一个新的日志文件 10 -- ClickHouse存储的已归档日志文件的数量

还支持写入系统日志。配置示例:

1 -- 写入系统日志 syslog.remote:10514 -- syslogd的主机[:port]。如果省略,则使用本地守护程序 myhost.local -- 可选,从中发送日志的主机的名称。 LOG_LOCAL6 -- syslog关键字,其大写字母带有“ LOG_”前缀:(LOG_USER,LOG_DAEMON,LOG_LOCAL3,依此类推) syslog -- 格式。可能的值:bsd和syslog send_crash_reports

通过Sentry(一个应用程序监视和错误跟踪软件)选择将崩溃报告发送给ClickHouse核心开发人员团队的设置。

服务器将需要通过IPv4访问公共Internet(Sentry不支持编写IPv6时),此功能才能正常运行。

enabled–false默认情况下,启用该功能的布尔标志。设置为true允许发送崩溃报告。endpoint–您可以覆盖Sentry端点URL,以发送故障报告。它可以是单独的Sentry帐户,也可以是您自己托管的Sentry实例。使用Sentry DSN语法。anonymize -避免将服务器主机名附加到崩溃报告中。http_proxy -配置HTTP代理以发送崩溃报告。debug -将Sentry客户端设置为调试模式。tmp_path -临时崩溃报告状态的文件系统路径。 true macros

复制表的参数替换,如果不使用复制表,则可以省略。有关更多信息,请参见“创建复制表”一节。

mark_cache_size

标记缓存的大小,用于MergeTree系列的表中。  以字节为单位,共享服务器的缓存,并根据需要分配内存。缓存大小必须至少为5368709120(5G)。 

5368709120 max_server_memory_usage

限制ClickHouse服务器的总RAM使用量。

可能的值:

正整数。0(自动)。

默认值:0。

注:默认时,max_server_memory_usage值计算为memory_amount * max_server_memory_usage_to_ram_ratio

和users.xml中的max_memory_usage不同的是,这个是针对整个集群所有用户的,另一个是针对指定用户的

 

max_server_memory_usage_to_ram_ratio

可用于Clickhouse的,服务器的总物理RAM量的比例。如果服务器尝试利用更多资源,则会将内存减少到适当的数量。

可能值:

正的double类型0

默认值:0。

在具有低RAM和交换max_server_memory_usage_to_ram_ratio容量的主机上,您可能需要设置大于1的值。

0.9 max_concurrent_queries

同时处理的最大请求数。

100 max_concurrent_queries_for_all_users

如果此设置的值小于或等于当前同时处理的查询数,则抛出异常。

举例:

max_concurrent_queries_for_all_users被设置成99,然后满了,这时候数据库管理员可以为了他自己调大这个值来进行查询,这样即使超载也能跑。

修改一个查询或用户的设置不会影响其他查询。

默认值:0。

99

(我看system.settings表里没有这个值,有另一个值max_concurrent_queries_for_user)

max_connections

最大连接数。

4096 max_open_files

打开最大的文件数,默认最大值

建议在Mac OS X中使用此选项,因为该getrlimit()函数返回的值不正确。

262144 max_table_size_to_drop

删除表的限制,默认50G,0表示不限制。

如果MergeTree表的大小超过max_table_size_to_drop(以字节为单位),则无法使用DROP查询将其删除。

如果仍然需要删除表而不重新启动ClickHouse服务器,请创建/flags/force_drop_table文件并运行DROP查询。

0 max_thread_pool_size

全局线程池中的最大线程数。

预设值:10000。

12000 merge_tree

对MergeTree中的表进行调整,有关更多信息,请参见MergeTreeSettings.h头文件。

5 replicated_merge_tree

对ReplicatedMergeTree中的表进行微调。

此设置具有更高的优先级。

有关更多信息,请参见MergeTreeSettings.h头文件。

5 openSSL

SSL客户端/服务器配置。

libpoco库提供了对SSL的支持。该接口在文件SSLManager.h中进行了描述

/etc/clickhouse-server/server.crt --PEM格式的客户端/服务器证书文件的路径。如果privateKeyFile包含证书,则可以忽略它。 /etc/clickhouse-server/server.key --具有PEM证书的秘密密钥的文件的路径。该文件可能同时包含密钥和证书。 /etc/clickhouse-server/dhparam.pem none --检查节点证书的方法。详细信息在Context类的描述中。可能的值:none, relaxed, strict, once. true --指示将使用OpenSSL的内置CA证书。可接受的值:true,false true --启用或禁用缓存会话。必须与sessionIdContext结合使用。可接受的值:true,false。 sslv2,sslv3 --不允许使用的协议。 true ----首选服务器密码 true --指示将使用OpenSSL的内置CA证书。可接受的值:true,false true -- --启用或禁用缓存会话。必须与sessionIdContext结合使用。可接受的值:true,false。 sslv2,sslv3 --不允许使用的协议。 true --首选服务器密码 --用于验证无效证书的类 RejectCertificateHandler part_log

记录与MergeTree关联的事件。例如,添加或合并数据。您可以使用日志来模拟合并算法并比较其特征。您可以可视化合并过程。

查询记录在system.part_log表中,而不记录在单独的文件中。您可以在table参数中配置此表的名称。

system --库名 part_log --表名 toMonday(event_date) --自定义分区键 7500 --将数据从内存中的缓冲区刷新到表的时间间隔,单位毫秒。 path

数据的目录路径。

注意:斜杠是必需的。

/var/lib/clickhouse/ prometheus

从Prometheus公开度量数据以进行刮擦。

设定:

endpoint– HTTP端点,用于通过Prometheus服务器抓取度量标准。从...开始 '/'。port–的端口endpoint。metrics–设置为从system.metrics表公开指标的标志。events–设置为从system.events表公开指标的标志。asynchronous_metrics–设置为从system.asynchronous_metrics表中公开当前指标值的标志。 /metrics 8001 true true true query_log

通过log_queries = 1设置,记录接收到的查询。查询记录在system.query_log表中,而不记录在单独的文件中。可以在table参数中更改表的名称。

如果在更新ClickHouse服务器时查询日志的结构发生了更改,则具有旧结构的表将重命名,并自动创建一个新表。

partition_by—系统表的自定义分区键。如果用engine定义,则无法使用。engine-系统表的MergeTree引擎定义。如果用partition_by定义,则无法使用。 system --库名 query_log --表名 toMonday(event_date) --自定义分区键 7500 --将数据从内存中的缓冲区刷新到表的时间间隔 query_thread_log

使用log_query_threads = 1设置,记录接收到查询的线程。查询记录在system.query_thread_log表中,而不记录在单独的文件中。您可以在table参数中更改表的名称。

如果该表不存在,ClickHouse将创建它。如果在更新ClickHouse服务器时查询线程日志的结构发生了更改,则具有旧结构的表将重命名,并自动创建一个新表。

partition_by—系统表的自定义分区键。如果用engine定义,则无法使用。engine-系统表的MergeTree引擎定义。如果用partition_by定义,则无法使用。 system --库名 query_thread_log --表名 toMonday(event_date) --自定义分区键 7500 --将数据从内存中的缓冲区刷新到表的时间间隔 text_log

用于记录文本消息的text_log系统表的设置。

partition_by—系统表的自定义分区键。如果用engine定义,则无法使用。engine-系统表的MergeTree引擎定义。如果用partition_by定义,则无法使用。 notice --将存储在表中的最大消息级别(Maximum Message Level)(默认为Trace))。 system --库名 text_log --表名 7500 --将数据从内存中的缓冲区刷新到表的时间间隔。 --自定义分区键 Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day --系统表的MergeTree引擎定义。 trace_log

trace_log系统表操作的设置。

partition_by—系统表的自定义分区键。如果用engine定义,则无法使用。engine-系统表的MergeTree引擎定义。如果用partition_by定义,则无法使用。 system --库名 trace_log --表名 toYYYYMM(event_date) ----自定义分区键 7500 ----将数据从内存中的缓冲区刷新到表的时间间隔 query_masking_rules

正则表达式规则。将在存储在日志文件之前应用于请求、与该请求相关的日志消息、system.query_log, system.text_log, system.processes表、发送给客户端的日志文件。

屏蔽规则适用于整个查询(以防止敏感数据因格式错误/不可解析的查询而泄漏)。

这样可以防止SQL查询中的敏感数据(例如姓名,电子邮件,个人标识符或信用卡号))泄漏记录到日志中。

hide SSN --规则名称(可选) (^|\D)\d{3}-\d{2}-\d{4}($|\D) --正则表达式(强制性) 000-00-0000 --替换,敏感数据的替换字符串(默认为可选-六个星号)

system.events表具有计数器QueryMaskingRulesMatch,该计数器具有与查询屏蔽规则匹配的总数。

对于分布式查询,必须分别配置每个服务器,否则,将存储传递给其他节点的子查询不会进行屏蔽。

remote_servers

远程服务器,分布式表引擎和集群表功能使用的集群的配置。

也可以看看

skip_unavailable_shards timezone

服务器的时区,定为UTC时区或地理位置(例如,非洲/阿比让)的IANA标识符。

当DateTime字段输出为文本格式(打印在屏幕或文件中),以及从字符串获取DateTime时,时区对于在String和DateTime格式之间进行转换是必需的。 

此外,如果在输入参数中没有指定timezone,则在使用时间和日期的函数中会使用这个值。

Europe/Moscow tcp_port

通过TCP协议与客户端进行通信的端口。即ClickHouse端口。

9000 tcp_port_secure

TCP端口,用于与客户端进行安全通信。与OpenSSL设置一起使用。

9440 mysql_port

通过MySQL协议与客户端通信的端口。

9004 tmp_path

用于处理大型查询的临时数据的路径。

/var/lib/clickhouse/tmp/ tmp_policy

storage_configuration的策略,用于存储临时文件。如果未设置,则使用tmp_path,否则将忽略tmp_path。

move_factor、keep_free_space_bytes、max_data_part_size_bytes 会被忽略必须在该策略中仅包含一个卷。 uncompressed_cache_size

表引擎从MergeTree使用的未压缩数据的缓存大小(以字节为单位,8G)。服务器有一个共享缓存,内存是按需分配的。如果启用,则使用高速缓存。在个别情况下,未压缩的缓存对于非常短的查询是有利的。

8589934592 user_files_path

包含用户文件的目录。在表函数file()中使用。

用于在指定文件中读取或写入数据。

/var/lib/clickhouse/user_files/ users_config

包含以下内容的文件的路径:

用户配置。访问权限。设置配置文件。配额设置。 users.xml zookeeper

ClickHouse与ZooKeeper群集进行交互的设置。使用复制表时,ClickHouse使用ZooKeeper来存储副本的元数据。如果不使用复制表,则可以忽略此参数。

模板:

example_host 2181

当尝试连接到ZooKeeper集群时,`index`属性指定节点顺序。

举例:

example1 2181 example2 2181 30000 --客户端会话的最大超时(以毫秒为单位) 10000 /path/to/zookeeper/node -- 用作ClickHouse服务器使用的znode的根的znode(可选) user:password --用户和密码,ZooKeeper可能需要这些用户和密码才能访问请求的znode(可选)

可以看复制和ZooKeeper说明。

use_minimalistic_part_header_in_zookeeper

ZooKeeper中数据部分头的存储方法。

此设置仅适用于MergeTree家族。可以指定:

位于config.xml文件的merge_tree部分,对服务器上的所有表使用该设置。 可以随时更改设置。 当设置更改时,现有表将更改其行为。对于每个单独的表,创建表时,请指定相应的引擎设置。 即使全局设置发生更改,具有此设置的现有表的行为也不会更改。

可能的值

0-功能已关闭。1-功能已打开。

设置开启时,复制表使用单个znode紧凑地存储数据部分的头。

如果表包含许多列,则use_minimalistic_part_header_in_zookeeper = 1时,此存储方法将大大减少Zookeeper中存储的数据量。

注意:

应用后use_minimalistic_part_header_in_zookeeper = 1,您无法将ClickHouse服务器降级到不支持此设置的版本。在群集中的服务器上升级ClickHouse时要小心。不要一次升级所有服务器。在测试环境中或仅在群集的几台服务器上测试ClickHouse的新版本更为安全。已经使用此设置存储的数据部件标题无法恢复为其以前的(非紧凑)表示形式。

默认值:0

disable_internal_dns_cache

禁用内部DNS缓存。建议用于在基础设施频繁更改的系统(例如Kubernetes)中操作ClickHouse。

默认值:0

dns_cache_update_period

ClickHouse内部DNS缓存中存储的IP地址的更新时间(以秒为单位)。

更新是在单独的系统线程中异步执行的。

默认值:15。

background_schedule_pool_size access_control_path

ClickHouse服务器存储SQL命令创建的用户和角色配置的文件夹的路径。

默认值:/var/lib/clickhouse/access/。

user_directories

配置文件中包含设置的部分:

具有预定义用户的配置文件的路径。由SQL命令创建的用户存储位置的文件夹路径。

如果指定了此部分,则不会使用users_config和access_control_path的路径。

该user_directories部分可以包含任意数量的项目,项目的顺序表示它们的优先级(项目越高,优先级越高)。

/etc/clickhouse-server/users.xml /var/lib/clickhouse/access/

 

//以下内容我怀疑官方没有写完整

您还可以指定设置

memory-表示仅将信息存储在内存中,而不写入磁盘ldap-表示将信息存储在LDAP服务器上。

要将LDAP服务器添加为未在本地定义的用户的远程用户目录,请定义一个ldap部分:

my_ldap_server --此参数是必需的,不能为空。表示ldap_servers config部分中定义的LDAP服务器名称之一。 --包含本地定义的角色的列表,这些角色将分配给从LDAP服务器检索到的每个用户。如果未指定任何角色,则用户在身份验证后将无法执行任何操作。如果在身份验证时未在本地定义任何列出的角色,则身份验证尝试将失败,就像提供的密码不正确一样。

 

 

 

参考资料:

https://clickhouse.tech/docs/en/operations/server-configuration-parameters/

https://clickhouse.tech/docs/en/operations/configuration-files/#configuration_files

https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/

https://www.cnblogs.com/zhoujinyi/p/12627780.html

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3