users.xml配置详解
<?xml version="1.0"?> <yandex> <profiles> <default> <max_memory_usage>10000000000</max_memory_usage> <!--单个查询最大内存使用量--> <max_memory_usage_for_user>0</max_memory_usage_for_user> <!--在单个ClickHouse服务进程中,以用户为单位进行统计,单个用户在运行查询时,限制使用的最大内存用量,默认值为0,即不做限制--> <max_memory_usage_for_all_queries>0</max_memory_usage_for_all_queries><!--在单个ClickHouse服务进程中,所有运行的查询累加在一起,限制使用的最大内存用量,默认为0不做限制--> <max_partitions_per_insert_block>100</max_partitions_per_insert_block><!--在单次INSERT写入的时候,限制创建的最大分区个数,默认值为100个。如果超出这个阈值数目,将会得到异常--> <max_rows_to_group_by>0</max_rows_to_group_by> <!--在执行GROUP BY聚合查询的时候,限制去重后的聚合KEY的最大个数,默认值为0,即不做限制--> <max_bytes_before_external_group_by>0</max_bytes_before_external_group_by> <!--在执行GROUP BY聚合查询的时候,限制使用的最大内存用量,默认值为0,即不做限制--> <use_uncompressed_cache>0</use_uncompressed_cache> <!--是否使用未压缩块的缓存。接受0或1。默认情况下,0(禁用)--> <load_balancing>random</load_balancing> <!--指定用于分布式查询处理的副本选择算法 默认:Random random是默认的负载均衡算法,在ClickHouse的服务节点中,拥有一个全局计数器errors_count,当服务发生任何异常时,该计数累积加1。而random算法会选择errors_count错误数量最少的replica,如果多个replica的errors_count计数相同,则在它们之中随机选择一个 nearest_hostname可以看作random算法的变种,首先它会选择errors_count错误数量最少的replica,如果多个replica的errors_count计数相同,则选择集群配置中host名称与当前host最相似的一个 in_order同样可以看作random算法的变种,首先它会选择errors_count错误数量最少的replica,如果多个replica的errors_count计数相同,则按照集群配置中replica的定义顺序逐个选择。 first_or_random可以看作in_order算法的变种,首先它会选择errors_count错误数量最少的replica,如果多个replica的errors_count计数相同,它首先会选择集群配置中第一个定义的replica,如果该replica不可用,则进一步随机选择一个其他的replica。 --> <log_queries> 1</log_queries> <!--用户配置开启query_log查询日志,记录了ClickHouse服务中所有已经执行的查询记录--> <log_query_threads> 1</log_query_threads> <!--用户配置开启query_thread_log日志 记录了所有线程的执行查询的信息--> <part_log>1</part_log> <!--用户配置开启part_log日志,记录了MergeTree系列表引擎的分区操作日志--> <text_log>1</text_log> <!--用户配置开启text_log日志 记录了ClickHouse运行过程中产生的一系列打印日志,包括INFO、DEBUG和Trace--> <metric_log>1</metric_log> <!--用户配置开启metric_log日志 用于将system.metrics和system.events中的数据汇聚到一起--> </default> <readonly> <!--读权限、写权限和设置权限 readonly:用户名--> <readonly>0</readonly> <!--不进行任何限制(默认值)--> <readonly>1</readonly> <!--只拥有读权限(只能执行SELECT、EXISTS、SHOW和DESCRIBE)--> <readonly>2</readonly> <!--拥有读权限和设置权限(在读权限基础上,增加了SET查询)--> <allow_ddl>0</allow_ddl> <!--·当取值为0时,不允许DDL查询 create drop alter--> <allow_ddl>1</allow_ddl> <!--·当取值为1时,允许DDL查询(默认值)--> </readonly> </profiles> <users> <!--用户配置--> <default> <!--用户名--> <password></password> <!--置登录密码 免密码登入,支持明文、SHA256加密和double_sha1加密三种形式--> <password>123</password> <!--明文密码--> <password_sha256_hex>a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3</password_sha256_hex> <!--SHA256加密 # echo -n 123 | openssl dgst -sha256--> <password_double_sha1_hex>23ae809ddacaf96af0fd78ed04b6a265e05aa257</password_double_sha1_hex> <!--double_sha1加密 # echo -n 123 | openssl dgst -sha1 -binary | openssl dgst -sha1--> <networks incl="networks" replace="replace"> <!--限制IP访问--> <ip>::/0</ip> --允许任何地址访问 <ip>127.0.0.1</ip> --允许本地访问 <ip>192.168.107.216</ip> --允许该IP访问 </networks> <allow_databases> <!--限制访问数据库 不指定表示不限制--> <database>default</database> <!--库名称--> <database>test_dictionaries</database> </allow_databases> <databases> <!--限制访问表的数据 不指定表示不限制--> <database_name><!--数据库名称--> <table_name><!--表名称--> <filter> id < 10</filter><!--数据过滤条件--> </table_name> </database_name> </databases> <profile>default</profile> <quota>default</quota> </default> </users> <quotas> <!--限制资源被过度使用,当使用的资源数量达到阈值时,那么正在进行的操作会被自动中断--> <default> <!--自定义名称,全局唯一--> <interval> <!--配置时间间隔,每个时间内的资源消耗限制--> <duration>3600</duration> <!--表示累积的时间周期,单位是秒--> <queries>0</queries> <!--表示在周期内允许执行的查询次数,0表示不限制--> <errors>0</errors> <!--表示在周期内允许发生异常的次数,0表示不限制--> <result_rows>0</result_rows> <!--表示在周期内允许查询返回的结果行数,0表示不限制--> <read_rows>0</read_rows> <!--表示在周期内在分布式查询中,允许远端节点读取的数据行数,0表示不限制。--> <execution_time>0</execution_time> <!--表示周期内允许执行的查询时间,单位是秒,0表示不限制。--> </interval> </default> </quotas> </yandex>