clickhouse配置项system.settings详解
调研学习clickhouse,上一章介绍了clickhouse的配置项users.xml,这一章介绍另一大项config.xml
从clickhouse的官网看,clickhouse的配置参数主要分了两大方面,一个是config.xml中的服务器配置参数(Server Settings),另一个是常规配置参数(setttings)。
这里介绍常规配置参数(settings)
翻译自:https://clickhouse.tech/docs/en/operations/settings/settings/
版本:v20.10
目录
distributed_product_mode
enable_optimize_predicate_expression
fallback_to_stale_replicas_for_distributed_queries
force_index_by_date
force_primary_key
force_data_skipping_indices
format_schema
fsync_metadata
enable_http_compression
http_zlib_compression_level
http_native_compression_disable_checksumming_on_decompress
send_progress_in_http_headers
max_http_get_redirects
input_format_allow_errors_num
input_format_allow_errors_ratio
input_format_values_interpret_expressions
input_format_values_deduce_templates_of_expressions
input_format_values_accurate_types_of_literals
input_format_defaults_for_omitted_fields
input_format_tsv_empty_as_default
input_format_tsv_enum_as_number
input_format_null_as_default
input_format_skip_unknown_fields
input_format_import_nested_json
input_format_with_names_use_header
date_time_input_format
date_time_output_format
join_default_strictness
join_any_take_last_row
join_use_nulls
partial_merge_join_optimizations
partial_merge_join_rows_in_right_blocks
join_on_disk_max_files_to_merge
any_join_distinct_right_table_keys
temporary_files_codec
max_block_size
preferred_block_size_bytes
merge_tree_min_rows_for_concurrent_read
merge_tree_min_bytes_for_concurrent_read
merge_tree_min_rows_for_seek
merge_tree_min_bytes_for_seek
merge_tree_coarse_index_granularity
merge_tree_max_rows_to_use_cache
merge_tree_max_bytes_to_use_cache
min_bytes_to_use_direct_io
network_compression_method
network_zstd_compression_level
log_queries
log_queries_min_query_duration_ms
log_queries_min_type
log_query_threads
max_insert_block_size
min_insert_block_size_rows
min_insert_block_size_bytes
max_replica_delay_for_distributed_queries
max_threads
max_insert_threads
max_compress_block_size
min_compress_block_size
max_query_size
max_parser_depth
Interactive_delay
connect_timeout,receive_timeout,send_timeout
cancel_http_readonly_queries_on_client_close
poll_interval
max_distributed_connections
distribution_connections_pool_size
connect_timeout_with_failover_ms
connection_pool_max_wait_ms
connections_with_failover_max_tries
extremes
kafka_max_wait_ms
use_uncompressed_cache
replace_running_query
replace_running_query_max_wait_ms
stream_flush_interval_ms
load_balancing
Random (by Default)
Nearest Hostname
In Order
First or Random
Round Robin
prefer_localhost_replica
totals_mode
totals_auto_threshold
max_parallel_replicas
compile
min_count_to_compile
output_format_json_quote_64bit_integers
output_format_json_quote_denormals
format_csv_delimiter
input_format_csv_unquoted_null_literal_as_null
input_format_csv_enum_as_number
output_format_csv_crlf_end_of_line
output_format_tsv_crlf_end_of_line
insert_quorum
insert_quorum_timeout
select_sequential_consistency
insert_deduplicate
deduplicate_blocks_in_dependent_materialized_views
max_network_bytes
max_network_bandwidth
max_network_bandwidth_for_user
max_network_bandwidth_for_all_users
count_distinct_implementation
distribution_group_by_no_merge
optimize_skip_unused_shards
allow_nondeterministic_optimize_skip_unused_shards
optimize_skip_unused_shards_nesting
force_optimize_skip_unused_shards
optimize_distributed_group_by_sharding_key
optimize_throw_if_noop
distribution_replica_error_half_life
distributed_replica_error_cap
distribution_replica_max_ignored_errors
distribution_directory_monitor_sleep_time_ms
distribution_directory_monitor_max_sleep_time_ms
distribution_directory_monitor_batch_inserts
os_thread_priority
query_profiler_real_time_period_ns
query_profiler_cpu_time_period_ns
allow_introspection_functions
input_format_parallel_parsing
min_chunk_bytes_for_parallel_parsing
output_format_avro_codec
output_format_avro_sync_interval
format_avro_schema_registry_url
input_format_avro_allow_missing_fields
background_pool_size
parallel_distributed_insert_select
insert_distributed_sync
use_compact_format_in_distributed_parts_names
background_buffer_flush_schedule_pool_size
background_move_pool_size
background_schedule_pool_size
always_fetch_merged_part
background_distributed_schedule_pool_size
validate_polygons
transform_null_in
low_cardinality_max_dictionary_size
low_cardinality_use_single_dictionary_for_part
low_cardinality_allow_in_native_format
allow_suspicious_low_cardinality_types
min_insert_block_size_rows_for_materialized_views
min_insert_block_size_bytes_for_materialized_views
output_format_pretty_grid_charset
optimize_read_in_order
mutations_sync
ttl_only_drop_parts
lock_acquire_timeout
cast_keep_nullable
output_format_pretty_max_value_width
output_format_pretty_row_numbers
allow_experimental_bigint_types
persistent
output_format_tsv_null_representation
distributed_product_mode
更改分布式子查询的行为。
当查询包含分布式表的乘积时,即当分布式表的查询包含分布式表的非GLOBAL子查询时,ClickHouse将应用此设置。
限制条件:
- 仅适用于IN和JOIN子查询。
- 仅当FROM部分使用包含多个分片的分布式表时。
- 如果子查询涉及包含多个分片的分布式表。
- 不用于表值远程功能。
可能的值:
deny
- 默认值。禁止使用这些类型的子查询(返回“ Double-distributed in / JOIN子查询被拒绝”异常)。local
—将子查询中的数据库和表替换为目标服务器(碎片)的本地查询,而保留普通的IN
/JOIN.
global
—将IN
/JOIN
查询替换为GLOBAL IN
/GLOBAL JOIN.
allow
—允许使用这些类型的子查询。
enable_optimize_predicate_expression
打开SELECT
查询中的谓词下推。
谓词下推可能会大大减少分布式查询的网络流量。
可能的值:
- 0-禁用。
- 1-启用。
默认值:1。
用法
考虑以下查询:
SELECT count() FROM test_table WHERE date = '2018-10-10'
SELECT count() FROM (SELECT * FROM test_table) WHERE date = '2018-10-10'
如果为enable_optimize_predicate_expression = 1
,则这些查询的执行时间是相等的,因为ClickHouseWHERE
在处理子查询时会应用于子查询。
如果为enable_optimize_predicate_expression = 0
,则第二个查询的执行时间会更长,因为该WHERE
子句适用于子查询完成后的所有数据。
fallback_to_stale_replicas_for_distributed_queries
如果没有更新的数据,则强制查询到过期的副本。请参见复制。
ClickHouse从表的过时副本中选择最相关的。
当在指向复制表的分布式表中执行SELECT时使用。
默认情况下,为1(启用)。
force_index_by_date
如果无法按日期使用索引,则禁用查询执行。
与MergeTree系列中的表一起使用。
如果force_index_by_date=1
,则ClickHouse将检查查询是否具有可用于限制数据范围的日期键条件。如果没有合适的条件,它将引发异常。
但是不会检查该条件是否会减少读取的数据量,例如,即使Date != ' 2000-01-01 '
条件与表中的所有数据匹配,也可以接受。更多信息,请参见MergeTree。
force_primary_key
如果无法通过主键进行索引,则禁用查询执行。
与MergeTree系列中的表一起使用。
如果force_primary_key=1
,则ClickHouse会检查查询是否具有可用于限制数据范围的主键条件。如果没有合适的条件,它将引发异常。
但是不会检查该条件是否会减少读取的数据量。更多信息,请参见MergeTree。
force_data_skipping_indices
如果未使用传递的二级索引,则禁用查询执行。
考虑以下示例。
CREATE TABLE data
(key Int,d1 Int,d1_null Nullable(Int),INDEX d1_idx d1 TYPE minmax GRANULARITY 1,INDEX d1_null_idx assumeNotNull(d1_null) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;SELECT * FROM data_01515;
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices=''; -- 查询将产生CANNOT_PARSE_TEXT错误.
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices='d1_idx'; -- 查询将产生 INDEX_NOT_USED 错误.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='d1_idx'; -- Ok.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`'; -- Ok (全功能解析器的示例).
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- 查询将产生INDEX_NOT_USED错误,因为未使用d1_null_idx。
SELECT * FROM data_01515 WHERE d1 = 0 AND assumeNotNull(d1_null) = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- Ok.
与MergeTree系列中的表一起使用。
format_schema
当您使用需要架构定义的格式(例如 Cap’n Proto or Protobuf. ),此参数很有用。该值取决于格式。
fsync_metadata
当写入.sql文件时启用或者禁用 fsync 。默认启用。
如果服务器具有数百万个不断创建和销毁的小表,则禁用它是有意义的。
enable_http_compression
在对HTTP请求的响应中启用或禁用数据压缩。
有关更多信息,请阅读HTTP接口描述。
可能的值:
- 0-禁用。
- 1-启用。
默认值:0。
http_zlib_compression_level
如果enable_http_compression = 1,则设置对HTTP请求的响应中的数据压缩级别。
可能的值:1到9之间的数字。
默认值:3。
http_native_compression_disable_checksumming_on_decompress
从客户端解压缩HTTP POST数据时启用或禁用校验和验证。仅用于ClickHouse本机压缩格式(不适用于gzip
或deflate
)。
有关更多信息,请阅读HTTP接口描述。
可能的值:
- 0-禁用。
- 1-启用。
默认值:0。
send_progress_in_http_headers
在clickhouse-server响应中启用或禁用X-ClickHouse-Progress HTTP响应标头。
有关更多信息,请阅读HTTP接口描述。
可能的值:
- 0-禁用。
- 1-启用。
默认值:0。
max_http_get_redirects
限制URL引擎表的最大HTTP GET重定向hops数。
该设置适用于两种类型的表:由CREATE TABLE查询创建的表和url表函数创建的表。
可能的值:
- 任何正整数,表示hops数量。
- 0-不允许跳。
默认值:0。
input_format_allow_errors_num
设置从文本格式(CSV,TSV等)读取时可接受的最大错误数。
默认值为0。
始终将其与input_format_allow_errors_ratio配对。
如果在读取行时发生错误,但错误计数器仍小于input_format_allow_errors_num
,则ClickHouse会忽略该行并继续进行下一行。
如果同时超过input_format_allow_errors_num
和input_format_allow_errors_ratio
,则ClickHouse会引发异常。
input_format_allow_errors_ratio
设置从文本格式(CSV,TSV等)读取时允许的最大错误百分比。
错误百分比设置为0到1之间的浮点数。
默认值为0。
始终将其与input_format_allow_errors_num配对。
如果在读取行时发生错误,但错误计数器仍小于input_format_allow_errors_ratio
,则ClickHouse会忽略该行并继续进行下一行。
如果同时超过input_format_allow_errors_num
和input_format_allow_errors_ratio
,则ClickHouse会引发异常。
input_format_values_interpret_expressions
如果快速流解析器无法解析数据,则启用或禁用完整的SQL解析器。
此设置仅用于数据插入时的“Values”格式。有关语法解析的更多信息,请参见语法
可能的值:
-
0-禁用。
在这种情况下,您必须提供格式化的数据。请参阅格式部分。
-
1-启用。
在这种情况下,可以将SQL表达式用作值,但是这种方式的数据插入速度要慢得多。如果仅插入格式化的数据,设置为0比较好
默认值:1。
使用例
插入具有不同设置的DateTime类型值。
SET input_format_values_interpret_expressions = 0;
INSERT INTO datetime_t VALUES (now())Exception on client:
Code: 27. DB::Exception: Cannot parse input: expected ) before: now()): (at row 1)SET input_format_values_interpret_expressions = 1;
INSERT INTO datetime_t VALUES (now())Ok.
最后一个查询等效于以下内容:
SET input_format_values_interpret_expressions = 0;
INSERT INTO datetime_t SELECT now()
Ok.
input_format_values_deduce_templates_of_expressions
为“Values”格式的SQL表达式启用或禁用模板推导。它允许解析和解释Values中的
表达式
可能的值:
- 0-禁用。
- 1-启用。
默认值:1。
对于以下查询:
INSERT INTO test VALUES (lower('Hello')), (lower('world')), (lower('INSERT')), (upper('Values')), ...
- 如果
input_format_values_interpret_expressions=1
和format_values_deduce_templates_of_expressions=0
,则为每行分别解释表达式(这对于大量的行来说非常慢)。 - 如果
input_format_values_interpret_expressions=0
与format_values_deduce_templates_of_expressions=1
在第一,第二和第三行表达式是使用模板解析的lower(String)
和解释,第四行中的表达进行解析与另一模板(upper(String)
)。 - 如果
input_format_values_interpret_expressions=1
和format_values_deduce_templates_of_expressions=1
,则与前面的情况相同,但如果无法推断出模板,则还允许回退到单独解释表达式。
input_format_values_accurate_types_of_literals
仅当input_format_values_deduce_templates_of_expressions = 1时才使用此设置。某些列的表达式可能具有相同的结构,但包含不同类型的数值,例如:
(..., abs(0), ...), -- UInt64 literal
(..., abs(3.141592654), ...), -- Float64 literal
(..., abs(-1), ...), -- Int64 literal
可能的值:
-
0-禁用。
在这种情况下,ClickHouse可能对某些文字使用更通用的类型(例如,
Float64
或Int64
代替UInt64
),但是它可能导致溢出和精度问题。 -
1-启用。
在这种情况下,ClickHouse检查文字的实际类型并使用相应类型的表达式模板。在某些情况下,它可能会大大减慢的表达评估速度
Values
。
默认值:1。
input_format_defaults_for_omitted_fields
执行INSERT查询时,将省略的输入列值替换为各个列的默认值。此选项仅适用于JSONEachRow,CSV和TabSeparated格式。
注意:启用此选项后,扩展表元数据将从服务器发送到客户端。它消耗了服务器上的其他计算资源,并可能降低性能。
可能的值:
- 0-禁用。
- 1-启用。
默认值:1。
input_format_tsv_empty_as_default
启用后,将TSV中的空白输入字段替换为默认值。 对于复杂的默认表达式,也必须启用input_format_defaults_for_omitted_fields。
默认禁用。
input_format_tsv_enum_as_number
对于TSV输入格式,启用或禁用将枚举值解析枚举ID。
可能的值:
0 —枚举值被解析为值。
1-枚举值被解析为枚举ID
默认值:0。
举例:
CREATE TABLE table_with_enum_column_for_tsv_insert (Id Int32,Value Enum('first' = 1, 'second' = 2)) ENGINE=Memory();
--当input_format_tsv_enum_as_number启用时
SET input_format_tsv_enum_as_number = 1;
INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2;
INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 103 1;
SELECT * FROM table_with_enum_column_for_tsv_insert;
--结果
┌──Id─┬─Value──┐
│ 102 │ second │
└─────┴────────┘
┌──Id─┬─Value──┐
│ 103 │ first │
└─────┴────────┘--当input_format_tsv_enum_as_number禁用时
SET input_format_tsv_enum_as_number = 0;
INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2;
--结果
引发异常
(20.8的时候还没有)
input_format_null_as_default
如果输入数据包含NULL,但对应列的数据类型不是Nullable(T)(对于文本输入格式),则启用或禁用默认值。
input_format_skip_unknown_fields
启用或禁用跳过多余数据的插入。
写入数据时,如果输入数据包含目标表中不存在的列,则ClickHouse会引发异常。如果启用了跳过,则ClickHouse不会插入额外的数据,也不会引发异常。
支持的格式:
- JSONEachRow
- CSVWithNames
- TabSeparatedWithNames
- TSKV
可能的值:
- 0-禁用。
- 1-启用。
默认值:0。
input_format_import_nested_json
启用或禁用带有嵌套对象的JSON数据插入。
支持的格式:
- JSONEachRow
可能的值:
- 0-禁用。
- 1-启用。
默认值:0。
也可以看看:
嵌套结构
input_format_with_names_use_header
启用或禁用在插入数据时检查列顺序。
为了提高插入性能,如果您确定输入数据的列顺序与目标表中的顺序相同,建议禁用此检查。
支持的格式:
- CSVWithNames
- TabSeparatedWithNames
可能的值:
- 0-禁用。
- 1-启用。
默认值:1。
date_time_input_format
允许选择日期和时间的文本表示的解析器。
该设置不适用于日期和时间功能。
可能的值:
-
'best_effort'
—启用扩展解析。ClickHouse可以解析基本
YYYY-MM-DD HH:MM:SS
格式以及所有ISO 8601日期和时间格式。例如,'2018-06-08T01:02:03.000Z'
。 -
'basic'
—使用基本解析器。ClickHouse只能解析基本格式
YYYY-MM-DD HH:MM:SS
或YYYY-MM-DD
格式。例如,'2019-08-20 10:18:56'
或2019-08-20
。
默认值:'basic'
。
也可以看看:
- DateTime数据类型。
- 处理日期和时间的功能。
date_time_output_format
允许选择日期和时间的文本表示形式的不同输出格式。
可能值:
-
'simple'
-简单的输出格式。Clickhouse输出日期和时间
YYYY-MM-DD hh:mm:ss
格式。例如,'2019-08-20 10:18:56'
。根据数据类型的时区(如果存在)或服务器时区执行计算。 -
'iso'
-ISO输出格式。Clickhouse以ISO 8601
YYYY-MM-DDThh:mm:ssZ
格式输出日期和时间。例如,'2019-08-20T10:18:56Z'
。请注意,输出以UTC表示(Z
表示UTC)。 -
'unix_timestamp'
-Unix时间戳输出格式。Clickhouse以Unix时间戳格式输出日期和时间。例如
'1566285536'
。
默认值:'simple'
。
也可以看看:
- DateTime数据类型。
- 处理日期和时间的功能。
join_default_strictness
设置JOIN子句的默认严格性。
可能的值:
ALL
—如果右表具有多个匹配的行,则ClickHouse从匹配的行创建笛卡尔乘积。这是JOIN
标准SQL的正常行为。ANY
—如果右表具有多个匹配的行,则仅连接找到的第一个行。如果右表只有一个匹配行,则ANY
和的结果ALL
相同。ASOF
—用于加入不确定匹配的序列。Empty string
-如果ALL
还是ANY
未在查询中指定的,ClickHouse抛出异常。
默认值:ALL
。
join_any_take_last_row
更改“ ANY”的联接操作行为。
可能的值:
- 0-如果右表具有多个匹配行,则仅连接找到的第一个。
- 1-如果右表具有多个匹配行,则仅连接找到的最后一个。
默认值:0。
也可以看看:
- JOIN子句
- 联接表引擎
- join_default_strictness
join_use_nulls
设置JOIN行为的类型。合并表格时,可能会出现空单元格。ClickHouse根据此设置以不同的方式填充它们。
可能的值:
- 0-空单元格用相应字段类型的默认值填充。
- 1-
JOIN
行为与标准SQL相同。相应字段的类型将转换为Nullable,并且空单元格将填充NULL。
默认值:0。
partial_merge_join_optimizations
禁用JOIN查询的部分合并联接算法中的优化。
默认情况下,此设置启用可能导致错误结果的改进。如果您在查询中看到可疑的结果,请通过此设置禁用优化。在不同版本的ClickHouse服务器中,优化可能会有所不同。
可能的值:
- 0-禁用优化。
- 1-启用优化。
默认值:1。
partial_merge_join_rows_in_right_blocks
在JOIN查询的部分合并联接算法中限制右侧联接数据块的大小。
ClickHouse server:
- 将右侧联接数据分割为最多为指定行数的块。
- 用最小和最大值索引每个块。
- 如果可能,将准备好的块卸载到磁盘。
可能的值:
- 任何正整数。推荐的值范围:[1000,100000]。
默认值:65536
join_on_disk_max_files_to_merge
限制在磁盘上执行MergeJoin操作时允许并行排序的文件数。
设置的值越大,使用的RAM越多,所需的磁盘I / O越少。
可能的值:
- 从2开始的任何正整数。
默认值:64。
any_join_distinct_right_table_keys
在ANY INNER|LEFT JOIN
操作中启用旧版ClickHouse服务器行为。
启用旧版行为时:
t1 ANY LEFT JOIN t2
andt2 ANY RIGHT JOIN t1
操作的结果是不相等的,因为ClickHouse使用具有多对一的从左到右的表键映射的逻辑。- 像SEMI LEFT JOIN操作一样,ANY INNER JOIN操作的结果包含左表中的所有行。
禁用旧版行为时:
t1 ANY LEFT JOIN t2
和t2 ANY RIGHT JOIN t1
操作的结果相等,因为ClickHouse使用在操作中提供一对多键映射的逻辑ANY RIGHT JOIN
。ANY INNER JOIN
运算结果在左右表中每个键包含一行。
可能的值:
- 0-传统行为被禁用。
- 1-启用传统行为。
默认值:0。
也可以看看:
- JOIN strictness
temporary_files_codec
为磁盘上的排序和联接操作中使用的临时文件设置压缩编解码器。
可能的值:
- LZ4 —应用LZ4压缩。
- 无-不应用压缩。
默认值:LZ4。
max_block_size
在ClickHouse中,数据由块(列部分的集合)处理。单个块的内部处理周期足够有效,但是每个块都有明显的开销。单个块的内部处理周期性能足够好,但是每个块都有明显的开销。
对于要从表中加载的块大小(以行计数),建议使用max_block_size设置。
块的大小不能太小,也不能太大,避免在多个线程中提取大量列时占用过多内存,并至少保留一些缓存。
默认值:65,536
并非总是从表中加载max_block_size大小的块。 如果很明显需要检索较少的数据,则处理较小的块。
preferred_block_size_bytes
和使用max_block_size的目的相同,但是是设置快的大小(bytes),自动确定行数。当然块大小不能超过max_block_size行。
默认值:1,000,000。仅当从MergeTree引擎读取时才有效。
merge_tree_min_rows_for_concurrent_read
如果从一个mergeTree表中读取的行数超过了merge_tree_min_rows_for_concurrent_read,那么clickhouse尝试使用多线程进行并发读取。
可能的值:
- 任何正整数。
默认值:163840
merge_tree_min_bytes_for_concurrent_read
如果从一个mergeTree表中读取的字节数超过了merge_tree_min_bytes_for_concurrent_read,那么clickhouse尝试使用多线程进行并发读取。
可能的值:
- 任何正整数。
默认值:251658240
merge_tree_min_rows_for_seek
如果要在一个文件中读取的两个数据块之间的距离小于merge_tree_min_rows_for_seek
行,则ClickHouse不会搜索文件,而是顺序读取数据。
可能的值:
- 任何正整数。
默认值:0。
merge_tree_min_bytes_for_seek
如果要在一个文件中读取的两个数据块之间的距离小于merge_tree_min_bytes_for_seek的字节时
,则ClickHouse不会搜索文件,而是顺序读取数据。
可能的值:
- 任何正整数。
默认值:0。
merge_tree_coarse_index_granularity
搜索数据时,ClickHouse检查索引文件中的数据标记。如果ClickHouse发现所需键在某个范围内,则会将该范围划分为多个merge_tree_coarse_index_granularity
子范围,然后在该范围内递归搜索所需键。
可能的值:
- 任何正偶数整数。
默认值:8。
merge_tree_max_rows_to_use_cache
如果ClickHouse在一个查询中读取的行数超过了merge_tree_max_rows_to_use_cache行,则它不使用未压缩块的缓存。
ClickHouse使用此缓存来加快对重复的小型查询的响应。此设置可保护高速缓存免受读取大量数据的查询的破坏。
uncompressed_cache_size定义未压缩块的高速缓存的大小。
可能的值:
- 任何正整数。
默认值:128×8192。
merge_tree_max_bytes_to_use_cache
如果ClickHouse在一个查询中读取的字节数超过了merge_tree_max_bytes_to_use_cache行,则它不使用未压缩块的缓存。
ClickHouse使用此缓存来加快对重复的小型查询的响应。此设置可保护高速缓存免受读取大量数据的查询的破坏。
uncompressed_cache_size定义未压缩块的高速缓存的大小。
可能的值:
- 任何正整数。
默认值:2013265920
min_bytes_to_use_direct_io
使用直接I / O访问存储磁盘所需的最小数据量。
从表格读取数据时,ClickHouse使用此设置。如果要读取的所有数据的总存储量超过min_bytes_to_use_direct_io
字节,则ClickHouse会使用该选项从存储磁盘读取数据。
可能的值:
- 0-直接I / O被禁用。
- 正整数。
默认值:0。
network_compression_method
设置用于服务器之间以及服务器与clickhouse-client之间的通信的数据压缩方法。
可能的值:
LZ4
—设置LZ4压缩方法。ZSTD
—设置ZSTD压缩方法。
默认值:LZ4
。
也可以看看
- network_zstd_compression_level
network_zstd_compression_level
调整ZSTD压缩级别。仅在network_compression_method设置为ZSTD时使用
。
可能的值:
- 从1到15的正整数。
默认值:1
。
log_queries
设置查询日志记录。
使用此设置发送到ClickHouse的查询将根据服务器配置参数中的query_log规则记录。
log_queries=1
log_queries_min_query_duration_ms
查询运行到下表所需的最短时间:
system.query_log
system.query_thread_log
只有具有以下类型的查询才会进入日志:
QUERY_FINISH
-
EXCEPTION_WHILE_PROCESSING
-
类型:毫秒
- 默认值:0(任何查询)
log_queries_min_type
query_log
最小类型的日志。
可能的值:
- QUERY_START
(=1
)
- QUERY_FINISH
(=2
)
- EXCEPTION_BEFORE_START
(=3
)
- EXCEPTION_WHILE_PROCESSING
(=4
)
默认值:QUERY_START
。
用来限制进入query_log的条目,如果只对错误信息感兴趣,可以使用
EXCEPTION_WHILE_PROCESSING
log_query_threads
设置查询线程日志记录。
使用此设置,运行查询的线程将根据服务器配置参数中的query_thread_log规则记录。
log_query_threads=1
max_insert_block_size
要插入表中的块的大小(以行数计)。
此设置仅在服务器构成块的情况下适用。
例如,对于通过HTTP接口的INSERT,服务器解析数据格式并形成指定大小的块。
但是,当使用clickhouse-client时,客户端会解析数据本身,并且服务器上的“ max_insert_block_size”设置不会影响插入的块的大小。使用INSERT SELECT时,该设置也没有作用,因为数据是使用SELECT之后形成的相同块插入的。
默认值:1,048,576
默认值略大于max_block_size。这样做的原因是因为某些表引擎(* MergeTree)在磁盘上为每个插入的块形成了一个数据部分,这是一个相当大的实体。类似地,* MergeTree表在插入期间对数据进行排序,并且足够大的块大小允许对RAM中的更多数据进行排序。
min_insert_block_size_rows
块中可以通过INSERT查询插入到表中的最小行数。较小的块将被压缩为较大的块。
可能的值:
- 正整数。
- 0-禁止挤压。
默认值:1048576
min_insert_block_size_bytes
块中可以通过INSERT查询插入到表中的最小字节数。较小的块将被压缩为较大的块。
可能的值:
- 正整数。
- 0-禁止挤压。
默认值:268435456
max_replica_delay_for_distributed_queries
为分布式查询禁用滞后副本。请参见复制。
以秒为单位设置时间。如果副本滞后于设置值,则不使用该副本。
默认值:300。
SELECT
从指向复制表的分布式表执行时使用。
max_threads
查询处理线程的最大数量,不包括用于从远程服务器检索数据的线程(请参见“ max_distributed_connections”参数)。
这个参数适用于,处于查询处理管道的同一阶段的并行执行的线程。
例如,当从表中读取数据时,如果可以使用函数求值,使用WHERE进行过滤并使用至少“ max_threads”个线程并行地为GROUP BY进行预聚合,则可以使用“ max_threads”。
默认值:物理CPU内核数。
如果通常一次在服务器上运行少于一个SELECT查询,则将此参数设置为稍小于处理器核心实际数量的值。
对于由于LIMIT而快速完成的查询,可以设置较低的“ max_threads”。例如,如果每个块中都有必要的条目数,并且max_threads = 8,则将检索8个块,尽管仅读取一个块就足够了。
max_threads
值越小,消耗的内存越少。
max_insert_threads
执行INSERT SELECT
查询的最大线程数。
可能的值:
- 0(或1)—
INSERT SELECT
无并行执行。 - 正整数。大于1。
默认值:0。
并行INSERT SELECT仅在SELECT部分并行执行时才有效,见max_threads的设置。
较高的值将导致较高的内存使用率。
max_compress_block_size
在压缩以写入表之前,未压缩数据块的最大大小。默认情况下为1,048,576(1 MiB)。
如果减小大小,则由于高速缓存局部性,压缩率将显着降低,压缩和解压缩速度会略有增加,并且内存消耗也会减少。
通常没有任何理由更改此设置。
不要将压缩块(由字节组成的内存块)与查询处理块(表中的一组行)混淆。
min_compress_block_size
对于MergeTree表。为了减少处理查询时的延迟,如果块的大小大于等于'min_compress_block_size',则在写入下一个标记时将压缩该块。默认值为65,536。
如果未压缩的数据小于“ max_compress_block_size”,则块的实际大小不小于此值且不小于一个标记的数据量。
让我们来看一个例子。假设在创建表期间将“ index_granularity”设置为8192。
我们正在编写一个UInt32类型的列(每个值4个字节)。当写入8192行时,总计将为32 KB数据。由于min_compress_block_size = 65,536,因此每两个标记将形成一个压缩块。
我们正在编写一个String类型的URL列(每个值的平均大小为60个字节)。当写入8192行时,平均值将略小于500 KB数据。由于大于65,536,将为每个标记形成一个压缩块。在这种情况下,从磁盘读取单个标记范围内的数据时,不会解压缩多余的数据。
通常没有任何理由更改此设置。
max_query_size
可以带入RAM以使用SQL解析器进行解析的查询的最大部分。
INSERT查询还包含由单独的流解析器(消耗O(1)RAM)处理的INSERT数据,该数据不包括在此限制中。
默认值:256kb
max_parser_depth
限制递归下降解析器中的最大递归深度。允许控制堆栈大小。
可能的值:
- 正整数。
- 0-递归深度是无限的。
预设值:1000。
Interactive_delay
检查请求执行是否已取消,并发送进度的时间间隔(以微秒为单位)。
默认值:100,000(检查取消并每秒发送10次进度)。
connect_timeout,receive_timeout,send_timeout
用于与客户端通信的套接字上的超时(以秒为单位)。
预设值:10、300、300。
cancel_http_readonly_queries_on_client_close
当客户端关闭连接而不等待响应时,取消HTTP只读查询(例如SELECT)。
默认值:0
poll_interval
将等待循环锁定指定的秒数。
默认值:10
max_distributed_connections
与远程服务器的并发连接的最大数量,用于将单个查询分布式处理到单个Distributed表。我们建议设置一个不小于群集中服务器数量的值。
默认值:1024
以下参数仅在创建分布式表(和启动服务器时)时使用,因此没有理由在运行时更改它们。
distribution_connections_pool_size
与远程服务器的并发连接的最大数量,用于分布式处理所有查询到一个Distributed表。我们建议设置一个不小于群集中服务器数量的值。
默认值:1024
connect_timeout_with_failover_ms
如果在群集定义中使用了“ shard”和“ replica”部分,则连接到分布式表引擎的远程服务器的超时(以毫秒为单位)。
如果不成功,则尝试进行几次尝试以连接到各种副本。
默认值:50。
connection_pool_max_wait_ms
连接池已满时,连接的等待时间(以毫秒为单位)。
可能的值:
- 正整数。
- 0-无限超时。
默认值:0。
connections_with_failover_max_tries
分布式表引擎与每个副本的最大连接尝试次数。
默认值:3。
extremes
是否计算极值(查询结果列中的最小值和最大值)。
接受0或1。默认情况下,0(禁用)。
有关更多信息,请参见“极限值”部分。
kafka_max_wait_ms
重试之前从Kafka读取消息的等待时间(以毫秒为单位)。
可能的值:
- 正整数。
- 0-无限超时。
预设值:5000。
也可以看看:
- Apache Kafka
use_uncompressed_cache
是否使用未压缩块的缓存。接受0或1。默认情况下,0(禁用)。
当使用大量短查询时,使用未压缩的缓存(仅适用于MergeTree系列中的表)可以显着减少延迟并提高吞吐量。为频繁发送简短请求的用户启用此设置。还请注意uncompressed_cache_size配置参数(仅在配置文件中设置)–未压缩的缓存块的大小。默认情况下为8 GiB。未压缩的缓存将根据需要填充,并且使用最少的数据将被自动删除。
对于读取至少一些数据量(一百万行或更多)的查询,未压缩的缓存将自动禁用,以节省真正小的查询的空间。这意味着您可以将“ use_uncompressed_cache”设置始终设置为1。
replace_running_query
使用HTTP接口时,可以传递'query_id'参数。这是用作查询标识符的任何字符串。
如果此时已经存在来自具有相同“ query_id”的相同用户的查询,则行为取决于“ replace_running_query”参数。
0
(默认)–引发异常(如果已经在运行具有相同“ query_id”的查询,则不允许查询运行)。
1
–取消旧查询,然后开始运行新查询。
Yandex.Metrica使用将此参数设置为1来实施针对细分条件的建议。输入下一个字符后,如果旧查询尚未完成,则应将其取消。
replace_running_query_max_wait_ms
query_id
当replace_running_query设置处于活动状态时,用于运行查询的等待时间结束。
可能的值:
- 正整数。
- 0 —抛出异常,如果服务器已经执行了相同的查询,则该异常不允许运行新查询
query_id
。
预设值:5000。
stream_flush_interval_ms
在超时或线程生成max_insert_block_size行时,适用于具有流式传输的表。
默认值为7500。
值越小,数据刷新到表的频率越高。将该值设置得太低会导致性能下降。
load_balancing
指定用于分布式查询处理的副本选择算法。
ClickHouse支持以下选择副本的算法:
- Random (by default)
- Nearest hostname
- In order
- First or random
- Round robin
也可以看看:
- distribution_replica_max_ignored_errors
Random (by Default)
load_balancing = random
计算每个副本的错误数量。查询将以最少的错误发送到副本,如果存在多个错误,则发送给任何一个。
缺点:不考虑服务器的邻近性;如果副本具有不同的数据,则您还将获得不同的数据。
Nearest Hostname
load_balancing = nearest_hostname
计算每个副本的错误数量。每隔5分钟,错误数量将被2整除。因此,最近一次使用指数平滑计算了错误数量。如果一个副本的错误数量最少(即,最近在其他副本上发生的错误),则将查询发送给它。
如果多个副本具有相同的最小错误数,该查询将以与配置文件中服务器的主机名最相似的主机名发送到副本(相同位置的不同字符数,最多两个主机名的最小长度)。
例如,example01-01-1和example01-01-2在一个位置上是不同的,而example01-01-1和example01-02-2在两个位置上是不同的。
这种方法看似原始,但不需要使用对IPv6地址而言很复杂的外部网络拓扑数据,也不需要比较IP地址。
因此,如果存在等效的副本,则首选名称最接近的副本。
我们还可以假设在将查询发送到同一服务器时,在没有故障的情况下,分布式查询也将到达相同的服务器。因此,即使将不同的数据放在副本上,查询也将返回几乎相同的结果。
In Order
load_balancing = in_order
具有相同数量错误的副本将以与配置中指定的顺序相同的顺序进行访问。
当您确切知道哪个副本更可取时,此方法适用。
First or Random
load_balancing = first_or_random
此算法选择集合中的第一个副本,如果第一个副本不可用,则选择一个随机副本。
在cross-replication设置中有效,但在其他配置中无效。
first_or_random算法解决了in_order算法的问题。
使用in_order,如果一个副本出现故障,则下一个副本将加倍负载,而其余副本则处理通常的流量。使用first_or_random算法时,负载在仍然可用的副本之间平均分配。
通过使用设置load_balancing_first_offset可以明确定义第一个副本是什么。 这样可以更好地控制副本之间的查询工作负载。
Round Robin
load_balancing = round_robin
该算法对具有相同错误数的副本使用循环策略(仅考虑具有round_robin策略的查询)。
prefer_localhost_replica
处理分布式查询时。使用localhost副本启用/禁用首选
可能的值:
- 1-ClickHouse始终向本地副本发送查询(如果存在)。
- 0-ClickHouse使用load_balancing设置指定的平衡策略。
默认值:1。
如果使用max_parallel_replicas,请禁用此设置。
totals_mode
存在HAVING时以及存在max_rows_to_group_by和group_by_overflow_mode ='any'时如何计算TOTALS。
请参见“WITH TOTALS modifier”部分。
totals_auto_threshold
totals_mode = 'auto'
.的阈值
请参见“WITH TOTALS modifier”部分。
max_parallel_replicas
执行查询时,每个分片的最大副本数。
为了保持一致性(以获取同一数据拆分的不同部分),此选项仅在设置采样键时才有效。
复制延迟不受控制。
compile
启用查询编译。默认情况下,0(禁用)。
编译仅用于查询处理管道的一部分:用于聚合的第一阶段(GROUP BY)。
如果管道的这一部分已编译,由于部署周期短和内联聚合函数调用,查询运行速度可能更快。对于具有多个简单聚合函数的查询,可以看到最大的性能改进(在极少数情况下,速度提高了四倍)。通常,性能提升微不足道。在极少数情况下,它可能会减慢查询的执行速度。
min_count_to_compile
运行编译之前可能使用已编译代码块的次数。默认情况下为3。
对于测试,该值可以设置为0:编译同步运行,并且查询在继续执行之前等待编译过程的结束。对于所有其他情况,请使用以1开头的值。编译通常需要大约5-10秒。
如果该值为1或更大,编译将在单独的线程中异步进行。结果准备就绪后将立即使用,包括当前正在运行的查询。
查询中使用的聚合函数和GROUP BY子句中的键类型的每种不同组合都需要编译后的代码。
编译结果以.so文件的形式保存在生成目录中。对编译结果的数量没有限制,因为它们不占用太多空间。重新启动服务器后,将使用旧结果,除非升级服务器-在这种情况下,将删除旧结果。
output_format_json_quote_64bit_integers
如果该值为true,则在使用JSON * Int64和UInt64格式时(以与大多数JavaScript实现兼容),引号中会出现整数。否则,将输出不带引号的整数。
output_format_json_quote_denormals
启用+nan
,-nan
,+inf
,-inf
输出在JSON输出格式。
可能的值:
- 0-禁用。
- 1-启用。
默认值:0。
例
考虑下表account_orders
:
┌─id─┬─name───┬─duration─┬─period─┬─area─┐
│ 1 │ Andrew │ 20 │ 0 │ 400 │
│ 2 │ John │ 40 │ 0 │ 0 │
│ 3 │ Bob │ 15 │ 0 │ -100 │
└────┴────────┴──────────┴────────┴──────┘
如果为output_format_json_quote_denormals = 0
,查询将null
在输出中返回值:
SELECT area/period FROM account_orders FORMAT JSON;{"meta":[{"name": "divide(area, period)","type": "Float64"}],"data":[{"divide(area, period)": null},{"divide(area, period)": null},{"divide(area, period)": null}],"rows": 3,"statistics":{"elapsed": 0.003648093,"rows_read": 3,"bytes_read": 24}
}
当output_format_json_quote_denormals = 1
,查询返回:
{"meta":[{"name": "divide(area, period)","type": "Float64"}],"data":[{"divide(area, period)": "inf"},{"divide(area, period)": "-nan"},{"divide(area, period)": "-inf"}],"rows": 3,"statistics":{"elapsed": 0.000070241,"rows_read": 3,"bytes_read": 24}
}
format_csv_delimiter
该字符在CSV数据中被解释为定界符。默认情况下,定界符为,
。
input_format_csv_unquoted_null_literal_as_null
对于CSV输入格式,启用或禁用解析未引用的NULL
文字(的同义词\N
)。
input_format_csv_enum_as_number
启用或禁用将枚举值解析为CSV输入格式的枚举ID。
可能的值:
- 0 —枚举值被解析为值。
- 1-枚举值被解析为枚举ID。
默认值:0。
例子
考虑表:
CREATE TABLE table_with_enum_column_for_csv_insert (Id Int32,Value Enum('first' = 1, 'second' = 2)) ENGINE=Memory();
当input_format_csv_enum_as_number
启用设置:
SET input_format_csv_enum_as_number = 1;
INSERT INTO table_with_enum_column_for_csv_insert FORMAT CSV 102,2;
SELECT * FROM table_with_enum_column_for_csv_insert;
结果:
┌──Id─┬─Value─────┐
│ 102 │ second │
└─────┴───────────┘
当input_format_csv_enum_as_number
设置为禁用时,INSERT
查询:
SET input_format_csv_enum_as_number = 0;
INSERT INTO table_with_enum_column_for_csv_insert FORMAT CSV 102,2;
引发异常。
output_format_csv_crlf_end_of_line
在CSV中使用DOS / Windows风格的行分隔符(CRLF),而不是Unix风格(LF)。
output_format_tsv_crlf_end_of_line
在TSV中使用DOC / Windows样式的行分隔符(CRLF),而不是Unix样式(LF)。
insert_quorum
启用仲裁写入。
- 如果为
insert_quorum < 2
,则仲裁写入被禁用。 - 如果为
insert_quorum >= 2
,则启用仲裁写入。
默认值:0。
法定写人数
仅当ClickHouse设法在insert_quorum_timeout期间将数据正确写入副本的insert_quorum时,INSERT才能成功。
如果由于任何原因而成功写入的副本数量未达到insert_quorum,则认为写入失败,并且ClickHouse将从所有已写入数据的副本中删除插入的块。
仲裁中的所有副本都是一致的,即它们包含来自所有先前INSERT查询的数据。 INSERT序列被线性化。
读取从insert_quorum写入的数据时,可以使用select_sequential_consistency选项。
ClickHouse生成异常
- 如果查询时的可用副本数小于
insert_quorum
。 - 当尚未将前一个块插入
insert_quorum
副本的时尝试写入数据。如果用户尝试INSERT
在完成前一个操作之前执行一个操作,则可能会发生这种情况insert_quorum
。
也可以看看:
- insert_quorum_timeout
- select_sequential_consistency
insert_quorum_timeout
写入仲裁超时(以毫秒为单位)。
如果已经超时并且尚未发生写入,ClickHouse将生成一个异常。
客户必须重复查询来将相同的块写入相同或任何其他副本。
默认值:600000毫秒(十分钟)。
也可以看看:
- insert_quorum
- select_sequential_consistency
select_sequential_consistency
启用或禁用SELECT
查询的顺序一致性:
可能的值:
- 0-禁用。
- 1-启用。
默认值:0。
用法
启用顺序一致性后,ClickHouse允许客户端仅对那些,包含所有用insert_quorum执行的INSERT查询中的数据的副本,执行SELECT查询。
如果客户端引用部分副本,则ClickHouse将生成一个异常。 SELECT查询将不包括尚未写入副本仲裁的数据。
也可以看看:
- insert_quorum
- insert_quorum_timeout
insert_deduplicate
启用或禁用INSERT的块重复数据删除(对于Replicated *表)。
可能的值:
0-禁用。
1-启用。
默认值:1。
默认情况下,通过INSERT语句插入复制表中的块将进行重复数据删除(请参见数据复制)。
deduplicate_blocks_in_dependent_materialized_views
为从Replicated *表接收数据的实例化视图启用或禁用重复数据删除检查。
0-禁用。
1-启用。
默认值:0
默认情况下,不对实例化视图执行重复数据删除,而是在源表的上游进行重复数据删除。
如果由于源表中的重复数据删除而跳过了INSERTed块,不会在附加的实例化视图中插入任何内容。
存在此行为是对于实例化视图聚合后插入的块相同但从不同的INSERT派生到源表中的情况,为了能够将高度聚合的数据插入到物化视图中。
同时,此行为“破坏”了INSERT幂等性。
如果对主表的INSERT操作成功而对物化视图的INSERT操作失败(例如,由于与Zookeeper的通信失败),则客户端将收到错误消息并可以重试该操作。
但是,实例化视图将不会收到第二个插入,因为它会通过在主(源)表中进行重复数据删除而被丢弃。
设置deduplicate_blocks_in_dependent_materialized_views允许更改此行为。重试后,实例化视图将收到重复插入,并自行执行重复数据删除检查,忽略源表的检查结果,并将插入由于第一次失败而丢失的行。
max_network_bytes
限制执行查询时通过网络接收或传输的数据量(以字节为单位)。此设置适用于每个单独的查询。
可能的值:
- 正整数。
- 0-禁用。
默认值:0。
max_network_bandwidth
限制通过每秒字节数在网络上进行数据交换的速度。此设置适用于每个查询。
可能的值:
- 正整数。
- 0-禁用带宽控制。
默认值:0。
max_network_bandwidth_for_user
限制通过每秒字节数在网络上进行数据交换的速度。此设置适用于单个用户执行的所有同时运行的查询。
可能的值:
- 正整数。
- 0-禁用数据速度控制。
默认值:0。
max_network_bandwidth_for_all_users
以每秒字节数为单位限制通过网络交换数据的速度。此设置适用于服务器上所有同时运行的查询。
可能的值:
- 正整数。
- 0-禁用数据速度控制。
默认值:0。
count_distinct_implementation
指定应使用哪个uniq *函数来执行 COUNT(DISTINCT …) 构造。
可能的值:
- uniq
- uniqCombined
- uniqCombined64
- uniqHLL12
- uniqExact
默认值:uniqExact
skip_unavailable_shards
启用或禁用跳过不可用的分片。
如果碎片的所有副本都不可用,则认为碎片不可用。
在以下情况下,副本不可用:
- ClickHouse出于一些原因都无法连接到副本。连接到副本时,ClickHouse会进行几次尝试。如果所有这些尝试均失败,则认为副本不可用。
-
副本无法通过DNS解析。
如果副本的主机名无法通过DNS解析,则可能表示以下情况:
-
副本的主机没有DNS记录。它可以发生在具有动态DNS的系统中,例如Kubernetes,在停机期间节点可能无法解析,这不是错误。
-
配置错误。ClickHouse配置文件包含错误的主机名。
-
可能的值:
-
1-启用跳过。
如果分片不可用,ClickHouse将根据部分数据返回结果,并且不会报告节点可用性问题。
-
0-禁用跳过。
如果分片不可用,则ClickHouse会引发异常。
默认值:0。
distribution_group_by_no_merge
不合并来自不同服务器的聚合状态以进行分布式查询处理,如果可以确定在不同的分片上有不同的键,则可以使用此方法。
可能的值:
- 0-禁用(最终查询处理在启动器节点上完成)。
- 1-请勿合并来自不同服务器的聚合状态以进行分布式查询处理(在分片上完全处理的查询,发起者仅代理数据)。
- 2 -与1相同,但应用
ORDER BY
和LIMIT
在引发剂(可用于查询与ORDER BY
和/或LIMIT
)。
举例:
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 1
FORMAT PrettyCompactMonoBlock┌─dummy─┐
│ 0 │
│ 0 │
└───────┘SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 2
FORMAT PrettyCompactMonoBlock┌─dummy─┐
│ 0 │
└───────┘
默认值:0
optimize_skip_unused_shards
为具有分片键条件的SELECT查询启用或禁用跳过未使用的分片WHERE/PREWHERE
(假设数据是通过分片键分发的,否则不执行任何操作)。
可能的值:
- 0-禁用。
- 1-启用。
默认值:0
allow_nondeterministic_optimize_skip_unused_shards
在分片密钥中允许使用不确定性函数(如rand
或dictGet
,因为以后会有一些警告)。
可能的值:
- 0-不允许。
- 1-允许。
默认值:0
optimize_skip_unused_shards_nesting
控件optimize_skip_unused_shards(因此仍然需要optimize_skip_unused_shards)取决于分布式查询的嵌套级别(当您拥有分布式表并查看另一个分布式表时的情况)。
可能的值:
- 0-禁用,
optimize_skip_unused_shards
始终工作。 - 1-
optimize_skip_unused_shards
仅对第一级启用。 - 2-启用
optimize_skip_unused_shards
第二级。
默认值:0
force_optimize_skip_unused_shards
如果启用了optimize_skip_unused_shards,并且无法跳过未使用的分片,则启用或禁用查询执行。如果无法跳过并且启用了设置,则将引发异常。
可能的值:
- 0-禁用。ClickHouse不会引发异常。
- 1-启用。仅当表具有分片键时,查询执行才会被禁用。
- 2-启用。无论是否为表定义了分片键,都将禁用查询执行。
默认值:0
optimize_distributed_group_by_sharding_key
通过避免在启动器服务器上进行昂贵的聚合(这将减少启动器服务器上的查询的内存使用),来优化GROUP BY sharding_key查询。
支持以下类型的查询(及其所有组合):
SELECT DISTINCT [..., ]sharding_key[, ...] FROM dist
SELECT ... FROM dist GROUP BY sharding_key[, ...]
SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY x
SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1
SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
不支持以下类型的查询(稍后可能会添加对其中一些查询的支持):
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALS
SELECT ... GROUP BY sharding_key[, ...] WITH ROLLUP
SELECT ... GROUP BY sharding_key[, ...] WITH CUBE
SELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
可能的值:
- 0-禁用。
- 1-启用。
默认值:0
也可以看看:
- distribution_group_by_no_merge
- optimize_skip_unused_shards
optimize_throw_if_noop
如果OPTIMIZE查询未执行合并,则启用或禁用引发异常。
默认情况下,即使未执行任何操作,OPTIMIZE也会成功返回。 通过此设置,您可以区分这些情况并在异常消息中获取原因。
可能的值:
- 1-启用引发异常。
- 0-禁用引发异常。
默认值:0。
distribution_replica_error_half_life
- 类型:秒
- 默认值:60秒
控制将分布式表中的错误快速归零的方式。 如果某个副本在一段时间内不可用,累积了5个错误,并且distributed_replica_error_half_life设置为1秒,则该副本在上次错误之后3秒钟被视为正常。
也可以看:
- load_balancing
- Table engine Distributed
- distributed_replica_error_cap
- distributed_replica_max_ignored_errors
distributed_replica_error_cap
- 类型:unsigned int
- 默认值:1000
每个副本的错误计数均以该值为上限,以防止单个副本累积太多错误。
也可以看看:
- load_balancing
- Table engine Distributed
- distributed_replica_error_half_life
- distributed_replica_max_ignored_errors
distribution_replica_max_ignored_errors
- 类型:unsigned int
- 默认值:0
选择副本时将忽略的错误数(根据load_balancing
算法)。
也可以看看:
- load_balancing
- Table engine Distributed
- distributed_replica_error_cap
- distributed_replica_error_half_life
distribution_directory_monitor_sleep_time_ms
分布式表引擎发送数据的基本间隔。发生错误时,实际间隔将呈指数增长。
可能的值:
- 正整数(毫秒)。
默认值:100毫秒。
distribution_directory_monitor_max_sleep_time_ms
分布式表引擎发送数据的最大间隔。限制在distributed_directory_monitor_sleep_time_ms设置中设置的间隔的指数增长。
可能的值:
- 正整数(毫秒)。
默认值:30000毫秒(30秒)。
distribution_directory_monitor_batch_inserts
启用/禁用插入的数据批量发送。
启用批量发送后,分布式表引擎将尝试通过一项操作发送多个插入数据文件,而不是分别发送。批量发送通过更好地利用服务器和网络资源来提高群集性能。
可能的值:
- 1-启用。
- 0-禁用。
默认值:0。
os_thread_priority
为执行查询的线程设置优先级(nice)。选择一个线程,在每个可用的CPU内核上运行时,OS调度器考虑这个优先级。
要使用此设置,您需要设置CAP_SYS_NICE功能。 clickhouse-server软件包会在安装过程中对其进行设置。 某些虚拟环境不允许您设置CAP_SYS_NICE功能。 在这种情况下,clickhouse-server会在开始时显示有关此消息。
可能的值:
- 您可以在范围内设置值
[-20, 19]
。
较低的值表示较高的优先级。具有低nice
优先级值的线程比具有高优先级值的线程执行得更频繁。高值对于长时间运行的非交互式查询是更可取的,因为它允许它们在到达时迅速放弃资源,而转向短交互式查询。
默认值:0。
query_profiler_real_time_period_ns
设置查询事件探查器的实际时钟计时器的周期。实时时钟计时器计算挂钟时间。
可能的值:
-
正整数,以纳秒为单位。
推荐值:
- 10000000 (100 times a second) nanoseconds and less for single queries.- 1000000000 (once a second) for cluster-wide profiling.
0用于关闭计时器。
类型:UInt64。
默认值:1000000000纳秒(每秒)。
也可以看看:
- 系统表trace_log
query_profiler_cpu_time_period_ns
设置查询事件探查器的CPU时钟计时器的周期。此计时器仅计算CPU时间。
可能的值:
-
正整数纳秒。
推荐值:
- 10000000 (100 times a second) nanoseconds and more for single queries.- 1000000000 (once a second) for cluster-wide profiling.
-
0用于关闭计时器。
类型:UInt64。
默认值:1000000000纳秒。
也可以看看:
- 系统表trace_log
allow_introspection_functions
启用或禁用用于检查性能分析的自省功能。
可能的值:
- 1-自省功能已启用。
- 0-内省功能已禁用。
默认值:0。
也可以看看:
- Sampling Query Profiler
- System table trace_log
input_format_parallel_parsing
- 类型:布尔
- 默认值:True
启用数据格式的保留顺序并行解析。仅支持TSV,TKSV,CSV和JSONEachRow格式。
min_chunk_bytes_for_parallel_parsing
- 类型:unsigned int
- 默认值:1 MiB
每个线程将并行解析的最小块大小(以字节为单位)。
output_format_avro_codec
设置用于输出Avro文件的压缩编解码器。
类型:字符串
可能的值:
null
—无压缩deflate
—使用Deflate压缩(zlib)snappy
—用Snappy压缩
默认值:(snappy
如果可用)或deflate
。
output_format_avro_sync_interval
设置输出Avro文件的同步标记之间的最小数据大小(以字节为单位)。
类型:unsigned int
可能的值:32(32字节)-1073741824(1 GiB)
默认值:32768(32 KiB)
format_avro_schema_registry_url
设置Confluent Schema注册表URL以与AvroConfluent格式一起使用。
默认值:Empty
。
input_format_avro_allow_missing_fields
启用使用未在Avro或AvroConfluent格式架构中指定的字段的功能。当在架构中找不到字段时,ClickHouse将使用默认值而不是引发异常。
可能的值:
- 0-禁用。
- 1-启用。
默认值:0。
background_pool_size
设置在表引擎中执行后台操作的线程数(例如,在MergeTree引擎表中的合并)。
此设置是从ClickHouse服务器启动时的默认配置文件中应用的,无法在用户会话中进行更改。 通过调整此设置,可以管理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
parallel_distributed_insert_select
启用并行分布式INSERT ... SELECT
查询。
如果我们执行INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b
查询,并且两个表都使用相同的集群,并且两个表都是复制的或非复制的,那么此查询将在每个分片上本地处理。
可能的值:
- 0-禁用。
- 1-SELECT将在分布式引擎的基础表中的每个分片上执行。
- 2-SELECT和INSERT将在分布式引擎的基础表中的每个分片上执行。
默认值:0。
insert_distributed_sync
启用或禁用将同步数据插入分布式表中。
默认情况下,在将数据插入Distributed
表中时,ClickHouse服务器以异步模式将数据发送到群集节点。当insert_distributed_sync = 1时,将同步处理数据,并且仅在将所有数据保存在所有分片上之后(如果internal_replication为true,每个分片至少有一个副本),INSERT操作才会成功。
可能的值:
- 0-以异步模式插入数据。
- 1-以同步模式插入数据。
默认值:0
。
- Distributed Table Engine
- Managing Distributed Tables
use_compact_format_in_distributed_parts_names
使用紧凑格式将异步(insert_distributed_sync
)INSERT的块存储到带有Distributed
引擎的表中。
可能的值:
- 0-使用
user[:password]@host:port#default_database
目录格式。 - 1-使用
[shard{shard_index}[_replica{replica_index}]]
目录格式。
默认值:1
。
注意:
- use_compact_format_in_distributed_parts_names = 0时,集群定义的更改将不会应用于异步INSERT。
- 使用use_compact_format_in_distributed_parts_names = 1更改群集定义中节点的顺序时,将更改shard_index / replica_index,因此请注意。
background_buffer_flush_schedule_pool_size
设置在Buffer -engine表中执行后台刷新的线程数。此设置在ClickHouse服务器启动时应用,无法在用户会话中更改。
可能的值:
- 任何正整数。
默认值:16
background_move_pool_size
设置执行MergeTree引擎表的数据部分后台移动的线程数。此设置在ClickHouse服务器启动时应用,无法在用户会话中更改。
可能的值:
- 任何正整数。
默认值:8。
background_schedule_pool_size
设置为复制表,Kafka流,DNS缓存更新执行后台任务的线程数。此设置在ClickHouse服务器启动时应用,无法在用户会话中更改。
可能的值:
- 任何正整数。
默认值:16
always_fetch_merged_part
禁止在Replicated * MergeTree -engine表中合并数据部分。
当禁止合并时,副本绝不合并部件,并且始终从其他副本下载合并的部件。如果尚无必需的数据,则副本将等待它。副本服务器上的CPU和磁盘负载减少,但是群集上的网络负载增加。此设置在CPU相对较弱或磁盘速度较慢的服务器(例如用于备份存储的服务器)上很有用。
可能的值:
- 0-
Replicated*MergeTree
引擎表合并副本中的数据部分。 - 1--
Replicated*MergeTree
engine表不合并副本中的数据部分。这些表从其他副本下载合并的数据部分。
默认值:0。
也可以看:
- Data Replication
background_distributed_schedule_pool_size
设置为分布式发送执行后台任务的线程数。此设置在ClickHouse服务器启动时应用,无法在用户会话中更改。
可能的值:
- 任何正整数。
默认值:16
validate_polygons
如果多边形是自相交或自相切的,则启用或禁用在pointInPolygon函数中引发异常。
可能的值:
- 0-禁用引发异常。
pointInPolygon
接受无效的多边形,并为其返回可能不正确的结果。 - 1-启用引发异常。
默认值:1。
transform_null_in
为IN运算符启用NULL值的相等性。
默认情况下,无法比较NULL值,因为NULL表示未定义的值。 因此,比较expr = NULL必须始终返回false。 使用此设置NULL = NULL对于IN运算符返回true。
可能值:
0-IN运算符中NULL值的比较返回false。
1-IN运算符中NULL值的比较返回true。
默认:0
举例:
考虑null_in
表:
┌──idx─┬─────i─┐
│ 1 │ 1 │
│ 2 │ NULL │
│ 3 │ 3 │
└──────┴───────┘查询:
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 0;结果:┌──idx─┬────i─┐
│ 1 │ 1 │
└──────┴──────┘查询:SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1;结果:┌──idx─┬─────i─┐
│ 1 │ 1 │
│ 2 │ NULL │
└──────┴───────┘
- IN运算符中的NULL处理
low_cardinality_max_dictionary_size
在可写入存储文件系统的LowCardinality数据类型的共享全局字典的行中设置最大大小。在无限制的字典增长的情况下,此设置可以防止RAM出现问题。由于最大字典大小的限制,所有无法编码的数据都是ClickHouse用普通方法写入的。
可能的值:
- 任何正整数。
默认值:8192
low_cardinality_use_single_dictionary_for_part
使用单个字典打开或关闭数据部分。
默认情况下,ClickHouse服务器监视词典的大小,如果词典溢出,则服务器将开始编写下一个词典。 要禁止创建多个词典,请设置low_cardinality_use_single_dictionary_for_part = 1。
可能的值:
- 1-禁止为数据部分创建多个词典。
- 0-禁止为数据部分创建多个词典。
默认值:0。
low_cardinality_allow_in_native_format
允许或限制将LowCardinality数据类型与本机格式一起使用。
如果限制使用LowCardinality,则ClickHouse服务器将SELECT查询的LowCardinality列转换为普通列,而对于INSERT查询,将普通的列转换为LowCardinality列。
主要对于不支持LowCardinality数据类型的第三方客户端,此设置是必需的。
可能的值:
- 1-LowCardinality的使用不受限制。
- 0-LowCardinality的使用受到限制。
默认值:1。
allow_suspicious_low_cardinality_types
允许或限制将LowCardinality用于固定大小为8字节或更小的数据类型:数字数据类型和FixedString(8_bytes_or_less)
。
对于小的固定值,LowCardinality
通常使用of效率低下,因为ClickHouse为每行存储一个数字索引。结果是:
- 磁盘空间使用量可能会增加。
- RAM消耗可能更高,具体取决于字典大小。
- 由于额外的编码/编码操作,某些功能的运行速度可能较慢。
由于上述所有原因,MergeTree -engine表中的合并时间可能会增加。
可能的值:
- 1-LowCardinality的使用不受限制。
- 0-LowCardinality的使用受到限制。
默认值:0。
min_insert_block_size_rows_for_materialized_views
设置INSERT
查询中可插入表中的最小行数。较小的块将被压缩为较大的块。
此设置仅适用于插入实例化视图中的块。 通过调整此设置,您可以控制推送到实例化视图时的压缩,并避免过多的内存使用。
可能的值:
- 任何正整数。
- 0-禁止挤压。
默认值:1048576
也可以看看
- min_insert_block_size_rows
min_insert_block_size_bytes_for_materialized_views
设置INSERT
查询中可插入表中的块中的最小字节数。较小的块将被压缩为较大的块。
此设置仅适用于插入实例化视图中的块。 通过调整此设置,您可以控制推送到实例化视图时的压缩,并避免过多的内存使用。
可能的值:
- 任何正整数。
- 0-禁止挤压。
默认值:268435456
也可以看看
- min_insert_block_size_bytes
output_format_pretty_grid_charset
允许更改用于打印网格边框的字符集。可用的字符集为UTF-8,ASCII。
例
SET output_format_pretty_grid_charset = 'UTF-8';
SELECT * FROM a;
┌─a─┐
│ 1 │
└───┘SET output_format_pretty_grid_charset = 'ASCII';
SELECT * FROM a;
+-a-+
| 1 |
+---+
optimize_read_in_order
在SELECT查询中启用ORDER BY优化,以从MergeTree表中读取数据。
可能的值:
- 0-
ORDER BY
禁用优化。 - 1-
ORDER BY
启用优化。
默认值:1
。
也可以看看
- ORDER BY Clause
mutations_sync
允许同步执行ALTER TABLE ... UPDATE|DELETE
查询(变种)。
可能的值:
- 0-变异异步执行。
- 1-查询等待所有变异在当前服务器上完成。
- 2-查询等待所有副本上的所有变异完成(如果存在)。
默认值:0
。
也可以看看
- Synchronicity of ALTER Queries
- Mutations
ttl_only_drop_parts
启用或禁用MergeTree表中所有行均已过期的数据部分的完全删除。
当ttl_only_drop_parts
被禁用(默认设置),将ClickHouse服务器只根据自己的TTL删除过期行。
当ttl_only_drop_parts
启用时,当ClickHouse服务器中的所有行都到期时,它将丢弃整个部分。
丢弃整个部件,而不是部分清洁TTL-d行,可以缩短merge_with_ttl_timeout时间,并减少对系统性能的影响。
可能的值:
- 0-禁止完全删除数据部分。
- 1-允许完全删除数据部分。
默认值:0
。
也可以看看
- CREATE TABLE query clauses and settings (
merge_with_ttl_timeout
setting) - Table TTL
lock_acquire_timeout
定义锁定请求失败之前要等待的秒数。
锁定超时用于防止对表执行读/写操作时的死锁。当超时到期且锁定请求失败时,ClickHouse服务器将引发异常"Locking attempt timed out! Possible deadlock avoided. Client should retry."
错误代码DEADLOCK_AVOIDED
。
可能的值:
- 正整数(以秒为单位)。
- 0-无锁定超时。
默认值:120
秒。
cast_keep_nullable
启用或禁用在CAST操作中保留Nullable数据类型。
当启用该设置并且CAST函数的参数为Nullable时,结果也将转换为Nullable类型。 禁用设置后,结果始终具有完全相同的目标类型。
可能的值:
- 0 — CAST结果完全指定了目标类型。
- 1 —如果参数类型为Nullable,则CAST结果将转换为Nullable(DestinationDataType)。
默认值:0。
例子
以下查询将精确地得出目标数据类型:SET cast_keep_nullable = 0;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);结果:┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Int32 │
└───┴───────────────────────────────────────────────────┘以下查询导致Nullable对目标数据类型进行修改:SET cast_keep_nullable = 1;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);结果:┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Nullable(Int32) │
└───┴───────────────────────────────────────────────────┘
也可以看看
- CAST功能
output_format_pretty_max_value_width
限制以Pretty格式显示的值的宽度。如果值的宽度超出限制,则将剪切该值。
可能的值:
- 正整数。
- 0-值被完全削减。
默认值:10000字符
查询:SET output_format_pretty_max_value_width = 10;
SELECT range(number) FROM system.numbers LIMIT 10 FORMAT PrettyCompactNoEscapes;结果:┌─range(number)─┐
│ [] │
│ [0] │
│ [0,1] │
│ [0,1,2] │
│ [0,1,2,3] │
│ [0,1,2,3,4⋯ │
│ [0,1,2,3,4⋯ │
│ [0,1,2,3,4⋯ │
│ [0,1,2,3,4⋯ │
│ [0,1,2,3,4⋯ │
└───────────────┘查询宽度为零:SET output_format_pretty_max_value_width = 0;
SELECT range(number) FROM system.numbers LIMIT 5 FORMAT PrettyCompactNoEscapes;结果:┌─range(number)─┐
│ ⋯ │
│ ⋯ │
│ ⋯ │
│ ⋯ │
│ ⋯ │
└───────────────┘
output_format_pretty_row_numbers
添加行号以“ Pretty”格式输出。
可能的值:
- 0-没有行号的输出。
- 1-输出行号。
默认值:0
。
例
查询:SET output_format_pretty_row_numbers = 1;
SELECT TOP 3 name, value FROM system.settings;结果:┌─name────────────────────┬─value───┐
1. │ min_compress_block_size │ 65536 │
2. │ max_compress_block_size │ 1048576 │
3. │ max_block_size │ 65505 │└─────────────────────────┴─────────┘
allow_experimental_bigint_types
启用或禁用超出int数据类型支持的范围的整数值。
可能的值:
- 1-启用了bigint数据类型。
- 0-禁用bigint数据类型。
默认值:0
。
persistent
禁用“ Set”和" Join "表引擎的持久性。
减少I / O开销。适用于追求性能且不需要持久性的场景。
可能的值:
- 1-启用。
- 0-禁用。
默认值:1
。
output_format_tsv_null_representation
允许TSV输出格式的可配置NULL表示。 该设置仅控制输出格式,\ N是TSV输入格式唯一受支持的NULL表示形式。
默认值:\N
。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 学习JavaScript高级第三天(数据类型转换、变量提升)
学习JavaScript 高级第三天(数据类型转换、变量提升) // --------数据类型转换的4大核心标准-------- /* * 把其他数据类型转为 Number 类型1、需要特定转化为 Number 的 Number(val) parseInt/parseFloat(val)2、隐式转换(浏览器内部默认要…...
2024/4/25 22:38:01 - 公众号的外部链接
后端需要前端提供外部链接进行测试,外部链接就是在mounted里写 var url window.location.href; 再加上域名前缀。...
2024/4/24 21:46:21 - 后端开发面试题(二)Hibernate篇
文章目录1、Hibernate 中对象的三种状态及如何切换1.1 三种状态介绍1.2 三种状态的切换2、Hibernate 的缓存机制2.1 Hibernate缓存原理2.2 Hibernate的一、二级缓存策略2.3 二级缓存的使用2.4 常用的二级缓存插件3、Hibernate 的查询方式有哪些3.1 HQL3.2 QBC3.3 原生SQL4、Hib…...
2024/4/24 21:46:21 - 装备作战需求论证质量效能评估系统软件设计解决方案
装备作战需求论证质量效能评估系统软件设计解决方案 装备作战效能评估系统是为解决武器装备效能评估问题新研发的一款软件,武器效能评估系统用于武器装备论证、研制、试验、使用等不同阶段的效能评估,武器效能评估系统为作战体系、装备体系评价和优化提…...
2024/4/24 21:46:20 - React 事件处理笔记
需要注意的两点:1.需要在事件绑定的函数中获取事件对象 2.事件绑定函数中的this指向问题 疑惑点:什么是public class fields语法 一、事件对象作为参数传递 事件绑定的函数没有传参 function ActionLink() {function handleClick(e) { // 默认…...
2024/4/24 21:46:18 - 如何快速搭建知识付费平台
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201125101621524.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NTWTk1NDkxNzkxOQ,size_16,color_FFFFFF,t_70#pic_center)现如今在互联网知识付费的高速催…...
2024/4/24 21:38:20 - Android -- 让我一个外行来告诉你Android的多Activity切换中保持Socket长连接的一个实现方法
内容预览零、感 叹 啊一、说 明二、实现功能与效果图2.1、实现功能描述2.2、效果图显示三、主要实现功能的代码3.1、Project 的文件列表3.2、ApplicationUtil.java类3.3、MainActivity.java类与activity_main.xml3.4、FirstActivity.java类与activity_first.xml3.5、AndroidMan…...
2024/4/24 21:38:26 - 【疑难排查】RTMP推流协议视频智能分析平台EasyDSS直播点播系统开启录像后无法录制
TSINGSEE青犀视频云边端架构视频智能分析平台EasyDSS提供直播版和点播版的授权,近期研发人员测试EasyDSS最新版本时,开启了录像计划之后,直播视频可以正常播放,但是查看录像的时候没有录像。 我们检查了录像的存储,发现…...
2024/4/24 21:38:21 - 正则表达式学习
1-8位数字截取匹配和整体匹配 Regex re new Regex("^[0-9]{1,8}"); //截取匹配 Regex regex new Regex("^[0-9]{1,8}$"); //整体匹配//匹配字符串:m1.large(vcpu 2,ram 4G)|c95f5529-47e8-46d4-85da-319eb9905a9b. //目标字符串:vcpu: “2”…...
2024/4/24 21:38:16 - Armadillo(六):rand,randn,randnu的对应关系
matlab的rand:产生【0,1】的均匀分布伪随机数 Armadillo的randu:在[0,1]间隔中使用均匀分布 matlab的randn:生成标准正态分布的伪随机数(均值为0,方差为1) Armadillo的randn:使用正态/高斯分布,均值和单位方差为零...
2024/4/25 22:35:51 - 计算机网络 数据传输(二)
1、数据传输类型 电路交换,报文交换,分组交换 互联网采用的是分组交换 电路传输 代表:电话网 电路交换的三个阶段 1、建立连接(电路建立) 2、通信 3、释放连接 特点:独占资源 中继线是可以共用的 …...
2024/4/24 21:38:14 - spring boot 1.5.3 源代码片段 - @Validated - EnableAutoConfiguration
机制:依赖 BeanPostProcessor advisor // org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration /*注册 org.springframework.validation.beanvalidation.MethodVal…...
2024/4/24 21:38:16 - 用Session和Cookie区分不同用户
用Session和Cookie区分不同用户...
2024/4/24 21:38:18 - 判断数组、对象为空
1、判断数组为空 if(arr.length0){console.log(空)// 数组arr为空}2、判断对象为空 var obj {};if(JSON.stringify(obj) "{}"){console.log(空)}或用es6间接证明 利用对象在中所有的键,组成数组并判断数组是否为空,如: const ob…...
2024/4/24 21:46:20 - JAVA(基础) 面向对象一
JAVA(基础) 面向对象一 前面我们学习的是面向过程,现在我们来学习面向对象。面向过程就好比一件事自己一步步去完成,而面向对象则是找人去完成这件事,具体这件事是怎样做的,我们不在乎,我们只在乎结果。面向对象依托于…...
2024/4/24 21:46:16 - 中国风冬日节日必备梅花PNG免扣素材
随着中国国际地位日益提高,新生代在国家日益强健的环境下成长起来,整体国民素质大大提 高,民族自信和民族自豪感根深于大家的心里。冬日传统中国节日接踵而来,特具中国特色的 水墨风梅花PNG素材,设计师请提前收藏好&…...
2024/4/24 21:46:16 - 数据安全不仅仅局限于技术
数字商业环境带来了巨大的机遇,同时也带来了针对重要商业数据资产的数据泄露风险。这些数据是决策、持续经营、市场竞争力和法规遵从性的重要组成部分。 由于业务数据中包含如此多的价值,针对企业“皇冠上的宝石”的威胁和攻击变得更加复杂和有针对性。…...
2024/4/24 21:46:15 - Docker --restart参数
Docker restart参数用于指定自动重启docker容器策略,包含3个选项:no,on-failure[:times],always no 默认值,表示容器退出时,docker不自动重启容器docker run --restartno [容器名]on-failure 若容器的退出状…...
2024/4/24 21:46:16 - iOS 2020刘海适配,底部安全区域高度
废话不多说直接上代码: 方法一: //判断是否为iPhone X #define IPHONE_X \ ({BOOL isPhoneX NO;\ if (available(iOS 11.0, *)) {\ isPhoneX [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\ }\ (isPhoneX);}…...
2024/4/24 21:46:12 - wkhtmltopdf使用注意
1,wkhtmltopdf生成封面 一定要先把header和footer放在前面 要不然会没页眉和页脚 2,使用url有&这些要加上“”; 3,linux版的可执行版本只有0.12.3版本,后面都是rpm; 4,字体要拷贝到linux…...
2024/4/24 21:46:11
最新文章
- HCIP-Datacom-ARST必选题库_网络协议【道题】
一、单选 1.能够生成组播分发树的组播协议是: OSPF PIMv2 BGP IGMPv2 二、多选 1.以以下哪些属于多通道协议? Te1net P FTP H.323 SMTP LE 2.以下哪些协议属于多通道协议? SMTP Telnet H.323 FTP 三、简答 1.请将以下组网可靠性的备份技术与其相应特性进…...
2024/4/26 9:27:31 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 自定义OPPO-r9s的kernel内核,并开启安卓支持docker
0. 版本说明 本文提供了OPPO手机r9s的内核编译方法,并开机支持docker。用的是开源lineage14.1的rom。 我这边基于开源lineage14.1,打了一个docker内核编译镜像(17380582683/r9s),大家可以在容器里,手动打出完整的rom包zip文件。…...
2024/4/23 2:13:16 - 全局UI方法-弹窗四-日期滑动选择器弹窗(DatePickerDialog)
1、描述 根据指定的日期范围创建日期滑动选择器,展示在弹窗上。 2、接口 DatePickerDialog.show(options?: DatePickerDialogOptions) 3、DatePickerDialogOptions 参数名称 参数类型 必填 默认值 参数描述 start Date 否 Date("1970-1-1") 设置选择…...
2024/4/25 18:58:59 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/4/26 1:36:40 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/4/25 21:14:51 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/4/26 8:22:40 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/4/25 10:01:46 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/4/25 16:50:01 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/4/25 13:02:58 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/4/26 0:25:04 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/4/26 6:06:14 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/4/25 17:43:17 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/4/25 17:43:00 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/4/25 13:00:31 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/4/25 17:42:40 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/4/25 3:28:56 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/4/25 3:39:58 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/4/25 13:40:45 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/4/25 13:01:30 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/4/25 15:31:26 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/4/25 17:31:15 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/4/25 13:22:53 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/4/25 1:03:22 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57