clickhouse-配置解释

详细内容看官网文档

一、全局服务配置

1.配置详解

名称含义默认值
allow_use_jemalloc_memory允许使用 jemalloc 内存1(布尔)
asynchronous_heavy_metrics_update_period_s更新异步指标的时间段(以秒为单位)120
asynchronous_metrics_update_period_s更新异步指标的时间段(以秒为单位)1
background_buffer_flush_schedule_pool_size将用于在后台对缓冲区引擎表执行刷新操作的最大线程数16
background_common_pool_size将用于在后台对 *MergeTree 引擎表执行各种操作(主要是垃圾回收)的最大线程数8
background_distributed_schedule_pool_size将用于执行分布式发送的最大线程数16
background_fetches_pool_size将用于从后台 *MergeTree 引擎表的另一个副本获取数据部分的最大线程数8
background_merges_mutations_concurrency_ratio设置线程数与可以同时执行的后台合并和突变数之间的比率。 例如,如果比率等于2并且background_pool_size设置为16,那么ClickHouse可以同时执行32个后台合并。 这是可能的,因为后台操作可以暂停和推迟。 这是为小型合并提供更多执行优先级所必需的。 您只能在运行时增加此比率。 要降低它,您必须重新启动服务器。 与background_pool_size设置相同的background_merges_mutations_concurrency_ratio可以从默认配置文件中应用以实现向后兼容性。2(float)
background_merges_mutations_scheduling_policy关于如何执行后台合并和突变调度的策略。 可能的值为:round_robin 和shortest_task_first

round_robin — 每个并发合并和变异都按循环顺序执行,以确保无饥饿操作。 较小的合并比较大的合并完成得更快,因为它们需要合并的块较少。

shortest_task_first — 始终执行较小的合并或突变。 合并和突变根据其结果大小分配优先级。 较小尺寸的合并优先于较大尺寸的合并。 此策略可确保以最快的速度合并小部分,但可能会导致 INSERT 严重过载的分区中的大合并无限期匮乏。
round_robin
background_message_broker_schedule_pool_size将用于执行消息流的后台操作的最大线程数16
background_move_pool_size将用于将数据部分移动到后台 *MergeTree 引擎表的另一个磁盘或卷的最大线程数8
background_pool_size设置使用 MergeTree 引擎对表执行后台合并和突变的线程数。 您只能在运行时增加线程数。 要减少线程数,您必须重新启动服务器。 通过调整此设置,您可以管理 CPU 和磁盘负载。 较小的池大小使用较少的 CPU 和磁盘资源,但后台进程进展较慢,最终可能会影响查询性能。

在更改之前,还请查看相关的 MergeTree 设置,例如 number_of_free_entries_in_pool_to_lower_max_size_of_merge 和 number_of_free_entries_in_pool_to_execute_mutation。
16
background_schedule_pool_size将用于不断对复制表、Kafka 流式处理和 DNS 缓存更新执行某些轻量级定期操作的最大线程数。128
backup_threads执行备份请求的最大线程数16
backups_io_thread_pool_queue_size备份 IO 线程池上可以调度的最大作业数。 由于当前的 S3 备份逻辑,建议保持此队列不受限制 (0)。0
cache_size_to_ram_max_ratio将缓存大小设置为 RAM 最大比率。允许降低低内存系统上的缓存大小0.5
concurrent_threads_soft_limit_num允许运行所有查询的最大查询处理线程数(不包括用于从远程服务器检索数据的线程)。 这不是硬性限制。 万一达到限制,查询仍将至少有一个线程运行。 如果有更多线程可用,查询可以在执行期间扩展到所需的线程数。0
concurrent_threads_soft_limit_ratio_to_cores与 concurrent_threads_soft_limit_num 相同,但具有与核心的比率。0
default_database默认数据库名称default
disable_internal_dns_cache禁用内部 DNS 缓存。 建议在基础设施经常变化的系统(例如 Kubernetes)中运行 ClickHouse。0(布尔)
dns_cache_update_period内部 DNS 缓存更新周期(以秒为单位)15
dns_max_consecutive_failures从 ClickHouse DNS 缓存中删除主机之前的最大连续解析失败次数1024
index_mark_cache_size索引标记的缓存大小。零表示禁用

此设置可以在运行时修改,并将立即生效。
0
index_uncompressed_cache_size合并树索引的未压缩块的缓存大小。零表示禁用

此设置可以在运行时修改,并将立即生效
0
io_thread_pool_queue_sizeIO 线程池的队列大小。零表示无限制。10000
mark_cache_policy标记缓存策略名称SLRU
mark_cache_size标记的缓存大小(合并树系列表的索引)

此设置可以在运行时修改,并将立即生效
5368709120
max_backup_bandwidth_for_server服务器上所有备份的最大读取速度(以字节/秒为单位)。零表示无限制0
max_backups_io_thread_pool_free_size如果Backups IO Thread池中的空闲线程数量超过max_backup_io_thread_pool_free_size,ClickHouse将释放空闲线程占用的资源并减小池大小。 如果需要,可以再次创建线程。0
max_backups_io_thread_pool_size用于备份查询的 IO 操作的最大线程数1000
max_concurrent_queries并发执行查询总数的限制。 零意味着无限。 请注意,还必须考虑对插入和选择查询以及用户最大查询数的限制。 另请参见 max_concurrent_insert_queries、max_concurrent_select_queries、max_concurrent_queries_for_all_users。 零意味着无限。

