格式设置
这些设置是从 源 自动生成的。
allow_special_bool_values_inside_variant
允许从特殊文本布尔值(如 "on"、"off"、"enable"、"disable" 等)解析布尔值到变体类型中。
bool_false_representation
在 TSV/CSV/Vertical/Pretty 格式中表示假布尔值的文本。
bool_true_representation
在 TSV/CSV/Vertical/Pretty 格式中表示真布尔值的文本。
column_names_for_schema_inference
用于在没有列名的格式中进行模式推导的列名列表。格式为: 'column1,column2,column3,...'
cross_to_inner_join_rewrite
如果在 WHERE 部分有连接表达式,则使用内连接替代逗号/交叉连接。值: 0 - 不重写,1 - 尽可能应用于逗号/交叉,2 - 强制重写所有逗号连接,cross - 如果可能。
date_time_64_output_format_cut_trailing_zeros_align_to_groups_of_thousands
动态修剪 datetime64 值的尾随零,以调整输出规模到 [0, 3, 6],对应于 '秒'、'毫秒' 和 '微秒'。
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
。
Cloud 默认值: 'best_effort'
。
另见:
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
。
另见:
date_time_overflow_behavior
定义当 Date、Date32、DateTime、DateTime64 或整数值被转换为 Date、Date32、DateTime 或 DateTime64 但无法在结果类型中表示时的行为。
可能的值:
ignore
— 悄无声息地忽略溢出。结果未定义。throw
— 在溢出时抛出异常。saturate
— 饱和结果。如果该值小于目标类型可以表示的最小值,则结果选择为最小可表示值。如果该值大于目标类型可以表示的最大值,则结果选择为最大可表示值。
默认值: ignore
。
dictionary_use_async_executor
在多个线程中执行读取字典源的管道。仅支持具有本地 CLICKHOUSE 源的字典。
errors_output_format
将错误写入文本输出的方法。
exact_rows_before_limit
启用时,ClickHouse 将为 rows_before_limit_at_least 统计提供确切值,但代价是必须完全读取限制之前的数据。
format_avro_schema_registry_url
对于 AvroConfluent 格式:Confluent Schema 注册表 URL。
format_binary_max_array_size
RowBinary 格式中允许的最大数组大小。防止在数据损坏的情况下分配大量内存。0 意味着没有限制。
format_binary_max_string_size
RowBinary 格式中允许的最大字符串大小。防止在数据损坏的情况下分配大量内存。0 意味着没有限制。
format_capn_proto_enum_comparising_mode
将 ClickHouse Enum 和 CapnProto Enum 映射的方式。
format_capn_proto_use_autogenerated_schema
当 format_schema 未设置时,使用自动生成的 CapnProto 模式。
format_csv_allow_double_quotes
如果设置为 true,允许双引号中的字符串。
format_csv_allow_single_quotes
如果设置为 true,允许单引号中的字符串。
format_csv_delimiter
在 CSV 数据中被视为分隔符的字符。如果设置为字符串,则该字符串的长度必须为 1。
format_csv_null_representation
CSV 格式中的自定义 NULL 表示。
format_custom_escaping_rule
字段转义规则(用于 CustomSeparated 格式)。
format_custom_field_delimiter
字段之间的分隔符(用于 CustomSeparated 格式)。
format_custom_result_after_delimiter
结果集后的后缀(用于 CustomSeparated 格式)。
format_custom_result_before_delimiter
结果集之前的前缀(用于 CustomSeparated 格式)。
format_custom_row_after_delimiter
最后一列字段后的分隔符(用于 CustomSeparated 格式)。
format_custom_row_before_delimiter
第一列字段之前的分隔符(用于 CustomSeparated 格式)。
format_custom_row_between_delimiter
行之间的分隔符(用于 CustomSeparated 格式)。
format_display_secrets_in_show_and_select
启用或禁用在表、数据库、表函数和字典的 SHOW
和 SELECT
查询中显示机密信息。
希望查看机密信息的用户还必须拥有
display_secrets_in_show_and_select
服务器设置 打开并具有
displaySecretsInShowAndSelect
权限。
可能的值:
- 0 — 禁用。
- 1 — 启用。
format_json_object_each_row_column_for_object_name
该列用于存储/写入 JSONObjectEachRow 格式中的对象名称。列类型应为字符串。如果值为空,则将使用默认名称 row_{i}
作为对象名称。
format_protobuf_use_autogenerated_schema
当 format_schema 未设置时,使用自动生成的 Protobuf。
format_regexp
正则表达式(用于 Regexp 格式)。
format_regexp_escaping_rule
字段转义规则(用于 Regexp 格式)。
format_regexp_skip_unmatched
跳过未被正则表达式匹配的行(用于 Regexp 格式)。
format_schema
当您使用需要模式定义的格式时,此参数很有用,例如 Cap'n Proto 或 Protobuf。值根据格式而定。
format_template_resultset
用于存储结果集格式字符串的文件路径(用于 Template 格式)。
format_template_resultset_format
用于结果集的格式字符串(用于 Template 格式)。
format_template_row
存储行格式字符串的文件路径(用于 Template 格式)。
format_template_row_format
行的格式字符串(用于 Template 格式)。
format_template_rows_between_delimiter
行之间的分隔符(用于 Template 格式)。
format_tsv_null_representation
TSV 格式中的自定义 NULL 表示。
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_allow_seeks
在读取 ORC/Parquet/Arrow 输入格式时允许跳跃。
默认启用。
input_format_arrow_allow_missing_columns
在读取 Arrow 输入格式时允许缺失列。
input_format_arrow_case_insensitive_column_matching
在匹配 Arrow 列与 CH 列时忽略大小写。
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference
在格式 Arrow 的模式推导过程中跳过不支持的类型的列。
input_format_avro_allow_missing_fields
对于 Avro/AvroConfluent 格式:当在模式中找不到字段时,使用默认值而不是抛出错误。
input_format_avro_null_as_default
对于 Avro/AvroConfluent 格式:在 null 和非 Nullable 列的情况下插入默认值。
input_format_binary_decode_types_in_binary_format
在 RowBinaryWithNamesAndTypes 输入格式中以二进制格式读取数据类型,而不是类型名称。
input_format_binary_read_json_as_string
在 RowBinary 输入格式中将 JSON 数据类型的值读取为 JSON String 值。
input_format_bson_skip_fields_with_unsupported_types_in_schema_inference
在格式 BSON 的模式推导过程中跳过不支持的类型的字段。
input_format_capn_proto_skip_fields_with_unsupported_types_in_schema_inference
在格式 CapnProto 的模式推导过程中跳过不支持的类型的列。
input_format_csv_allow_cr_end_of_line
如果设置为 true,则 \r 将被允许在行末不跟随。
input_format_csv_allow_variable_number_of_columns
在 CSV 输入中忽略额外的列(如果文件中有比预期更多的列),并将 CSV 输入中缺失的字段视为默认值。
input_format_csv_allow_whitespace_or_tab_as_delimiter
允许在 CSV 字符串中使用空格和制表符(\t)作为字段分隔符。
input_format_csv_arrays_as_nested_csv
在从 CSV 读取 Array 时,期望其元素已在嵌套 CSV 中序列化,然后放入字符串中。例如:"[""Hello"", ""world"", ""42"""" TV""]"。可以省略数组周围的括号。
input_format_csv_deserialize_separate_columns_into_tuple
如果设置为 true,则可以将以 CSV 格式书写的独立列反序列化为元组列。
input_format_csv_detect_header
自动检测 CSV 格式中名称和类型的头。
input_format_csv_empty_as_default
将 CSV 输入中的空字段视为默认值。
input_format_csv_enum_as_number
在 CSV 格式中将插入的枚举值视为枚举索引。
input_format_csv_skip_first_lines
跳过 CSV 格式数据开头指定数量的行。
input_format_csv_skip_trailing_empty_lines
跳过 CSV 格式中的尾部空行。
input_format_csv_trim_whitespaces
修剪 CSV 字符串开头和结尾的空格和制表符(\t)字符。
input_format_csv_try_infer_numbers_from_strings
如果启用,在模式推导期间,ClickHouse 将尝试从字符串字段推断数字。如果 CSV 数据包含带引号的 UInt64 数字,这可能很有用。
默认禁用。
input_format_csv_try_infer_strings_from_quoted_tuples
将输入数据中带引号的元组视为字符串类型的值。
input_format_csv_use_best_effort_in_schema_inference
在 CSV 格式的模式推导中使用一些技巧和启发式。
input_format_csv_use_default_on_bad_values
允许在 CSV 字段反序列化失败时将默认值设置到列中。
input_format_custom_allow_variable_number_of_columns
忽略 CustomSeparated 输入中的额外列(如果文件中有比预期更多的列),并将 CustomSeparated 输入中缺失的字段视为默认值。
input_format_custom_detect_header
自动检测 CustomSeparated 格式中名称和类型的头。
input_format_custom_skip_trailing_empty_lines
跳过 CustomSeparated 格式中的尾部空行。
input_format_defaults_for_omitted_fields
在执行 INSERT
查询时,用相应列的默认值替换省略的输入列值。此选项适用于 JSONEachRow(和其他 JSON 格式)、CSV、TabSeparated、TSKV、Parquet、Arrow、Avro、ORC 和具有 WithNames
/WithNamesAndTypes
后缀的格式。
启用此选项后,扩展表元数据将从服务器发送到客户端。这会消耗额外的服务器计算资源并可能降低性能。
可能的值:
- 0 — 禁用。
- 1 — 启用。
input_format_force_null_for_omitted_fields
强制使用 null 值初始化省略的字段。
input_format_hive_text_allow_variable_number_of_columns
在 Hive Text 输入中忽略额外的列(如果文件中有比预期更多的列),并将 Hive Text 输入中缺失的字段视为默认值。
input_format_hive_text_collection_items_delimiter
Hive 文本文件中集合(数组或映射)项目之间的分隔符。
input_format_hive_text_fields_delimiter
Hive 文本文件中字段之间的分隔符。
input_format_hive_text_map_keys_delimiter
Hive 文本文件中映射键/值对之间的分隔符。
input_format_import_nested_json
启用或禁用插入包含嵌套对象的 JSON 数据。
支持的格式:
可能的值:
- 0 — 禁用。
- 1 — 启用。
另见:
- 嵌套结构的使用 与
JSONEachRow
格式。
input_format_ipv4_default_on_conversion_error
在 IPv4 反序列化过程中,在转换错误时将使用默认值而不是抛出异常。
默认禁用。
input_format_ipv6_default_on_conversion_error
在 IPv6 反序列化过程中,在转换错误时将使用默认值而不是抛出异常。
默认禁用。
input_format_json_compact_allow_variable_number_of_columns
在 JSONCompact/JSONCompactEachRow 输入格式中允许行中有可变数量的列。忽略比预期更多列的额外列,并将缺失的列视为默认值。
默认禁用。
input_format_json_defaults_for_missing_elements_in_named_tuple
在分析命名元组时,为 JSON 对象中缺失的元素插入默认值。此设置仅在启用 input_format_json_named_tuples_as_objects
时有效。
默认启用。
input_format_json_empty_as_default
启用时,将 JSON 中的空输入字段替换为默认值。对于复杂的默认表达式,input_format_defaults_for_omitted_fields
也必须启用。
可能的值:
- 0 — 禁用。
- 1 — 启用。
input_format_json_ignore_unknown_keys_in_named_tuple
忽略命名元组的 JSON 对象中的未知键。
默认启用。
input_format_json_ignore_unnecessary_fields
忽略不必要的字段并不解析它们。启用此选项不会对无效格式或重复字段的 JSON 字符串抛出异常。
input_format_json_infer_incomplete_types_as_strings
允许在模式推导期间将 JSON 键仅包含 Null
/{}
/[]
时使用字符串类型。 在 JSON 格式中,任何值都可以作为字符串读取,我们可以避免在模式推导期间造成的错误,例如 无法通过前 25000 行数据确定列 'column_name' 的类型,很可能该列仅包含 Null 或空数组/映射
。
示例:
结果:
默认启用。
input_format_json_max_depth
JSON 字段的最大深度。这不是一个严格的限制,不必精确应用。
input_format_json_named_tuples_as_objects
将命名元组列解析为 JSON 对象。
默认启用。
input_format_json_read_arrays_as_strings
允许在 JSON 输入格式中将 JSON 数组解析为字符串。
示例:
结果:
默认启用。
input_format_json_read_bools_as_numbers
允许在 JSON 输入格式中将布尔值解析为数字。
默认启用。
input_format_json_read_bools_as_strings
允许在 JSON 输入格式中将布尔值解析为字符串。
默认启用。
input_format_json_read_numbers_as_strings
允许在 JSON 输入格式中将数字解析为字符串。
默认启用。
input_format_json_read_objects_as_strings
允许在 JSON 输入格式中将 JSON 对象解析为字符串。
示例:
结果:
默认启用。
input_format_json_throw_on_bad_escape_sequence
如果 JSON 字符串中包含不良转义序列,则抛出异常。如果禁用,不良转义序列将原样保留在数据中。
默认启用。
input_format_json_try_infer_named_tuples_from_objects
如果启用,在模式推导期间 ClickHouse 将尝试从 JSON 对象中推导命名元组。结果命名元组将包含来自样本数据的所有对应 JSON 对象中的所有元素。
示例:
结果:
默认启用。
input_format_json_try_infer_numbers_from_strings
如果启用,在模式推导期间,ClickHouse 将尝试从字符串字段推断数字。 如果 JSON 数据包含带引号的 UInt64 数字,这可能很有用。
默认禁用。
input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects
在命名元组推导过程中,如果 JSON 对象中的路径不明确则使用字符串类型代替异常。
input_format_json_validate_types_from_metadata
对于 JSON/JSONCompact/JSONColumnsWithMetadata 输入格式,如果此设置设置为 1,则输入数据中的元数据类型将与表中对应列的类型进行比较。
默认启用。
input_format_max_block_size_bytes
限制在输入格式解析数据时形成的块的大小,单位为字节。用于基于行的输入格式,当块在 ClickHouse 端形成时。 0 意味着没有字节限制。
input_format_max_bytes_to_read_for_schema_inference
自动模式推导时要读取的最大字节数。
input_format_max_rows_to_read_for_schema_inference
自动模式推导时要读取的最大行数。
input_format_msgpack_number_of_columns
插入的 MsgPack 数据中的列数。用于从数据中进行自动模式推导。
input_format_mysql_dump_map_column_names
在 MySQL 转储中的表和 ClickHouse 表的列按名称匹配。
input_format_mysql_dump_table_name
从中读取数据的 MySQL 转储中的表名。
input_format_native_allow_types_conversion
在 Native 输入格式中允许数据类型转换。
input_format_native_decode_types_in_binary_format
在 Native 输入格式中以二进制格式读取数据类型,而不是类型名称。
input_format_null_as_default
启用或禁用 NULL 字段使用 默认值 初始化,如果这些字段的数据类型不是 nullable。如果列类型非可空且此设置禁用,插入 NULL
将导致异常。如果列类型可空,则 NULL
值将原样插入,而不论此设置。
此设置适用于大多数输入格式。
对于复杂的默认表达式,input_format_defaults_for_omitted_fields
也必须启用。
可能的值:
- 0 — 将
NULL
插入到非可空列会导致异常。 - 1 —
NULL
字段使用默认列值初始化。
input_format_orc_allow_missing_columns
在读取 ORC 输入格式时允许缺失的列。
input_format_orc_case_insensitive_column_matching
在匹配 ORC 列与 CH 列时忽略大小写。
input_format_orc_dictionary_as_low_cardinality
在读取 ORC 文件时,将 ORC 字典编码列视为 LowCardinality 列。
input_format_orc_filter_push_down
在读取 ORC 文件时,基于 WHERE/PREWHERE 表达式、最小/最大统计或 ORC 元数据中的布隆过滤器,跳过整个条带或行组。
input_format_orc_reader_time_zone_name
ORC 行读取器的时区名称,默认的 ORC 行读取器时区为 GMT。
input_format_orc_row_batch_size
读取 ORC 条带时的批处理大小。
input_format_orc_skip_columns_with_unsupported_types_in_schema_inference
在格式 ORC 的模式推导过程中跳过不支持的类型的列。
input_format_orc_use_fast_decoder
使用更快的 ORC 解码器实现。
input_format_parquet_allow_geoparquet_parser
使用 geo 列解析器将 Array(UInt8) 转换为 Point/Linestring/Polygon/MultiLineString/MultiPolygon 类型。
input_format_parquet_allow_missing_columns
在读取 Parquet 输入格式时允许缺失的列。
input_format_parquet_bloom_filter_push_down
在读取 Parquet 文件时,基于 WHERE 表达式和 Parquet 元数据中的布隆过滤器,跳过整个行组。
input_format_parquet_case_insensitive_column_matching
在匹配 Parquet 列与 CH 列时忽略大小写。
input_format_parquet_enable_row_group_prefetch
在 parquet 解析期间启用行组预取。目前,只有单线程解析可以预取。
input_format_parquet_filter_push_down
读取 Parquet 文件时,根据 WHERE/PREWHERE 表达式和 Parquet 元数据中的最小/最大统计信息跳过整个行组。
input_format_parquet_local_file_min_bytes_for_seek
本地读取(文件)所需的最小字节数,以进行寻址,而不是使用忽略模式读取 Parquet 输入格式。
input_format_parquet_max_block_size
Parquet 阅读器的最大块大小。
input_format_parquet_prefer_block_bytes
Parquet 阅读器输出的平均块字节数。
input_format_parquet_preserve_order
从 Parquet 文件读取时避免重新排序行。通常会使速度变慢。
input_format_parquet_skip_columns_with_unsupported_types_in_schema_inference
在 Parquet 格式的模式推断中跳过具有不支持类型的列。
input_format_parquet_use_native_reader
读取 Parquet 文件时,使用本机阅读器而不是箭头阅读器。
input_format_protobuf_flatten_google_wrappers
为常规非嵌套列启用 Google 包装器,例如 google.protobuf.StringValue 'str' 对于字符串列 'str'。对于 Nullable 列,空包装器被识别为默认值,缺失则被视为 null。
input_format_protobuf_skip_fields_with_unsupported_types_in_schema_inference
在 Protobuf 格式的模式推断中跳过具有不支持类型的字段。
input_format_record_errors_file_path
读取文本格式(CSV、TSV)时用于记录错误的文件路径。
input_format_skip_unknown_fields
启用或禁用跳过插入额外数据。
写入数据时,如果输入数据包含在目标表中不存在的列,ClickHouse 会抛出异常。如果启用了跳过,ClickHouse 将不插入额外数据,并且不抛出异常。
支持的格式:
- JSONEachRow(和其他 JSON 格式)
- BSONEachRow(和其他 JSON 格式)
- TSKV
- 所有后缀为 WithNames/WithNamesAndTypes 的格式
- MySQLDump
- Native
可能的值:
- 0 — 禁用。
- 1 — 启用。
input_format_try_infer_dates
如果启用,ClickHouse 会尝试从字符串字段推断类型 Date
,用于文本格式的模式推断。如果输入数据中某列的所有字段均成功解析为日期,则结果类型为 Date
;如果至少有一个字段未解析为日期,则结果类型为 String
。
默认启用。
input_format_try_infer_datetimes
如果启用,ClickHouse 会尝试从字符串字段推断类型 DateTime64
,用于文本格式的模式推断。如果输入数据中某列的所有字段均成功解析为日期时间,则结果类型为 DateTime64
;如果至少有一个字段未解析为日期时间,则结果类型为 String
。
默认启用。
input_format_try_infer_datetimes_only_datetime64
当启用 input_format_try_infer_datetimes 时,仅推断 DateTime64 而不推断 DateTime 类型。
input_format_try_infer_exponent_floats
在文本格式的模式推断中(除 JSON 外)尝试推断指数表示的浮点数(在 JSON 中,指数数字始终被推断)。
input_format_try_infer_integers
如果启用,ClickHouse 会尝试推断整数而不是浮点数,用于文本格式的模式推断。如果输入数据中某列的所有数字都是整数,则结果类型为 Int64
;如果至少有一个数字是浮点数,则结果类型为 Float64
。
默认启用。
input_format_try_infer_variants
如果启用,ClickHouse 会尝试在模式推断中推断类型 Variant
,当列/数组元素有多个可能类型时。
可能的值:
- 0 — 禁用。
- 1 — 启用。
input_format_tsv_allow_variable_number_of_columns
在 TSV 输入中忽略额外列(如果文件的列数超出预期),并将 TSV 输入中缺失的字段视为默认值。
input_format_tsv_crlf_end_of_line
如果设置为 true,文件函数将以 \r\n 而不是 \n 读取 TSV 格式。
input_format_tsv_detect_header
自动检测 TSV 格式中的名称和类型的头部。
input_format_tsv_empty_as_default
将 TSV 输入中的空字段视为默认值。
input_format_tsv_enum_as_number
将 TSV 格式中插入的枚举值视为枚举索引。
input_format_tsv_skip_first_lines
跳过 TSV 格式数据开头的指定行数。
input_format_tsv_skip_trailing_empty_lines
跳过 TSV 格式中的尾部空行。
input_format_tsv_use_best_effort_in_schema_inference
在 TSV 格式中使用一些技巧和启发式来推断模式。
input_format_values_accurate_types_of_literals
对于 Values 格式:在使用模板解析和解释表达式时,检查文字的实际类型以避免可能的溢出和精度问题。
input_format_values_deduce_templates_of_expressions
对于 Values 格式:如果字段无法通过流解析器解析,则运行 SQL 解析器,推导 SQL 表达式的模板,尝试使用模板解析所有行,然后解释所有行的表达式。
input_format_values_interpret_expressions
对于 Values 格式:如果字段无法通过流解析器解析,则运行 SQL 解析器并尝试将其解释为 SQL 表达式。
input_format_with_names_use_header
启用或禁用插入数据时检查列顺序。
为了提高插入性能,如果您确定输入数据的列顺序与目标表相同,建议禁用此检查。
支持的格式:
- CSVWithNames
- CSVWithNamesAndTypes
- TabSeparatedWithNames
- TabSeparatedWithNamesAndTypes
- JSONCompactEachRowWithNames
- JSONCompactEachRowWithNamesAndTypes
- JSONCompactStringsEachRowWithNames
- JSONCompactStringsEachRowWithNamesAndTypes
- RowBinaryWithNames
- RowBinaryWithNamesAndTypes
- CustomSeparatedWithNames
- CustomSeparatedWithNamesAndTypes
可能的值:
- 0 — 禁用。
- 1 — 启用。
input_format_with_types_use_header
控制格式解析器是否应检查输入数据中的数据类型是否与目标表中的数据类型匹配。
支持的格式:
- CSVWithNamesAndTypes
- TabSeparatedWithNamesAndTypes
- JSONCompactEachRowWithNamesAndTypes
- JSONCompactStringsEachRowWithNamesAndTypes
- RowBinaryWithNamesAndTypes
- CustomSeparatedWithNamesAndTypes
可能的值:
- 0 — 禁用。
- 1 — 启用。
insert_distributed_one_random_shard
启用或禁用在没有分布密钥时随机分片插入到 Distributed 表中。
默认情况下,当将数据插入多个分片的 Distributed
表时,如果没有提供分布密钥,ClickHouse 服务器将拒绝任何插入请求。当 insert_distributed_one_random_shard = 1
时,允许插入并将数据随机转发到所有分片中。
可能的值:
- 0 — 如果有多个分片且未提供分布密钥,则拒绝插入。
- 1 — 当没有提供分布密钥时,在所有可用分片中随机进行插入。
interval_output_format
允许选择不同的输出格式,用于间隔类型的文本表示。
可能的值:
-
kusto
- KQL 风格的输出格式。ClickHouse 以 KQL 格式 输出间隔。例如,
toIntervalDay(2)
将格式化为2.00:00:00
。请注意,对于长度可变的间隔类型(即IntervalMonth
和IntervalYear
),会考虑每个间隔的平均秒数。 -
numeric
- 数字输出格式。ClickHouse 输出间隔的底层数字表示。例如,
toIntervalDay(2)
将格式化为2
。
另请参见:
output_format_arrow_compression_method
Arrow 输出格式的压缩方法。支持的编解码器:lz4_frame、zstd、none(未压缩)
output_format_arrow_fixed_string_as_fixed_byte_array
对于 FixedString 列,使用 Arrow FIXED_SIZE_BINARY 类型而不是 Binary。
output_format_arrow_low_cardinality_as_dictionary
启用输出低基数类型作为字典 Arrow 类型。
output_format_arrow_string_as_string
对于字符串列,使用 Arrow String 类型而不是 Binary。
output_format_arrow_use_64_bit_indexes_for_dictionary
在 Arrow 格式中始终使用 64 位整数作为字典索引。
output_format_arrow_use_signed_indexes_for_dictionary
在 Arrow 格式中为字典索引使用带符号整数。
output_format_avro_codec
输出时使用的压缩编解码器。可能的值:'null'、'deflate'、'snappy'、'zstd'。
output_format_avro_rows_in_file
文件中的最大行数(如果存储允许)。
output_format_avro_string_column_pattern
对于 Avro 格式:选择为 AVRO 字符串的字符串列的正则表达式。
output_format_avro_sync_interval
以字节为单位的同步间隔。
output_format_binary_encode_types_in_binary_format
在 RowBinaryWithNamesAndTypes 输出格式中以二进制格式写入数据类型,而不是类型名称。
output_format_binary_write_json_as_string
在 RowBinary 输出格式中将 JSON 数据类型的值作为 JSON String 值写入。
output_format_bson_string_as_string
对于字符串列,使用 BSON String 类型而不是 Binary。
output_format_csv_crlf_end_of_line
如果设置为 true,CSV 格式中的行末将为 \r\n 而不是 \n。
output_format_csv_serialize_tuple_into_separate_columns
如果设置为 true,则 CSV 格式中的元组将被序列化为单独的列(即,它们在元组中的嵌套将丢失)。
output_format_decimal_trailing_zeros
打印 Decimal 值时输出尾随零。例如,1.230000 而不是 1.23。
默认禁用。
output_format_json_array_of_rows
启用能够将所有行输出为 JSON 数组,以 JSONEachRow 格式。
可能的值:
- 1 — ClickHouse 将所有行作为数组输出,每行在
JSONEachRow
格式中。 - 0 — ClickHouse 将每行单独输出为
JSONEachRow
格式。
启用设置的查询示例
查询:
结果:
禁用设置的查询示例
查询:
结果:
output_format_json_escape_forward_slashes
控制 JSON 输出格式中字符串输出的转义正斜杠。这用于与 JavaScript 兼容。请不要与始终转义的反斜杠混淆。
默认启用。
output_format_json_named_tuples_as_objects
将命名元组列序列化为 JSON 对象。
默认启用。
output_format_json_pretty_print
启用时,复杂数据类型如 Tuple/Array/Map 在 JSON 输出格式中的 'data' 部分将以美化格式打印。
默认启用。
output_format_json_quote_64bit_floats
控制在 JSON* 格式中输出时 64 位 浮点数 的引号。
默认禁用。
output_format_json_quote_64bit_integers
控制在 JSON 格式输出时 64 位或更大 整数(如 UInt64
或 Int128
)的引号。
此类整数通常被引号包围。此行为与大多数 JavaScript 实现兼容。
可能的值:
- 0 — 整数不带引号输出。
- 1 — 整数带引号输出。
output_format_json_quote_decimals
控制在 JSON 输出格式中小数的引号。
默认禁用。
output_format_json_quote_denormals
启用 JSON 输出格式中的 +nan
、-nan
、+inf
、-inf
输出。
可能的值:
- 0 — 禁用。
- 1 — 启用。
示例
考虑以下表 account_orders
:
当 output_format_json_quote_denormals = 0
时,查询返回输出中的 null
值:
当 output_format_json_quote_denormals = 1
时,查询返回:
output_format_json_skip_null_value_in_named_tuples
序列化命名元组列作为 JSON 对象时跳过键值对中的 null 值。仅在 output_format_json_named_tuples_as_objects 为 true 时有效。
output_format_json_validate_utf8
控制 JSON 输出格式中的 UTF-8 序列的验证,某些格式如 JSON/JSONCompact/JSONColumnsWithMetadata 始终验证 UTF-8。
默认禁用。
output_format_markdown_escape_special_characters
启用时,在 Markdown 中转义特殊字符。
Common Mark 定义了以下特殊字符,可以通过反斜杠转义:
可能的值:
- 0 — 禁用。
- 1 — 启用。
output_format_msgpack_uuid_representation
以 MsgPack 格式输出 UUID 的方式。
output_format_native_encode_types_in_binary_format
在 Native 输出格式中以二进制格式写入数据类型,而不是类型名称。
output_format_native_write_json_as_string
将 JSON 列的数据写为包含 JSON 字符串的 String 列,而不是默认本机 JSON 序列化。
output_format_orc_compression_method
ORC 输出格式的压缩方法。支持的编解码器:lz4、snappy、zlib、zstd、none(未压缩)
output_format_orc_dictionary_key_size_threshold
对于 ORC 输出格式中的字符串列,如果不同值的数量超过非空行总数的这一比例,则关闭字典编码。否则启用字典编码。
output_format_orc_row_index_stride
ORC 输出格式中的目标行索引步幅。
output_format_orc_string_as_string
对于字符串列,使用 ORC String 类型而不是 Binary。
output_format_orc_writer_time_zone_name
ORC 编写器的时区名称,默认 ORC 编写器的时区为 GMT。
output_format_parquet_batch_size
每多少行检查页面大小。如果列的平均值大小超过几个 KB,请考虑减少。
output_format_parquet_bloom_filter_bits_per_value
用于 parquet bloom 过滤器中每个不同值的近似位数。估计的假阳性率:
- 6 bits - 10%
- 10.5 bits - 1%
- 16.9 bits - 0.1%
- 26.4 bits - 0.01%
- 41 bits - 0.001%
output_format_parquet_bloom_filter_flush_threshold_bytes
在 parquet 文件中放置 bloom 过滤器的位置。Bloom 过滤器将以大约此大小的组写入。特别地:
- 如果 0,则每个行组的 bloom 过滤器会立即在行组后写入,
- 如果大于所有 bloom 过滤器的总大小,则所有行组的 bloom 过滤器将积累在内存中,然后在文件末尾附近一起写入,
- 否则,bloom 过滤器将在内存中积累,并在总大小超过此值时写出。
output_format_parquet_compliant_nested_types
在 parquet 文件模式中,对于列表元素使用名称 'element' 而不是 'item'。这是 Arrow 库实现的一个历史工件。通常可以提高兼容性,但与一些旧版本的 Arrow 可能不兼容。
output_format_parquet_compression_method
Parquet 输出格式的压缩方法。支持的编解码器:snappy、lz4、brotli、zstd、gzip、none(未压缩)。
output_format_parquet_data_page_size
压缩前每个页面的目标大小(以字节为单位)。
output_format_parquet_datetime_as_uint32
将 DateTime 值作为原始 Unix 时间戳写入(以 UInt32 读取),而不是转换为毫秒(以 DateTime64(3) 读取)。
output_format_parquet_fixed_string_as_fixed_byte_array
对于 FixedString 列,使用 Parquet FIXED_LENGTH_BYTE_ARRAY 类型而不是 Binary。
output_format_parquet_parallel_encoding
以多个线程进行 Parquet 编码。这要求使用 output_format_parquet_use_custom_encoder。
output_format_parquet_row_group_size
目标行组大小(以行数为单位)。
output_format_parquet_row_group_size_bytes
目标行组大小(以字节为单位),压缩前。
output_format_parquet_string_as_string
对于字符串列,使用 Parquet String 类型而不是 Binary。
output_format_parquet_use_custom_encoder
使用更快的 Parquet 编码器实现。
output_format_parquet_version
输出格式的 Parquet 格式版本。支持的版本:1.0、2.4、2.6 和 2.latest(默认)。
output_format_parquet_write_bloom_filter
在 parquet 文件中写入 bloom 过滤器。需要使用 output_format_parquet_use_custom_encoder = true。
output_format_parquet_write_page_index
将列索引和偏移索引(即每个数据页面的统计信息,可用于读取时进行过滤推断)写入 parquet 文件。
output_format_pretty_color
在漂亮格式中使用 ANSI 转义序列。0 - 禁用,1 - 启用,'auto' - 如果是终端则启用。
output_format_pretty_display_footer_column_names
如果行数很多,则在页脚中显示列名。
可能的值:
- 0 — 不在页脚中显示列名。
- 1 — 如果行数大于或等于由 output_format_pretty_display_footer_column_names_min_rows 设置的阈值(默认 50),则在页脚中显示列名。
示例
查询:
结果:
output_format_pretty_display_footer_column_names_min_rows
设置当启用 output_format_pretty_display_footer_column_names 时,显示列名的页脚的最小行数。
output_format_pretty_fallback_to_vertical
如果启用,并且表宽而短,漂亮格式将像垂直格式那样输出。
请参见 output_format_pretty_fallback_to_vertical_max_rows_per_chunk
和 output_format_pretty_fallback_to_vertical_min_table_width
以详细调整该行为。
output_format_pretty_fallback_to_vertical_max_rows_per_chunk
仅在块中的记录数不超过指定值时,才会触发回退到垂直格式(请参阅 output_format_pretty_fallback_to_vertical
)。
output_format_pretty_fallback_to_vertical_min_columns
仅在列数大于指定值时,才会触发回退到垂直格式(请参阅 output_format_pretty_fallback_to_vertical
)。
output_format_pretty_fallback_to_vertical_min_table_width
仅在表中列的总长度至少为指定值,或者至少一个值包含换行符时,才会触发回退到垂直格式(请参阅 output_format_pretty_fallback_to_vertical
)。
output_format_pretty_glue_chunks
如果在漂亮格式中呈现的数据来自多个块,即使经过延迟,但下一个块的列宽与上一个块相同,则使用 ANSI 转义序列返回到上一行并覆盖上一个块的页脚,以继续与新块的数据一起输出。这使结果在视觉上更令人愉悦。
0 - 禁用,1 - 启用,'auto' - 如果是终端则启用。
output_format_pretty_grid_charset
打印网格边框的字符集。可用字符集:ASCII、UTF-8(默认)。
output_format_pretty_highlight_digit_groups
如果启用且输出为终端,则突出显示每千位数、百万位数等对应的每位数字。
output_format_pretty_highlight_trailing_spaces
如果启用且输出为终端,则以灰色突出显示尾随空格,并加亮显示。
output_format_pretty_max_column_name_width_cut_to
如果列名过长,将其裁剪到该长度。
如果列名长于 output_format_pretty_max_column_name_width_cut_to
加上 output_format_pretty_max_column_name_width_min_chars_to_cut
,则会被裁剪。
output_format_pretty_max_column_name_width_min_chars_to_cut
如果列名过长,裁剪的最小字符数。
如果列名长于 output_format_pretty_max_column_name_width_cut_to
加上 output_format_pretty_max_column_name_width_min_chars_to_cut
,则会被裁剪。
output_format_pretty_max_column_pad_width
在漂亮格式中对列中所有值进行填充的最大宽度。
output_format_pretty_max_rows
漂亮格式的行限制。
output_format_pretty_max_value_width
在漂亮格式中显示的最大值宽度。如果更大则将被裁剪。 值 0 表示 - 从不裁剪。
output_format_pretty_max_value_width_apply_for_single_value
仅在块不是单个值时裁剪值(请参见 output_format_pretty_max_value_width
)。否则将其全部输出,这对于 SHOW CREATE TABLE
查询很有用。
output_format_pretty_multiline_fields
如果启用,漂亮格式将在表格单元内呈现多行字段,以保持表格轮廓。 如果不启用,字段将按原样呈现,可能会扭曲表格(保持关闭的一个优点是复制粘贴多行值会更容易)。
output_format_pretty_row_numbers
为漂亮输出格式的每一行添加行号。
output_format_pretty_single_large_number_tip_threshold
如果块由一个超过该值的单一数字组成(不包括 0),则在表的右侧打印可读的数字提示。
output_format_pretty_squash_consecutive_ms
在写入之前等待下一个块的指定毫秒数,并将其压缩到前一个块。这避免了频繁输出过小的块,但仍然允许以流式方式显示数据。
output_format_pretty_squash_max_wait_ms
如果上一次输出以来经过的时间超过指定的毫秒数,则在漂亮格式中输出待处理块。
output_format_protobuf_nullables_with_google_wrappers
在使用 Google wrappers 序列化 Nullable 列时,将默认值序列化为空包装。如果关闭,默认值和 null 值将不会被序列化。
output_format_schema
自动生成的模式文件保存路径,格式为 Cap'n Proto 或 Protobuf。
output_format_sql_insert_include_column_names
在 INSERT 查询中包含列名。
output_format_sql_insert_max_batch_size
单个 INSERT 语句中的最大行数。
output_format_sql_insert_quote_names
用 '`' 字符引号列名。
output_format_sql_insert_table_name
输出的 INSERT 查询中的表名。
output_format_sql_insert_use_replace
使用 REPLACE 语句,而不是 INSERT。
output_format_tsv_crlf_end_of_line
如果设置为 true,TSV 格式的行结束符将是 \r\n,而不是 \n。
output_format_values_escape_quote_with_quote
如果为 true,则用 '' 转义 ',否则用 \' 引号。
output_format_write_statistics
以合适的输出格式写入关于读取行、字节、时间消耗的统计信息。
默认启用。
precise_float_parsing
优先使用更精确(但较慢)的浮点解析算法。
regexp_dict_allow_hyperscan
允许使用 Hyperscan 库的 regexp_tree 字典。
regexp_dict_flag_case_insensitive
对 regexp_tree 字典使用不区分大小写的匹配。在单个表达式中可以用 (?i) 和 (?-i) 覆盖。
regexp_dict_flag_dotall
允许 '.' 匹配 regexp_tree 字典中的换行符。
rows_before_aggregation
启用后,ClickHouse 将提供 rows_before_aggregation 统计信息的确切值,表示聚合之前读取的行数。
schema_inference_hints
用于没有模式的格式的模式推断提示的列名和类型列表。
示例:
查询:
结果:
如果 schema_inference_hints
格式不正确,或者有拼写错误或数据类型错误等,整个 schema_inference_hints 将被忽略。
schema_inference_make_columns_nullable
控制在模式推断中推断出的类型是否为 Nullable
。
如果启用,此时所有推断类型将为 Nullable
;如果禁用,推断类型永远不会是 Nullable
;如果设置为 auto
,则只有当列在解析过程中包含 NULL
的示例或文件元数据包含列的可为空性的信息时,推断类型才会为 Nullable
。
schema_inference_make_json_columns_nullable
控制在模式推断中推断出的 JSON 类型是否为 Nullable
。
如果此设置与 schema_inference_make_columns_nullable 一起启用,则推断的 JSON 类型将为 Nullable
。
schema_inference_mode
模式推断的模式。'default' - 假设所有文件具有相同的模式,模式可以从任何文件中推断;'union' - 文件可以具有不同的模式,结果模式应该是所有文件模式的并集。
show_create_query_identifier_quoting_rule
设置 SHOW CREATE 查询中标识符的引号规则。
show_create_query_identifier_quoting_style
设置 SHOW CREATE 查询中标识符的引号样式。
type_json_skip_duplicated_paths
启用时,在将 JSON 对象解析为 JSON 类型时,会忽略重复的路径,并仅插入第一个,而不是引发异常。
validate_experimental_and_suspicious_types_inside_nested_types
验证在嵌套类型(如 Array/Map/Tuple)中使用实验性和可疑类型的情况。