clickhouse配置项config.xml详解 |
您所在的位置:网站首页 › 提瓦特大陆是什么游戏 › clickhouse配置项config.xml详解 |
调研学习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_timeoutClickHouse在关闭连接之前等待传入请求的秒数。默认为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 openSSLSSL客户端/服务器配置。 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_logtrace_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_secureTCP端口,用于与客户端进行安全通信。与OpenSSL设置一起使用。 9440 mysql_port通过MySQL协议与客户端通信的端口。 9004 tmp_path用于处理大型查询的临时数据的路径。 /var/lib/clickhouse/tmp/ tmp_policystorage_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 zookeeperClickHouse与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_zookeeperZooKeeper中数据部分头的存储方法。 此设置仅适用于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_periodClickHouse内部DNS缓存中存储的IP地址的更新时间(以秒为单位)。 更新是在单独的系统线程中异步执行的。 默认值:15。 background_schedule_pool_size access_control_pathClickHouse服务器存储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 |