此设置可以在运行时修改,并将立即生效。已在运行的查询将保持不变。
0
max_concurrent_insert_queries并发插入查询总数的限制。零表示无限制

此设置可以在运行时修改,并将立即生效。已在运行的查询将保持不变
0
max_concurrent_select_queries限制并发选择查询的总数。零表示无限制。

此设置可以在运行时修改,并将立即生效。已在运行的查询将保持不变
0
max_connections最大服务器连接数1024
max_io_thread_pool_free_sizeIO 线程池的最大可用大小0
max_io_thread_pool_size将用于 IO 操作的最大线程数100
max_local_read_bandwidth_for_server本地读取的最大速度(以字节/秒为单位)。零表示无限制0
max_local_write_bandwidth_for_server本地写入的最大速度(以字节/秒为单位)。零表示无限制0
max_partition_size_to_drop限制删除分区。如果 MergeTree 表的大小超过 max_partition_size_to_drop (以字节为单位),则无法使用 DROP PARTITION 查询删除分区。 此设置不需要重新启动 Clickhouse 服务器即可应用。 禁用限制的另一种方法是创建 /flags/force_drop_table 文件。 值 0 表示您可以不受任何限制地删除分区。50GB
max_remote_read_network_bandwidth_for_server通过网络进行数据交换的最大速度,以字节/秒为单位进行读取。零表示无限制0
max_remote_write_network_bandwidth_for_server通过网络进行写入的数据交换的最大速度(以字节/秒为单位)。零表示无限制0
max_server_memory_usage总内存使用量限制。 零意味着无限。默认 max_server_memory_usage 值的计算方式为:memory_amount * max_server_memory_usage_to_ram_ratio。0
max_table_size_to_drop删除表的大小限制50GB
max_temporary_data_on_disk_size可用于外部聚合、联接或排序的最大存储量。 超过此限制的查询将失败并出现异常。 零意味着无限。
另请参阅 max_temporary_data_on_disk_size_for_user 和 max_temporary_data_on_disk_size_for_query。
0
max_thread_pool_free_size如果全局线程池中的空闲线程数大于 max_thread_pool_free_size,则 ClickHouse 会释放部分线程占用的资源,并减小池大小。 如果需要的话可以再次创建线程1000
max_thread_pool_size可以从操作系统分配并用于查询执行和后台操作的最大线程数10000
mmap_cache_size设置映射文件的缓存大小(以字节为单位)。 此设置可以避免频繁的打开/关闭调用(由于随之而来的页面错误,这非常昂贵),并可以重用来自多个线程和查询的映射。 设置值为映射区域的数量(通常等于映射文件的数量)。 可以使用 MMappedFiles 和 MMappedFileBytes 指标在表 system.metrics 和 system.metric_log 中监视映射文件中的数据量。 此外,在 system.asynchronous_metrics 和 system.asynchronous_metrics_log 中通过 MMapCacheCells 指标,在 system.events、system.processes、system.query_log、system.query_thread_log、system.query_views_log 中通过 CreatedReadBufferMMap、CreatedReadBufferMMapFailed、MMappedFileCacheHits、MMappedFileCacheMisses 事件。
请注意,映射文件中的数据量不会直接消耗内存,并且不会计入查询或服务器内存使用量中,因为该内存可以像操作系统页面缓存一样被丢弃。 在删除 MergeTree 系列表中的旧部分时,缓存会自动删除(文件被关闭),也可以通过 SYSTEM DROP MMAP CACHE 查询手动删除。

