<?xml version="1.0"?> <yandex> <logger> <level>trace</level> <log>/var/log/clickhouse-server/clickhouse-server.log</log> <!-- 日志存放目录 --> <errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog> <!-- 错误日志存放目录 --> <size>1000M</size> <!-- 文件的大小。文件达到大小后,ClickHouse将对其进行存档并重命名,并在其位置创建一个新的日志文件 --> <count>10</count> <!-- ClickHouse存储的已归档日志文件的数量 --> </logger> <http_port>8123</http_port> <!-- 通过HTTP连接到服务器的端口 --> <tcp_port>9000</tcp_port> <!--通过TCP协议与客户端进行通信的端口,即ClickHouse端口。--> <mysql_port>9004</mysql_port> <!--通过MySQL协议与客户端通信的端口。--> <https_port>8443</https_port> <!-- 通过HTTP连接到服务器的端口 --> <tcp_port_secure>9440</tcp_port_secure> <!--通过TCP协议与客户端进行通信的端口,即ClickHouse端口。 与OpenSSL设置一起使用。--> <openSSL> <server> <certificateFile>/etc/clickhouse-server/server.crt</certificateFile> <!--PEM格式的客户端/服务器证书文件的路径。如果privateKeyFile包含证书,则可以忽略它--> <privateKeyFile>/etc/clickhouse-server/server.key</privateKeyFile> <!--具有PEM证书的秘密密钥的文件的路径。该文件可能同时包含密钥和证书--> <dhParamsFile>/etc/clickhouse-server/dhparam.pem</dhParamsFile> <!--dh文件路径--> <verificationMode>none</verificationMode> <!--检查节点证书的方法--> <loadDefaultCAFile>true</loadDefaultCAFile> <!--指示将使用OpenSSL的内置CA证书。可接受的值:true,false--> <cacheSessions>true</cacheSessions> <!--启用或禁用缓存会话。必须与sessionIdContext结合使用。可接受的值:true,false。--> <disableProtocols>sslv2,sslv3</disableProtocols> <!--不允许使用的协议--> <preferServerCiphers>true</preferServerCiphers> <!--首选服务器密码--> </server> <client> <loadDefaultCAFile>true</loadDefaultCAFile> <!--指示将使用OpenSSL的内置CA证书。可接受的值:true,false--> <cacheSessions>true</cacheSessions> <!--启用或禁用缓存会话。必须与sessionIdContext结合使用。可接受的值:true,false。--> <disableProtocols>sslv2,sslv3</disableProtocols> <!--不允许使用的协议--> <preferServerCiphers>true</preferServerCiphers> <!--首选服务器密码--> <invalidCertificateHandler> <!--用于验证无效证书的类--> <name>RejectCertificateHandler</name> </invalidCertificateHandler> </client> </openSSL> <interserver_http_port>9009</interserver_http_port> <!--于在ClickHouse服务器之间交换数据的端口。--> <listen_host>0.0.0.0</listen_host> <!--限制来源主机的请求 允许所有--> <listen_host>127.0.0.1</listen_host> <!--限制来源主机的请求 只允许本机访问--> <max_connections>4096</max_connections> <!--最大连接数--> <keep_alive_timeout>3</keep_alive_timeout> <!--ClickHouse在关闭连接之前等待传入请求的秒数。 默认为3秒。--> <max_concurrent_queries>100</max_concurrent_queries> <!--同时处理的最大请求数。--> <max_open_files>262144</max_open_files> <!--打开最大的文件数,默认最大值--> <uncompressed_cache_size>8589934592</uncompressed_cache_size> <!--表引擎从MergeTree使用的未压缩数据的缓存大小(以字节为单位,8G)--> <mark_cache_size>5368709120</mark_cache_size> <!--标记缓存的大小,用于MergeTree系列的表中(以字节为单位,5G)--> <path>/var/lib/clickhouse/</path> <!--数据的目录路径--> <storage_configuration> <!--多个存储路径--> <disks> <disk_name_a> <!--自定义磁盘名称 --> <path>/var/lib/clickhouse1/</path> <!--必填项,用于指定磁盘路径 --> <keep_free_space_bytes>1073741824</keep_free_space_bytes> <!--选填项,以字节为单位,用于定义磁盘的预留空间。--> </disk_name_a> <disk_name_b> <path>/var/lib/clickhouse2/</path> <!--必填项,用于指定磁盘路径 --> <keep_free_space_bytes>1073741824</keep_free_space_bytes> <!--选填项,以字节为单位,用于定义磁盘的预留空间。--> </disk_name_b> </disks> </storage_configuration> <tmp_path>/var/lib/clickhouse/tmp/</tmp_path> <!--用于处理大型查询的临时数据的路径。--> <tmp_policy>tmp</tmp_policy> <!--用于存储临时文件。如果未设置,则使用tmp_path,否则将忽略它。--> <user_files_path>/var/lib/clickhouse/user_files/</user_files_path> <!--存储用户文件的目录--> <users_config>users.xml</users_config> <!--用户配置文件,可以配置用户访问、profiles、quota、查询等级等--> <default_profile>default</default_profile> <!--默认设置配置文件--> <default_database>default</default_database> <!--默认数据库--> <timezone>Europe/Moscow</timezone> <!--服务器的时区,定为UTC时区或地理位置 莫斯科时间--> <!-- <umask>022</umask> --> <mlock_executable>false</mlock_executable> <include_from>/etc/metrica.xml</include_from> <!--带替换文件的路径--> <zookeeper incl="zookeeper-servers" optional="true" /> <!--ClickHouse与ZooKeeper群集进行交互的设置--> <macros incl="macros" optional="true" /> <!--复制表的参数替换,如果不使用复制表,则可以省略--> <builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval> <!--重新加载内置词典的时间间隔(以秒为单位),默认3600。可以在不重新启动服务器的情况下“即时”修改词典--> <max_session_timeout>3600</max_session_timeout> <!-- 最大会话超时时间 单位秒--> <default_session_timeout>60</default_session_timeout> <!--默认会话超时时间 单位秒--> <graphite> <!--将数据发送到Graphite,它是一款企业级监控。--> <host>localhost</host> <!--Graphite服务器--> <port>42000</port> <!--Graphite服务器上的端口--> <timeout>0.1</timeout> <!--发送超时时间,以秒为单位--> <interval>60</interval> <!--发送间隔,以秒为单位--> <root_path>one_min</root_path> <!--密钥的前缀--> <hostname_in_path>true</hostname_in_path> <!--讲机名追加到根路径(默认= true)--> <metrics>true</metrics> <!--从system.metrics表发送数据--> <events>true</events> <!--从system.events表发送在该时间段内累积的增量数据--> <events_cumulative>false</events_cumulative> <!--从system.events表发送累积数据--> <asynchronous_metrics>true</asynchronous_metrics> <!--从system.asynchronous_metrics表发送数据--> </graphite> <query_log> <!--通过log_queries = 1 在用户配置表中设置,记录了ClickHouse服务中所有已经执行的查询记录。查询记录在system.query_log表中--> <database>system</database> <!--库名--> <table>query_log</table> <!--表名--> <partition_by>toYYYYMM(event_date)</partition_by> <!--自定义分区键--> <flush_interval_milliseconds>7500</flush_interval_milliseconds> <!--将数据从内存中的缓冲区刷新到表的时间间隔--> </query_log> <trace_log> <!--trace_log系统表操作的设置。 采样查询探查器收集的堆栈跟踪--> <database>system</database> <!--库名--> <table>trace_log</table> <!--表名--> <partition_by>toYYYYMM(event_date)</partition_by> <!--自定义分区键--> <flush_interval_milliseconds>7500</flush_interval_milliseconds> <!--将数据从内存中的缓冲区刷新到表的时间间隔--> </trace_log> <query_thread_log> <!--使用log_query_threads = 1设置,在用户配置表中设置 记录了所有线程的执行查询的信息--> <database>system</database> <!--库名--> <table>query_thread_log</table> <!--表名--> <partition_by>toYYYYMM(event_date)</partition_by> <!--自定义分区键--> <flush_interval_milliseconds>7500</flush_interval_milliseconds> <!--将数据从内存中的缓冲区刷新到表的时间间隔--> </query_thread_log> <part_log> <!--记录了MergeTree系列表引擎的分区操作日志。如添加或合并数据--> <database>system</database> <!--库名--> <table>part_log</table> <!--表名--> <flush_interval_milliseconds>7500</flush_interval_milliseconds> <!--将数据从内存中的缓冲区刷新到表的时间间隔--> </part_log> <text_log> <!--log日志记录了ClickHouse运行过程中产生的一系列打印日志,包括INFO、DEBUG和Trace--> <database>system</database> <!--库名--> <table>text_log</table> <!--表名--> <flush_interval_milliseconds>7500</flush_interval_milliseconds> <!--将数据从内存中的缓冲区刷新到表的时间间隔--> <level></level> </text_log> <metric_log> <!--用于将system.metrics和system.events中的数据汇聚到一起--> <database>system</database> <!--库名--> <table>metric_log</table> <!--表名--> <flush_interval_milliseconds>7500</flush_interval_milliseconds> <!--将数据从内存中的缓冲区刷新到表的时间间隔--> <collect_interval_milliseconds>1000</collect_interval_milliseconds> <!--收集间隔--> </metric_log> <dictionaries_config>*_dictionary.xml</dictionaries_config> <!--外部词典的配置文件的路径,在config配置文件中指定。路径可以包含通配符*和?的绝对或则相对路径--> <compression incl="clickhouse_compression"> <!--MergeTree引擎表的数据压缩设置。配置模板如--> <case> <min_part_size>10000000000</min_part_size> <!-- 数据部分的最小大小 --> <min_part_size_ratio>0.01</min_part_size_ratio> <!-- 数据部分大小与表大小的比率 --> <method>LZ4</method> <!--压缩算法,zstd和lz4--> </case> </compression> <distributed_ddl> <!--分布式ddl配置 create drop alter --> <path>/clickhouse/task_queue/ddl</path> <!--分布式DDL在ZooKeeper内使用的根路径为--> </distributed_ddl> <max_table_size_to_drop>0</max_table_size_to_drop> <!--删除表的限制,默认50G,0表示不限制。如果MergeTree表的大小超过max_table_size_to_drop(以字节为单位),则无法使用DROP查询将其删除--> <max_partition_size_to_drop>0</max_partition_size_to_drop> <!--删除分区限制 默认50G,0表示不限制--> <format_schema_path>/var/lib/clickhouse/format_schemas/</format_schema_path> <!--包含输入格式文件的目录路径--> <query_masking_rules> <!--基于Regexp的规则,应用于查询以及所有日志消息。再其存储在服务器日志中,system.query_log,system.text_log,system.processes表以及以日志形式发送给客户端。这样可以防止SQL查询中的敏感数据泄漏记录到日志中--> <rule> <name>hide SSN</name> <!--规则名称--> <regexp>\b\d{3}-\d{2}-\d{4}\b</regexp> <!--正则表达式--> <replace>000-00-0000</replace> <!--替换,敏感数据的替换字符串(默认为可选-六个星号)--> </rule> </query_masking_rules> <disable_internal_dns_cache>1</disable_internal_dns_cache> <!--禁用内部DNS缓存,默认0--> </yandex>