格式设置
这些设置从 源码 自动生成。
allow_special_bool_values_inside_variant
允许从特殊文本布尔值(如 "on", "off", "enable", "disable" 等)解析 Variant 类型内的 Bool 值。
bool_false_representation
TSV/CSV/Vertical/Pretty 格式中表示 false 布尔值的文本。
bool_true_representation
TSV/CSV/Vertical/Pretty 格式中表示 true 布尔值的文本。
check_conversion_from_numbers_to_enum
如果值在 Enum 中不存在,则在从数字转换为 Enum 时抛出异常。
可能的值
- 0 — 禁用。
- 1 — 启用。
示例
column_names_for_schema_inference
用于在没有列名的格式中进行模式推断的列名列表。格式:'column1,column2,column3,...'
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'。 -
'best_effort_us'— 与best_effort类似(请参阅 parseDateTimeBestEffortUS 中的区别) -
'basic'— 使用基本解析器。ClickHouse 只能解析基本的
YYYY-MM-DD HH:MM:SS或YYYY-MM-DD格式。例如,2019-08-20 10:18:56或2019-08-20。
云默认值:'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。
errors_output_format
将错误写入文本输出的方法。
format_avro_schema_registry_url
对于 AvroConfluent 格式:Confluent Schema Registry URL。
format_binary_max_array_size
RowBinary 格式中 Array 的最大允许大小。它可以防止在发生损坏的数据时分配大量内存。0 表示没有限制
format_binary_max_object_size
JSON 类型 RowBinary 格式中单个 Object 中的最大允许路径数。它可以防止在发生损坏的数据时分配大量内存。0 表示没有限制
format_binary_max_string_size
RowBinary 格式中 String 的最大允许大小。它可以防止在发生损坏的数据时分配大量内存。0 表示没有限制
format_capn_proto_enum_comparising_mode
如何映射 ClickHouse Enum 和 CapnProto Enum
format_capn_proto_max_message_size
单个 CapnProto 消息的最大大小(以字节为单位)。这可以防止损坏或损坏的数据导致过度内存分配。默认值为 1 GiB。
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 格式中用于存储/写入对象名称的列的名称。列类型应该是 String。如果值为 null,则默认名称 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_schema_message_name
定义在 format_schema 中定义的模式中所需的 message 名称。为了与旧的 format_schema 格式(file_name:message_name)保持兼容
- 如果未指定
format_schema_message_name,则从旧的format_schema值的message_name部分推断 message 名称。 - 如果在使用的旧格式中指定了
format_schema_message_name,将引发错误。
format_schema_source
定义 format_schema 的来源。可能的值
- 'file'(默认):
format_schema是位于format_schemas目录中的模式文件的名称。 - 'string':
format_schema是模式的字面内容。 - 'query':
format_schema是用于检索模式的查询。当format_schema_source设置为 'query' 时,适用以下条件 - 查询必须返回恰好一个值:一个包含单个字符串列的单行。
- 查询结果被视为模式内容。
- 此结果在
format_schemas目录中本地缓存。 - 可以使用命令清除本地缓存:
SYSTEM DROP FORMAT SCHEMA CACHE FOR Files。 - 缓存后,相同的查询不会再次执行以获取模式,直到显式清除缓存为止
- 除了本地缓存文件之外,Protobuf 消息也缓存到内存中。即使清除本地缓存文件后,也必须使用
SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf]清除内存缓存,才能完全刷新模式。 - 运行查询
SYSTEM DROP FORMAT SCHEMA CACHE以一次清除缓存文件和 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 且不可为空的列的情况下插入默认值
input_format_binary_decode_types_in_binary_format
以二进制格式读取数据类型,而不是 RowBinaryWithNamesAndTypes 输入格式中的类型名称
input_format_binary_max_type_complexity
解码二进制类型时的最大类型节点数(不是深度,而是总数)。Map(String, UInt32) = 3 个节点。防止恶意输入。0 = 无限制。
input_format_binary_read_json_as_string
在 RowBinary 输入格式中,将 JSON 数据类型的数值读取为 JSON 字符串 值。
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 格式中写入的单独列可以反序列化为 Tuple 列。
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
将输入数据中的带引号的元组解释为 String 类型的数值。
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、Native 格式以及带有 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 Text 文件中集合(数组或映射)项之间的分隔符
input_format_hive_text_fields_delimiter
Hive Text 文件中字段之间的分隔符
input_format_hive_text_map_keys_delimiter
Hive Text 文件中映射键/值对之间的分隔符
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_array_of_dynamic_from_array_of_different_types
如果启用,在模式推断期间,ClickHouse 将使用 Array(Dynamic) 类型来表示具有不同数据类型的 JSON 数组。
示例
默认启用。
input_format_json_infer_incomplete_types_as_strings
允许在模式推断期间,将仅包含 Null/{}/[] 的 JSON 键使用 String 类型。在 JSON 格式中,任何值都可以作为 String 读取,并且我们可以通过对类型未知的键使用 String 类型来避免在模式推断期间出现类似 Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps 的错误。
示例
结果
默认启用。
input_format_json_map_as_array_of_tuples
将映射列反序列化为 JSON 元组数组。
默认禁用。
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 字符串包含 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 对象中的路径不明确,则使用 String 类型而不是抛出异常
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 字段,如果这些字段的数据类型不是 nullable。如果列类型不可为空,并且此设置被禁用,则插入 NULL 会导致异常。如果列类型是 nullable,则无论此设置如何,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 表达式、min/max 统计信息或 ORC 元数据中的 bloom 过滤器跳过整个条带或行组。
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_parallel_parsing
启用或禁用数据格式的顺序保留并行解析。仅支持 TabSeparated (TSV)、TSKV、CSV 和 JSONEachRow 格式。
可能的值
- 1 — 启用。
- 0 — 禁用。
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 元数据中的 bloom 过滤器跳过整个行组。
input_format_parquet_case_insensitive_column_matching
在匹配 Parquet 列和 CH 列时忽略大小写。
input_format_parquet_enable_json_parsing
在读取 Parquet 文件时,将 JSON 列解析为 ClickHouse JSON 列。
input_format_parquet_enable_row_group_prefetch
在 parquet 解析期间启用行组预取。目前,只有单线程解析可以预取。
input_format_parquet_filter_push_down
在读取 Parquet 文件时,根据 WHERE/PREWHERE 表达式和 Parquet 元数据中的 min/max 统计信息跳过整个行组。
input_format_parquet_local_file_min_bytes_for_seek
Parquet 输入格式中,本地读取(文件)执行 seek 而不是忽略所需的最小字节数
input_format_parquet_local_time_as_utc
确定模式推断对 Parquet 时间戳(isAdjustedToUTC=false)使用的数据类型。如果为 true:DateTime64(..., 'UTC'),如果为 false:DateTime64(...)。两种行为都不完全正确,因为 ClickHouse 没有用于本地时钟时间的数据类型。出乎意料的是,'true' 可能是不太不正确的选项,因为将 'UTC' 时间戳格式化为字符串会产生正确本地时间的表示形式。
input_format_parquet_max_block_size
parquet 读取器的最大块大小。
input_format_parquet_memory_high_watermark
Parquet reader v3 的近似内存限制。限制可以并行读取多少个行组或列。在单个查询中读取多个文件时,限制是这些文件之间的总内存使用量。
input_format_parquet_memory_low_watermark
如果内存使用量低于阈值,则调度预取会更积极地进行。例如,如果需要读取大量小的布隆过滤器,这可能很有用。
input_format_parquet_page_filter_push_down
使用列索引中的最小值/最大值跳过页面。
input_format_parquet_prefer_block_bytes
Parquet 读取器输出的平均块字节数
input_format_parquet_preserve_order
在从 Parquet 文件读取时,避免重新排序行。不建议这样做,因为行排序通常不能保证,并且查询管道的其他部分可能会破坏它。请使用 ORDER BY _row_number 代替。
input_format_parquet_skip_columns_with_unsupported_types_in_schema_inference
在 Parquet 格式的模式推断期间,跳过具有不支持类型的列
input_format_parquet_use_native_reader_v3
使用 Parquet 读取器 v3。
input_format_parquet_use_offset_index
在未使用页面过滤时,对从 parquet 文件读取页面方式进行微调。
input_format_parquet_verify_checksums
读取 parquet 文件时验证页面校验和。
input_format_protobuf_flatten_google_wrappers
启用 Google 包装器以用于常规的非嵌套列,例如,对于 String 列 'str' 的 google.protobuf.StringValue 'str'。对于可为空的列,空包装器被识别为默认值,而缺失的包装器被识别为 null 值。
input_format_protobuf_oneof_presence
通过在特殊列中设置枚举值的方式,指示 protobuf oneof 中找到的字段。
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。
参见
into_outfile_create_parent_directories
使用 INTO OUTFILE 时,如果它们不存在,则自动创建父目录。
json_type_escape_dots_in_keys
启用后,JSON 键中的点将被转义解析。
max_dynamic_subcolumns_in_json_type_parsing
JSON 列解析期间,每个列可以创建的最大动态子列数。它允许控制解析期间的动态子列数量,而不管数据类型中指定的动态参数如何。
output_format_arrow_compression_method
Arrow 输出格式的压缩方法。支持的编解码器:lz4_frame, zstd, none (未压缩)
output_format_arrow_date_as_uint16
将 Date 值作为纯 16 位数字(读回为 UInt16)写入,而不是转换为 32 位 Arrow DATE32 类型(读回为 Date32)。
output_format_arrow_fixed_string_as_fixed_byte_array
对于 FixedString 列,使用 Arrow FIXED_SIZE_BINARY 类型代替 Binary。
output_format_arrow_low_cardinality_as_dictionary
启用将 LowCardinality 类型作为 Dictionary Arrow 类型输出
output_format_arrow_string_as_string
对于 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 字符串的 String 列的正则表达式。
output_format_avro_sync_interval
同步间隔(以字节为单位)。
output_format_binary_encode_types_in_binary_format
在 RowBinaryWithNamesAndTypes 输出格式中,以二进制格式写入数据类型,而不是类型名称
output_format_binary_write_json_as_string
在 RowBinary 输出格式中,将 JSON 数据类型的数值作为 JSON 字符串 值写入。
output_format_bson_string_as_string
对于 String 列,使用 BSON String 类型代替 Binary
output_format_compression_level
如果查询输出被压缩,则默认压缩级别。当 SELECT 查询具有 INTO OUTFILE 时,或者写入表函数 file、url、hdfs、s3 或 azureBlobStorage 时,将应用此设置。
可能的值:从 1 到 22
output_format_compression_zstd_window_log
当输出压缩方法为 zstd 时可以使用。如果大于 0,此设置将显式设置压缩窗口大小(2 的幂),并为 zstd 压缩启用长距离模式。这有助于实现更好的压缩比。
可能的值:非负数。请注意,如果值太小或太大,zstdlib 将抛出异常。典型值从 20(窗口大小 = 1MB)到 30(窗口大小 = 1GB)。
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
启用在 JSONEachRow 格式中将所有行作为 JSON 数组输出。
可能的值
- 1 — ClickHouse 将所有行作为数组输出,每行采用
JSONEachRow格式。 - 0 — ClickHouse 以
JSONEachRow格式单独输出每行。
启用设置的查询示例
查询
结果
禁用设置的查询示例
查询
结果
output_format_json_escape_forward_slashes
控制 JSON 输出格式中字符串输出中正斜杠的转义,这用于与 JavaScript 兼容。不要与始终转义的反斜杠混淆。
默认启用。
output_format_json_map_as_array_of_tuples
将 map 列序列化为 JSON 元组数组。
默认禁用。
output_format_json_named_tuples_as_objects
将命名元组列序列化为 JSON 对象。
默认启用。
output_format_json_pretty_print
此设置确定在 JSON 输出格式中使用时,如何显示嵌套结构,例如元组、Map 和数组,在 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_use_flattened_dynamic_and_json_serialization
以扁平化格式写入 JSON 和 Dynamic 列的数据(所有类型/路径作为单独的子列)。
output_format_native_write_json_as_string
将 JSON 列的数据作为包含 JSON 字符串的 String 列写入,而不是默认的 Native JSON 序列化。
output_format_orc_compression_block_size
ORC 输出格式中压缩块的大小(以字节为单位)。
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 writer 的时区名称,默认 ORC writer 的时区为 GMT。
output_format_parallel_formatting
启用或禁用数据格式的并行格式化。仅支持 TSV、TSKV、CSV 和 JSONEachRow 格式。
可能的值
- 1 — 启用。
- 0 — 禁用。
output_format_parquet_batch_size
每隔多少行检查页面大小。如果列的平均值大小超过几 KB,请考虑减小此值。
output_format_parquet_bloom_filter_bits_per_value
Parquet 布隆过滤器中每个不同值的大致位数。估计的误报率
- 6 位 - 10%
- 10.5 位 - 1%
- 16.9 位 - 0.1%
- 26.4 位 - 0.01%
- 41 位 - 0.001%
output_format_parquet_bloom_filter_flush_threshold_bytes
将布隆过滤器放置在 parquet 文件中的位置。布隆过滤器将以大约此大小的组写入。特别是
- 如果为 0,则每个行组的布隆过滤器将立即在行组之后写入,
- 如果大于所有布隆过滤器的大小总和,则将累积所有行组的布隆过滤器到内存中,然后一起写入到文件末尾附近,
- 否则,布隆过滤器将累积到内存中,并在其总大小超过此值时写入。
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_date_as_uint16
将 Date 值作为纯 16 位数字(读回为 UInt16)写入,而不是转换为 32 位 parquet DATE 类型(读回为 Date32)。
output_format_parquet_datetime_as_uint32
将 DateTime 值作为原始 Unix 时间戳(读回为 UInt32)写入,而不是转换为毫秒(读回为 DateTime64(3))。
output_format_parquet_enum_as_byte_array
使用 parquet 物理类型:BYTE_ARRAY 和逻辑类型:ENUM 写入枚举。
output_format_parquet_fixed_string_as_fixed_byte_array
对于 FixedString 列,使用 Parquet FIXED_LEN_BYTE_ARRAY 类型代替 Binary。
output_format_parquet_geometadata
允许将有关 geo 列的信息写入 parquet 元数据,并以 WKB 格式编码列。
output_format_parquet_max_dictionary_size
如果字典大小增长超过这么多字节,则切换到不使用字典编码。设置为 0 以禁用字典编码。
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 文件中写入布隆过滤器。需要 output_format_parquet_use_custom_encoder = true。
output_format_parquet_write_checksums
将 crc32 校验和放在 parquet 页面头中。
output_format_parquet_write_page_index
将列索引和偏移索引(即有关每个数据页面的统计信息,可用于读取时的筛选器下推)写入 parquet 文件。
output_format_pretty_color
在 Pretty 格式中使用 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
如果启用,且表格很宽但行数很少,则 Pretty 格式将以 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
只有当一个块中的记录数不超过指定值时,才会激活回退到 Vertical 格式 (请参阅 output_format_pretty_fallback_to_vertical)。
output_format_pretty_fallback_to_vertical_min_columns
只有当列数大于指定值时,才会激活回退到 Vertical 格式 (请参阅 output_format_pretty_fallback_to_vertical)。
output_format_pretty_fallback_to_vertical_min_table_width
只有当表格中列长度之和至少达到指定值时,或者至少有一个值包含换行符时,才会激活回退到 Vertical 格式 (请参阅 output_format_pretty_fallback_to_vertical)。
output_format_pretty_glue_chunks
如果 Pretty 格式中的数据分多个块到达,即使经过一段时间,但下一个块的列宽与前一个块相同,则使用 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
Pretty 格式中所有列值的最大填充宽度。
output_format_pretty_max_rows
Pretty 格式的行数限制。
output_format_pretty_max_value_width
Pretty 格式中要显示的值的最大宽度。如果更大,则会被截断。值 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
如果启用,Pretty 格式将在表格单元格内渲染多行字段,从而保留表格的轮廓。如果未启用,它们将按原样渲染,可能会使表格变形(保持关闭的一个优点是,复制粘贴多行值会更容易)。
output_format_pretty_named_tuples_as_json
控制 Pretty 格式中的命名元组是否以美观打印的 JSON 对象的形式输出。
output_format_pretty_row_numbers
在 Pretty 输出格式的每一行前添加行号
output_format_pretty_single_large_number_tip_threshold
如果块包含单个数字且该数字超过此值(不包括 0),则在表格右侧打印一个可读的数字提示。
output_format_pretty_squash_consecutive_ms
等待下一个块最多指定毫秒数,并在写入之前将其压缩到前一个块。这避免了频繁输出太小的块,但仍然允许以流式方式显示数据。
output_format_pretty_squash_max_wait_ms
如果在上次输出后经过了超过指定毫秒数,则输出 Pretty 格式中的挂起块。
output_format_protobuf_nullables_with_google_wrappers
在用 Google 包装器序列化 Nullable 列时,将默认值序列化为空包装器。如果关闭,则默认值和空值将不被序列化。
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
优先使用更精确(但较慢)的浮点数解析算法
schema_inference_hints
用于在没有模式的格式进行模式推断时作为提示的列名和类型列表。
示例
查询
结果
如果 schema_inference_hints 格式不正确,或者存在拼写错误或错误的数据类型等,整个 schema_inference_hints 将被忽略。
schema_inference_make_columns_nullable
控制在模式推断中推断类型的 Nullable 属性。可能的值
- 0 - 推断的类型将永远不会是
Nullable(在这种情况下,使用 input_format_null_as_default 来控制如何处理空值), - 1 - 所有推断的类型都将是
Nullable, - 2 或
auto- 仅当列在模式推断期间解析的样本中包含NULL或文件元数据包含有关列可空性的信息时,推断的类型才将是Nullable, - 3 - 如果格式具有文件元数据,则推断的类型可空性将与文件元数据匹配(例如,Parquet),否则始终为 Nullable(例如,CSV)。
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_allow_duplicated_key_with_literal_and_nested_object
启用后,允许解析类似于 {"a" : 42, "a" : {"b" : 42}} 的 JSON,其中某些键重复,但其中一个键是嵌套对象。
type_json_skip_duplicated_paths
启用后,在将 JSON 对象解析为 JSON 类型时,将忽略重复的路径,并且只会插入第一个路径,而不是抛出异常
type_json_skip_invalid_typed_paths
启用后,在 JSON 类型列中,如果特定路径具有声明的类型,则无法强制转换为其声明类型的字段将被跳过,而不是抛出错误。跳过的字段将被视为缺失,并将根据类型路径定义使用默认值/空值。
此设置仅适用于 JSON 类型列(例如,JSON(a Int64, b String)),其中特定路径具有声明的类型。它不适用于将插入到常规类型列中的常规 JSON 输入格式,例如 JSONEachRow。
可能的值
- 0 — 禁用(类型不匹配时抛出错误)。
- 1 — 启用(类型不匹配时跳过字段)。
type_json_use_partial_match_to_skip_paths_by_regexp
启用后,在将 JSON 对象解析为 JSON 类型时,使用 SKIP REGEXP 指定的正则表达式将需要部分匹配才能跳过路径。禁用后,将需要完全匹配。
validate_experimental_and_suspicious_types_inside_nested_types
验证在 Array/Map/Tuple 等嵌套类型中使用实验性和可疑类型。