此设置可以在运行时修改
1000
restore_threads执行还原请求的最大线程数16
show_addresses_in_stack_traces如果设置为 true,将在堆栈跟踪中显示地址1(布尔)
shutdown_wait_unfinished_queries如果设置为 true,ClickHouse 将等待运行查询完成,然后再关闭。0(布尔)
temporary_data_in_cache使用此选项,临时数据将存储在特定磁盘的缓存中。 在本节中,您应该指定具有类型缓存的磁盘名称。 在这种情况下,缓存和临时数据将共享相同的空间,并且可以逐出磁盘缓存以创建临时数据。
只能使用一个选项来配置临时数据存储:tmp_path、tmp_policy、temporary_data_in_cache。
thread_pool_queue_size全局线程池上可以调度的最大作业数。 增加队列大小会导致更大的内存使用量。 建议将此值保持等于 max_thread_pool_size。 零意味着无限。10000
tmp_policy包含临时数据的存储策略
只能使用一个选项来配置临时数据存储:tmp_path、tmp_policy、temporary_data_in_cache。
move_factor、keep_free_space_bytes、max_data_part_size_bytes 和 被忽略。
策略应该只有一个带有本地磁盘的卷。
uncompressed_cache_policy未压缩的缓存策略名称SLRU
uncompressed_cache_size合并树系列中的表引擎使用的未压缩数据的高速缓存大小(以字节为单位)。零表示禁用。服务器有一个共享缓存。内存按需分配。如果启用了选项 use_uncompressed_cache,则使用缓存。在个别情况下,未压缩的缓存对于非常短的查询是有利的。
此设置可以在运行时修改,并将立即生效
0
builtin_dictionaries_reload_interval重新加载内置词典之前的间隔(以秒为单位)。ClickHouse每x秒重新加载一次内置词典。这样就可以“动态”编辑词典,而无需重新启动服务器3600
compression合并树引擎表的数据压缩设置,如果您刚刚开始使用ClickHouse,请不要使用它。
case内容如下:
min_part_size – 数据部分的最小大小。
min_part_size_ratio – 数据部分大小与表大小的比率。
method——压缩方法。 可接受的值:lz4、lz4hc、zstd、deflate_qpl。
level – 压缩级别。
encryption配置命令以获取加密编解码器使用的密钥。 密钥(或多个密钥)应写入环境变量或在配置文件中设置。密钥可以是十六进制或长度等于 16 字节的字符串。
custom_settings_prefixes自定义设置的前缀列表。前缀必须用逗号分隔。
core_dump配置核心转储文件大小的软限制1073741824 (1 GB)
database_atomic_delay_before_drop_table_sec设置删除表数据之前的延迟(以秒为单位)。 如果查询具有 SYNC 修饰符,则忽略此设置。480 (8 minute)
database_catalog_unused_dir_hide_timeout_sec从 store/ 目录清理垃圾的任务的参数。 如果某些子目录未被 clickhouse-server 使用,并且该目录在最后的 database_catalog_unused_dir_hide_timeout_sec 秒内没有被修改,则该任务将通过删除所有访问权限来“隐藏”该目录。 它也适用于 clickhouse-server 不希望在 store/ 中看到的目录。 零意味着“立即”。3600 (1 hour)
database_catalog_unused_dir_rm_timeout_sec从 store/ 目录清理垃圾的任务的参数。 如果某些子目录未被 clickhouse-server 使用并且之前已“隐藏”(请参阅database_catalog_unused_dir_hide_timeout_sec),并且在最后的database_catalog_unused_dir_rm_timeout_sec 秒内未修改此目录,则任务将删除此目录。 它也适用于 clickhouse-server 不希望在 store/ 中看到的目录。 零意味着“从不”。2592000 (30 days)
database_catalog_unused_dir_cleanup_period_sec从 store/ 目录清理垃圾的任务的参数。 设置任务的调度周期。 零意味着“从不”。86400 (1 day)
default_profile设置配置文件位于参数 user_config 中指定的文件中。
default_replica_nameZooKeeper 中的副本名称
dictionaries_config字典配置文件的路径,路径可以包含通配符 * 和 ?
user_defined_executable_functions_config可执行的用户定义函数的配置文件的路径,路径可以包含通配符 * 和 ?
dictionaries_lazy_load字典的延迟加载。如果为 true,则每个字典都会在第一次使用时创建。 如果字典创建失败,则使用该字典的函数将引发异常。如果为 false,则在服务器启动时创建所有字典,如果创建的字典太长或创建时出现错误,则服务器启动时不会创建这些字典,并继续尝试创建这些字典。true
format_schema_path包含输入数据方案的目录路径,例如 CapnProto 格式的方案。
graphite发送监控数据给graphite的配置
graphite_rollupgraphite细化数据的设置
http_port/https_port用于通过 HTTP 连接到服务器的端口
http_server_default_response访问 ClickHouse HTTP(s) 服务器时默认显示的页面。 默认值为“OK”。 (末尾有换行符)
hsts_max_ageHSTS 的过期时间(以秒为单位)。 默认值为 0 表示 clickhouse 禁用 HSTS。 如果您设置一个正数,则 HSTS 将启用,并且 max-age 是您设置的数字。0
include_from包含替换的文件的路径。
interserver_listen_host对可以在 ClickHouse 服务器之间交换数据的主机的限制。 如果使用Keeper,不同Keeper实例之间的通信也会受到同样的限制。 默认值等于listen_host设置。
interserver_http_port用于在 ClickHouse 服务器之间交换数据的端口
interserver_http_host其他服务器可以用来访问该服务器的主机名。如果省略,则其定义方式与 hostname -f 命令相同。对于脱离特定的网络接口很有用。
interserver_https_port通过 HTTPS 在 ClickHouse 服务器之间交换数据的端口
interserver_https_host与 interserver_http_host 类似,不同之处在于该主机名可以被其他服务器用来通过 HTTPS 访问该服务器。
interserver_http_credentials用于在复制期间连接到其他服务器的用户名和密码。 服务器还使用这些凭据对其他副本进行身份验证。 因此,集群中所有副本的 interserver_http_credentials 必须相同。

默认情况下,如果省略 interserver_http_credentials 部分,则在复制期间不使用身份验证。

