Skip to main content
这些设置可在 system.settings 中查看,并由 源文件 自动生成。

s3_check_objects_after_upload

通过 head 请求检查每个上传到 S3 的对象,确保上传成功

s3_connect_timeout_ms

S3 磁盘中主机的连接超时时间。

s3_create_new_file_on_insert

启用或禁用在 S3 引擎表中每次插入时创建新文件。如果启用,则每次插入都会使用该 key 创建一个新的 S3 对象,类似于以下模式: initial: data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz,依此类推。 可能的值:
  • 0 — INSERT 查询会创建一个新文件;如果文件已存在且未设置 s3_truncate_on_insert,则会失败。
  • 1 — 如果未设置 s3_truncate_on_insert,INSERT 查询会在每次插入时使用后缀 (从第二个文件开始) 创建一个新文件。
更多详情请参见此处

s3_disable_checksum

向 S3 发送文件时不计算校验和。这样可以避免对文件进行过多处理,从而加快写入操作。总体而言,这样做基本是安全的,因为 MergeTree 表的数据本身就会由 ClickHouse 计算校验和;而且当通过 HTTPS 访问 S3 时,TLS 层在网络传输过程中已经提供了完整性保护。不过,在 S3 上额外计算校验和仍能提供纵深防御。

s3_ignore_file_doesnt_exist

读取某些对象键时,如果文件不存在,则忽略该情况。 可能的值:
  • 1 — SELECT 返回空结果。
  • 0 — SELECT 抛出异常。

s3_list_object_keys_size

ListObject 请求一次批次中可返回的最大文件数

s3_min_upload_part_size

向 S3 执行分段上传时,单个上传分段的最小大小。

s3_path_filter_limit

可从查询过滤器中提取并用于文件迭代的 _path 值的最大数量,而不是通过 glob 列举文件。 0 表示禁用。

s3_request_timeout_ms

向 S3 发送和从 S3 接收数据时的空闲超时时间。如果单次 TCP 读取或写入调用阻塞超过该时长,则会失败。

s3_skip_empty_files

启用或禁用在 S3 引擎表中跳过空文件。 可能的值:
  • 0 — 如果空文件与请求的格式不兼容,SELECT 会抛出异常。
  • 1 — 对于空文件,SELECT 返回空结果。

s3_slow_all_threads_after_network_error

当设置为 true 时,如果某个 s3 请求遇到可重试的网络错误 (例如套接字超时) ,则所有向同一 Backup 端点发起 S3 请求的线程都会被放慢。 当设置为 false 时,每个线程都会独立处理 S3 请求的退避,不受其他线程影响。

s3_strict_upload_part_size

向 S3 进行分段上传时,每个分段的精确大小 (某些实现不支持可变大小的分段) 。

s3_throw_on_zero_files_match

当 ListObjects 请求未匹配到任何文件时,抛出错误

s3_truncate_on_insert

启用或禁用在 S3 引擎表中插入前执行截断操作。若禁用,则当 S3 对象已存在时,尝试插入会抛出异常。 可能的值:
  • 0 — INSERT 查询会创建新文件;如果文件已存在且未设置 s3_create_new_file_on_insert,则会失败。
  • 1 — INSERT 查询会用新数据替换文件中的现有内容。
更多详情请参见这里

s3_uri_style

强制设置 S3 端点样式。可能的值:auto、virtual_hosted、path。

s3_use_adaptive_timeouts

当设置为 true 时,所有 S3 请求 的前两次尝试都会使用较短的发送和接收超时时间。 当设置为 false 时,所有尝试都会使用相同的超时时间。
最后修改于 2026年7月23日