user——用户名。
password——密码。
allow_empty — 如果为 true,则即使设置了凭据,也允许其他副本无需身份验证即可连接。 如果为 false,则拒绝未经身份验证的连接。默认值:false。
old — 包含凭证轮换期间使用的旧用户和密码。 可以指定几个旧部分。
keep_alive_timeoutClickHouse 在关闭连接之前等待传入请求的秒数10秒
listen_host对请求可以来自的主机的限制。 如果您希望服务器回答所有请求,请指定::。
listen_backlog侦听套接字的积压(待处理连接的队列大小)。侦听套接字的积压(待处理连接的队列大小)。通常不需要更改该值,因为:默认值足够大,并且为了接受客户端的连接,服务器有单独的线程。因此,即使您的 TcpExtListenOverflows(来自 nstat)非零并且该计数器随着 ClickHouse 服务器的增加而增加,也不意味着该值需要增加4096
logger日志设置
level – 日志记录级别。 可接受的值:跟踪、调试、信息、警告、错误。
log——日志文件。 包含按级别排列的所有条目。
errorlog – 错误日志文件。
size – 文件的大小。 适用于日志和错误日志。 一旦文件达到大小,ClickHouse 就会对其进行归档并重命名,并在其位置创建一个新的日志文件。
count – ClickHouse 存储的归档日志文件的数量。
console – 将日志和错误日志发送到控制台而不是文件。 要启用,请设置为 1 或 true。
Stream_compress – 使用 lz4 流压缩来压缩日志和错误日志。 要启用,请设置为 1 或 true。
send_crash_reports向clickhouse开发团队发送崩溃报考
macros复制表的参数替换
max_open_files打开文件的最大数量
merges_mutations_memory_usage_soft_limit设置允许使用多少 RAM 来执行merge(合并)和mutation(更新)操作。 零意味着无限。 如果 ClickHouse 达到此限制,它不会安排任何新的后台合并或突变操作,但会继续执行已安排的任务。
merges_mutations_memory_usage_to_ram_ratio默认的 merges_mutations_memory_usage_soft_limit 值的计算方式为:memory_amount * merges_mutations_memory_usage_to_ram_ratio。0.5
merge_tree对MergeTree中的表进行微调
metric_log默认情况下,它处于启用状态。如果不是,您可以手动执行此操作,如果要禁用则需要创建这个文件 /etc/clickhouse-server/config.d/disable_metric_log.xml,内容如下
<clickhouse><metric_log remove=“1” /></clickhouse>
replicated_merge_tree对ReplicatedMergeTree中的表进行微调
openSSL加密链接配置,不做详细介绍
part_log记录与 MergeTree 关联的事件。 例如,添加或合并数据。 您可以使用日志来模拟合并算法并比较它们的特性。 您可以可视化合并过程。使用以下参数来配置日志记录:
database – 数据库的名称。
table – 系统表的名称。
partition_by — 系统表的自定义分区键。 如果引擎已定义则无法用。
order_by - 系统表的自定义排序键。 如果引擎已定义则无法使用。
engine - 系统表的 MergeTree 引擎定义。 如果定义了partition_by或order_by则不能使用。
lush_interval_milliseconds – 将数据从内存缓冲区刷新到表的时间间隔。
max_size_rows – 日志的最大大小(以行为单位)。 当未刷新的日志量达到max_size时,日志转储到磁盘。 默认值:1048576。
served_size_rows – 为日志预先分配的内存大小(以行为单位)。 默认值:8192。
buffer_size_rows_flush_threshold – 行数阈值,达到该阈值会在后台将日志刷新到磁盘。 默认值:max_size_rows / 2。
lush_on_crash - 指示在发生崩溃时是否应将日志转储到磁盘。 默认值:false。
storage_policy – 用于表的存储策略的名称(可选)
settings - 控制 MergeTree 行为的附加参数(可选)。
path包含数据的目录的路径
Prometheus指定接受指标数据的prometheus
query_log用于记录通过 log_queries=1 设置接收到的查询的设置。查询记录在 system.query_log 表中,而不是单独的文件中。 您可以在表参数中更改表的名称(见下文)。使用以下参数来配置日志记录:(参数与part_log表一致)如果该表不存在,ClickHouse 将创建它。 如果ClickHouse服务器更新时查询日志的结构发生变化,旧结构的表将被重命名,并自动创建新表。
query_cache查询缓存允许仅计算查询一次,并直接从缓存中为同一查询的进一步执行提供服务。 根据查询的类型,这可以显着减少 ClickHouse 服务器select的延迟和资源消耗。
max_size_in_bytes:最大缓存大小(以字节为单位)。 0 表示查询缓存已禁用。 默认值:1073741824 (1 GiB)。
max_entries:缓存中存储的SELECT查询结果的最大数量。 默认值:1024。
max_entry_size_in_bytes:SELECT 查询结果可能必须保存在缓存中的最大大小(以字节为单位)。 默认值:1048576 (1 MiB)。
max_entry_size_in_rows:SELECT 查询结果可能要保存在缓存中的最大行数。 默认值:30000000(3000 万)。
更改立即生效
查询缓存的数据分配在 DRAM 中。 如果内存不足,请确保为 max_size_in_bytes 设置一个较小的值或完全禁用查询缓存。
query_thread_log用于记录通过 log_query_threads=1 设置接收的查询线程的设置。查询记录在 system.query_thread_log 表中。
query_views_log记录视图(实时、具体化等)的设置取决于使用 log_query_views=1 设置接收到的查询。查询记录在 system.query_views_log 表中,而不是单独的文件中。
text_log用于记录文本消息的text_log 系统表的设置。
多出的字段:level — 将存储在表中的最大消息级别(默认为Trace)。
trace_logTrace_log系统表操作的设置。
asynchronous_insert_log用于记录异步插入的 asynchronous_insert_log 系统表的设置。
crash_logcrash_log系统表的设置
query_masking_rules基于正则表达式的规则,将应用于查询所有日志消息,然后将它们存储在服务器日志、system.query_log、system.text_log、system.processes 表以及发送到客户端的日志中。 这样可以防止敏感数据从 SQL 查询(如姓名、电子邮件、个人标识符或信用卡号)泄漏到日志中。配置字段:
name - 规则的名称(可选)
regexp - RE2 兼容的正则表达式(强制)
replace - 敏感数据的替换字符串(可选,默认情况下 - 六个星号)
屏蔽规则应用于整个查询(以防止由于格式错误/不可解析的查询而泄漏敏感数据)。system.events 表有计数器 QueryMaskingRulesMatch,它具有查询屏蔽规则匹配的总数。对于分布式查询,每个服务器必须单独配置,否则,传递到其他节点的子查询将不加掩码地存储。
remote_servers分布式表引擎和簇表功能使用的簇的配置。
timezone时区
tcp_port通过 TCP 协议与客户端通信的端口。
tcp_port_secure用于与客户端安全通信的 TCP 端口。 将其与 OpenSSL 设置一起使用。9440
mysql_port通过mysql协议与客户端通信的端口
postgresql_port通过postgresql协议与客户端通信的端口
tmp_path本地文件系统上用于存储处理大型查询的临时数据的路径。只能使用一个选项来配置临时数据存储:tmp_path、tmp_policy、temporary_data_in_cache。尾部斜杠是强制性的。例如<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>
user_files_path包含用户文件的目录,规定了使用file()函数的路径
user_scripts_path包含用户脚本文件的目录。 用于可执行的用户定义函数
user_defined_path包含用户定义文件的目录。 用于 SQL 用户定义函数
users_config包含以下内容的文件的路径:用户配置。访问权。设置配置文件。配额设置。
zookeeper包含允许 ClickHouse 与 ZooKeeper 集群交互的设置。当使用复制表时,ClickHouse 使用 ZooKeeper 来存储副本的元数据。 如果不使用复制表,这部分参数可以省略。该部分包含以下参数:
节点 — ZooKeeper 端点。 您可以设置多个端点。
session_timeout_ms — 客户端会话的最大超时时间(以毫秒为单位)。
operation_timeout_ms — 一项操作的最大超时时间(以毫秒为单位)。
root — 用作 ClickHouse 服务器使用的 znode 的根的 znode。 选修的。
fallback_session_lifetime.min - 如果通过zookeeper_load_balancing策略解析的第一个zookeeper主机不可用,则将zookeeper会话的生命周期限制到后备节点。 这样做是为了负载平衡的目的,以避免其中一台 Zookeeper 主机负载过重。 此设置设置回退会话的最短持续时间。 以秒为单位设置。 选修的。 默认为 3 小时。
fallback_session_lifetime.max - 如果通过zookeeper_load_balancing策略解析的第一个zookeeper主机不可用,则将zookeeper会话的生命周期限制到后备节点。 这样做是为了负载平衡的目的,以避免其中一台 Zookeeper 主机负载过重。 此设置设置回退会话的最大持续时间。 以秒为单位设置。 选修的。 默认值为 6 小时。
identity — ZooKeeper 可能需要用户和密码来授予对所请求的 znode 的访问权限。 选修的。
Zookeeper_load_balancing - 指定 ZooKeeper 节点选择的算法,有以下几种算法。
random - 随机选择 ZooKeeper 节点之一。
in_order - 选择第一个 ZooKeeper 节点,如果不可用则选择第二个,依此类推。
nearest_hostname - 选择主机名与服务器主机名最相似的 ZooKeeper 节点。
first_or_random - 选择第一个 ZooKeeper 节点,如果它不可用,则随机选择剩余的 ZooKeeper 节点之一。
round_robin - 选择第一个 ZooKeeper 节点,如果发生重新连接,则选择下一个。
use_minimalistic_part_header_in_zookeeper此设置仅适用于 MergeTree 系列。 可以指定:全局位于 config.xml 文件的 merge_tree 部分。ClickHouse 使用服务器上所有表的设置。 您可以随时更改设置。 当设置更改时,现有表会更改其行为。对于每张表。创建表时,指定相应的引擎设置。 即使全局设置发生更改,具有此设置的现有表的行为也不会更改。可能的值0 — 功能已关闭。1 — 功能已打开。如果 use_minimalistic_part_header_in_zookeeper = 1,则复制表使用单个 znode 紧凑地存储数据部分的标头。 如果表包含很多列,这种存储方式会显着减少Zookeeper中存储的数据量。注意:应用use_minimalistic_part_header_in_zookeeper = 1 后,您无法将 ClickHouse 服务器降级到不支持此设置的版本。 在集群中的服务器上升级 ClickHouse 时要小心。 不要一次升级所有服务器。 在测试环境中或仅在集群的几台服务器上测试 ClickHouse 的新版本会更安全。已使用此设置存储的数据部分标头无法恢复为其之前的(非紧凑)表示形式。0
distributed_ddl管理在集群上执行分布式 ddl 查询(CREATE、DROP、ALTER、RENAME)。 仅当启用 ZooKeeper 时才有效。<distributed_ddl> 中的可配置设置包括:
path:DDL查询的task_queue在Keeper中的路径
profile:用于执行DDL查询的配置文件
pool_size:可以同时运行多少个 ON CLUSTER 查询
max_tasks_in_queue:队列中可以容纳的最大任务数。 默认值为 1,000
task_max_lifetime:如果节点的年龄大于此值,则删除节点。 默认为 7 * 24 * 60 * 60(一周以秒为单位)
cleanup_delay_period:如果上次清理没有早于 cleanup_delay_period 秒前进行,则在收到新节点事件后开始清理。 默认值为 60 秒
access_control_pathClickHouse 服务器存储 SQL 命令创建的用户和角色配置的文件夹路径/var/lib/clickhouse/access/
user_directories包含设置的配置文件部分:具有预定义用户的配置文件的路径。存储由 SQL 命令创建的用户的文件夹路径。ZooKeeper 节点路径,其中存储和复制由 SQL 命令创建的用户(实验)。如果指定此部分,则不会使用 users_config 和 access_control_path 中的路径。user_directories 部分可以包含任意数量的项目,项目的顺序意味着它们的优先级(项目越高优先级越高)。
total_memory_profiler_step设置每个峰值分配步骤的堆栈跟踪的内存大小(以字节为单位)。 query_id等于空字符串的话数据存储在system.trace_log系统表中,4194304
total_memory_tracker_sample_probability允许收集随机分配和释放,并将它们写入 system.trace_log 系统表中,trace_type 等于具有指定概率的 MemorySample。 概率针对每次分配或取消分配,无论分配的大小如何。 请注意,仅当未跟踪内存量超过未跟踪内存限制(默认值为 4 MiB)时才会进行采样。 如果降低total_memory_profiler_step,则可以降低它。 您可以将total_memory_profiler_step设置为等于1以进行更细粒度的采样。0 — 禁止在 system.trace_log 系统表中写入随机分配和释放。0
compiled_expression_cache_size设置编译表达式的缓存大小(以字节为单位)。134217728
compiled_expression_cache_elements_size设置编译表达式的缓存大小(以元素为单位)。10000
display_secrets_in_show_and_select启用或禁用在表、数据库、表函数和字典的 SHOW 和 SELECT 查询中显示机密。希望查看机密的用户还必须打开 format_display_secrets_in_show_and_select 格式设置并具有 displaySecretsInShowAndSelect 权限。0禁用,1启用0

2.配置示例

2.1 interserver_http_credentials的示例与详解:

ClickHouse 支持动态服务器间凭证轮换,无需同时停止所有副本来更新其配置。 可以通过几个步骤更改凭据。
要启用身份验证,请将 interserver_http_credentials.allow_empty 设置为 true 并添加凭据。 这允许有身份验证和无身份验证的连接。

<interserver_http_credentials><user>admin</user><password>111</password><allow_empty>true</allow_empty>
</interserver_http_credentials>

配置所有副本后,将allow_empty 设置为 false 或删除此设置。 它强制使用新凭据进行身份验证。

要更改现有凭据,请将用户名和密码移至 interserver_http_credentials.old 部分,并使用新值更新用户和密码。 此时,服务器使用新凭据连接到其他副本,并接受使用新或旧凭据的连接。

<interserver_http_credentials><user>admin</user><password>222</password><old><user>admin</user><password>111</password></old><old><user>temp</user><password>000</password></old>
</interserver_http_credentials>

将新凭据应用于所有副本时,可能会删除旧凭据

2.2 zookeeper配置模版

<zookeeper><node><host>example1</host><port>2181</port></node><node><host>example2</host><port>2181</port></node><session_timeout_ms>30000</session_timeout_ms><operation_timeout_ms>10000</operation_timeout_ms><!-- Optional. Chroot suffix. Should exist. --><root>/path/to/zookeeper/node</root><!-- Optional. Zookeeper digest ACL string. --><identity>user:password</identity><!--<zookeeper_load_balancing>random / in_order / nearest_hostname / first_or_random / round_robin</zookeeper_load_balancing>--><zookeeper_load_balancing>random</zookeeper_load_balancing>
</zookeeper>

2.3 distributed_ddl的设置

<distributed_ddl><!-- Path in ZooKeeper to queue with DDL queries --><path>/clickhouse/task_queue/ddl</path><!-- Settings from this profile will be used to execute DDL queries --><profile>default</profile><!-- Controls how much ON CLUSTER queries can be run simultaneously. --><pool_size>1</pool_size><!--Cleanup settings (active tasks will not be removed)--><!-- Controls task TTL (default 1 week) --><task_max_lifetime>604800</task_max_lifetime><!-- Controls how often cleanup should be performed (in seconds) --><cleanup_delay_period>60</cleanup_delay_period><!-- Controls how many tasks could be in the queue --><max_tasks_in_queue>1000</max_tasks_in_queue>
</distributed_ddl>

2.4 user_directories配置的示例和解释

<user_directories><users_xml><path>/etc/clickhouse-server/users.xml</path></users_xml><local_directory><path>/var/lib/clickhouse/access/</path></local_directory>
</user_directories>

Users, roles, row policies, quotas, and profiles 也可以存储在 ZooKeeper 中:

<user_directories><users_xml><path>/etc/clickhouse-server/users.xml</path></users_xml><replicated><zookeeper_path>/clickhouse/access/</zookeeper_path></replicated>
</user_directories>

您还可以定义部分内存 - 表示仅将信息存储在内存中,而不写入磁盘,而 ldap - 表示将信息存储在 LDAP 服务器上。

要将 LDAP 服务器添加为本地未定义的用户的远程用户目录,请使用以下参数定义单个 ldap 部分:

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

二、query-level的变量配置

1.配置和查询方法

有多种方法可以设置 ClickHouse 查询级别设置。 设置按层进行配置,每个后续层都会重新定义设置的先前值。

定义设置的优先级顺序是:

  • 直接或在设置配置文件中将设置应用于用户
    • SQL(推荐)
    • 将一个或多个 XML 或 YAML 文件添加到 /etc/clickhouse-server/users.d
  • 会话设置
    • 从 ClickHouse Cloud SQL 控制台或 clickhouse 客户端以交互模式发送 SET setting=value。 同样,您可以在 HTTP 协议中使用 ClickHouse 会话。 为此,您需要指定 session_id HTTP 参数。
  • 查询设置
    • 非交互方式启动clickhouse客户端时,设置启动参数–setting=value。
    • 使用 HTTP API 时,传递 CGI 参数(URL?setting_1=value&setting_2=value…)。
    • 在 SELECT 查询的 SETTINGS 子句中定义设置。 设置值仅应用于该查询,并在执行查询后重置为默认值或之前的值。

1.1 创建用户时候直接设置

# 设置方法
CREATE USER ingester
IDENTIFIED WITH sha256_hash BY '7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3'
SETTINGS async_insert = 1# 查看方法
SHOW ACCESS# 也可以通过设置profile来配置
CREATE
SETTINGS PROFILE log_ingest SETTINGS async_insert = 0CREATE USER ingester
IDENTIFIED WITH sha256_hash BY '7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3'
SETTINGS PROFILE log_ingest

1.2 通过配置文件制定

<!-- /etc/clickhouse-server/users.d/users.xml-->
<clickhouse><profiles><log_ingest><async_insert>1</async_insert></log_ingest></profiles><users><ingester><password_sha256_hex>7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3</password_sha256_hex><profile>log_ingest</profile></ingester><default replace="true"><password_sha256_hex>7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3</password_sha256_hex><access_management>1</access_management><named_collection_control>1</named_collection_control></default></users>
</clickhouse>

1.3 设置session变量

# 这只是session级别变量
SET async_insert =1;
SELECT value FROM system.settings where name='async_insert';# 也可以设置变量为默认值,这样就会取这个变量的默认值来设置变量async_insert的默认值为0
SET async_insert = DEFAULT;

1.4 在查询中直接制定变量

INSERT INTO YourTable
SETTINGS async_insert=1
VALUES (...)

1.5 自定义变量的设置和查询

SET custom_a = 123;
# 这个查询可以查看query-level的value为true或者false的变量,具体值的变量无法查看
SELECT getSetting('custom_a');

2.具体配置

具体配置可看官方文档,后续会逐渐补充一些用到的配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/62710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整开发实现公众号主动消息推送,精彩内容即刻到达

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

管理类联考——逻辑——汇总篇——知识点突破——形式逻辑——联言选言——真假

角度——真值表 以上考点均是已知命题的真假情况做出的推理,还存在一种情况是已知肢判断P、Q的真假,断定干判断的真假,这种判断过程就是运用真值表。 P ∧ Q的真值 ①如何证明P ∧ Q为假? 由于P ∧ Q的本质是P、Q同时成立,所以只要P、Q有一个为假,整个命题就为假。 ②如…

使用 zipfile创建文件压缩工具

在本篇博客中&#xff0c;我们将使用 wxPython 模块创建一个简单的文件压缩工具。该工具具有图形用户界面&#xff08;GUI&#xff09;&#xff0c;可以选择源文件夹中的文件&#xff0c;将其压缩为 ZIP 文件&#xff0c;并将压缩文件保存到目标文件夹中。 C:\pythoncode\new\z…

各银行信用卡免息期最大可差7天

免息期比较 按照免息期从大到小排列&#xff0c;按每月30天计算 上海银行&#xff1a; 账单日25还款日&#xff0c;免息期25到55天 交通银行&#xff1a; 账单日24还款日&#xff0c;免息期24到54天 广发银行&#xff1a; 账单日22还款日&#xff0c;免息期22到52天 不仅…

python基础之miniConda管理器

一、介绍 MiniConda 是一个轻量级的 Conda 版本&#xff0c;它是 Conda 的精简版&#xff0c;专注于提供基本的环境管理功能。Conda 是一个流行的开源包管理系统和环境管理器&#xff0c;用于在不同的操作系统上安装、管理和运行软件包。 与完整版的 Anaconda 相比&#xff0c…

【力扣每日一题】2023.8.31 一个图中连通三元组的最小度数

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个无向图&#xff0c;要我们找出三个节点&#xff0c;这三个节点他们两两相连&#xff0c;这三个节点除了连接到对方的其他线…

【重要】Nand Flash基础知识与坏块管理机制的介绍

概述 Flash名称的由来&#xff0c;Flash的擦除操作是以block块为单位的&#xff0c;与此相对应的是其他很多存储设备&#xff0c;是以bit位为最小读取/写入的单位&#xff0c;Flash是一次性地擦除整个块&#xff1a;在发送一个擦除命令后&#xff0c;一次性地将一个block&…

vue之若依分页组件的导入使用(不直接使用若依框架,只使用若依分页组件)

vue之若依分页组件的导入使用 步骤 步骤&#xff1a; 工具类&#xff1a;src/utils/scroll-to.js 样式&#xff1a;src/assets/styles/ruoyi.scss 组件&#xff1a;src/components/Pagination 全局挂载&#xff1a;src/main.js 复制工具类 复制若依框架中的src/utils/scrol…

逻辑回归的含义

参考&#xff1a;线性回归 & 逻辑回归 问题 1、线性回归&#xff08;Linear Regression&#xff09;和逻辑回归&#xff08;Logistic Regression&#xff09;有什么联系&#xff1f; 2、逻辑回归的“逻辑”、“回归是什么意思”&#xff1f; 回答1 线性回归假设因变量…

Shell编程之函数

目录 基本概念 自定义函数 系统函数 1.read 2.basename 3.dirname 基本概念 将一段代码组合封装在一起实现某个特定的功能或返回某个特定的值&#xff0c;然后给这段代码取个名字&#xff0c;也就是函数名&#xff0c;在需要实现某个特定功能的时候直接调用函数名即可。 函…

【FPGA】verilog语法的学习与应用 —— 位操作 | 参数化设计

【FPGA】verilog语法的学习与应用 —— 位操作 | 参数化设计 学习新语法&#xff0c;争做新青年 计数器实验升级&#xff0c;让8个LED灯每个0.5s的速率循环闪烁&#xff0c;流水灯ahh好久不见~ 去年光这个就把我折磨够呛。。我肉眼可见的脱发就是从那时候开始的。。在那两个月…

目标检测后的图像上绘制边界框和标签

效果如图所示&#xff0c;有个遗憾就是CV2在图像上显示中文有点难&#xff0c;也不想用别的了&#xff0c;所以改成了英文&#xff0c;代码在下面了&#xff0c;一定要注意一点&#xff0c;就是标注文件的读取一定要根据自己的实际情况改一下&#xff0c;我的所有图像的标注文件…

TDengine函数大全-系统函数

以下内容来自 TDengine 官方文档 及 GitHub 内容 。 以下所有示例基于 TDengine 3.1.0.3 TDengine函数大全 1.数学函数 2.字符串函数 3.转换函数 4.时间和日期函数 5.聚合函数 6.选择函数 7.时序数据库特有函数 8.系统函数 系统函数 TDengine函数大全DATABASECLIENT_VERSIONSE…

java八股文面试[JVM]——双亲委派模型

1.当AppClassLoader去加载一个class时&#xff0c;它首先不会自己去尝试加载这个类&#xff0c;而是把类加载请求委托给父加载器ExtClassLoader去完成。 2.当ExtClassLoader去加载一个class时&#xff0c;它首先也不会去尝试加载这个类&#xff0c;而是把类加载请求委托给父加载…

【TI毫米波雷达笔记】SOC外设初始化配置及驱动(以IWR6843AOP为例)

【TI毫米波雷达笔记】SOC外设初始化配置及驱动&#xff08;以IWR6843AOP为例&#xff09; 最基本的工程建立好以后 需要给SOC进行初始化配置 SOC_Cfg socCfg; //SOC配置结构体Task_Params taskParams; //任务参数SOC_Handle socHandle;ESM_init(0U); …

关于Maxwell与Kafka和数据库的监控

1.Maxwell的配置 其实就是配置两端的配置信息,都要能连接上,然后才能去传输数据 config.properties #Maxwell数据发送目的地&#xff0c;可选配置有stdout|file|kafka|kinesis|pubsub|sqs|rabbitmq|redis producerkafka # 目标Kafka集群地址 kafka.bootstrap.servershadoop102…

OpenShift 4 - 用 Prometheus 和 Grafana 监视用户应用定制的观测指标(视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.13 的环境中验证 文章目录 OpenShift 的监控功能构成部署被监控应用用 OpenShift 内置功能监控应用用 Grafana 监控应用安装 Grafana 运行环境配置 Grafana 数据源定制监控 Dashboard 演示视…

学习JAVA打卡第四十九天

Random类 尽管可以使用math类调用static方法random&#xff08;&#xff09;返回一个0~1之间的随机数。&#xff08;包括0.0但不包括0.1&#xff09;&#xff0c;即随机数的取值范围是[0.0&#xff0c;1.0]的左闭右开区间。 例如&#xff0c;下列代码得到1&#xff5e;100之间…

网络渗透day6-面试01

&#x1f609; 和渗透测试相关的面试问题。 介绍 如果您想自学网络渗透&#xff0c;有许多在线平台和资源可以帮助您获得相关的知识和技能。以下是一些受欢迎的自学网络渗透的平台和资源&#xff1a; Hack The Box: Hack The Box&#xff08;HTB&#xff09;是一个受欢迎的平…

mvc 异常处理源码解析(3)

目录 准备源码跟踪ExceptionHandlerExceptionResolver初始化ExceptionHandlerExceptionResolver注入ExceptionHandlerExceptionResolver中exceptionHandlerAdviceCache初始化ExceptionHandlerMethodResolver中mappedMethods初始化 结尾 准备 准备一个controller类, 里面抛出一…