跳到主要内容
跳到主要内容

s3Cluster 表函数

这是对 s3 表函数的扩展。

允许在指定集群中的多个节点上并行处理来自 Amazon S3Google Cloud Storage 的文件。在发起节点上,它与集群中的所有节点建立连接,暴露 S3 文件路径中的星号,并动态分配每个文件。在工作节点上,它向发起节点询问下一个处理任务,并进行处理。这个过程会重复,直到所有任务完成。

语法

参数

  • cluster_name — 用于构建远程和本地服务器的地址和连接参数集的集群名称。
  • url — 文件或一组文件的路径。在只读模式下支持以下通配符:***?{'abc','def'}{N..M},其中 NM 为数字,abcdef 为字符串。有关更多信息,请参见 路径中的通配符
  • NOSIGN — 如果在凭证的位置提供此关键字,则所有请求将不被签名。
  • access_key_idsecret_access_key — 指定与给定端点一起使用的凭证的密钥。可选。
  • session_token - 使用给定密钥的会话令牌。在传递密钥时可选。
  • format — 文件的 格式
  • structure — 表的结构。格式为 'column1_name column1_type, column2_name column2_type, ...'
  • compression_method — 参数为可选。支持的值:nonegzipgzbrotlibrxzLZMAzstdzst。默认情况下,将根据文件扩展名自动检测压缩方法。
  • headers - 参数为可选。允许在 S3 请求中传递头信息。格式为 headers(key=value) 例如 headers('x-amz-request-payer' = 'requester')。有关使用示例,请参见 这里

参数也可以使用 命名集合 传递。在这种情况下,urlaccess_key_idsecret_access_keyformatstructurecompression_method 的工作方式相同,同时支持一些额外参数:

  • filename — 如果指定,附加到 URL。
  • use_environment_credentials — 默认启用,允许使用环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URIAWS_CONTAINER_CREDENTIALS_FULL_URIAWS_CONTAINER_AUTHORIZATION_TOKENAWS_EC2_METADATA_DISABLED 传递额外参数。
  • no_sign_request — 默认禁用。
  • expiration_window_seconds — 默认值为 120。

返回值

一个具有指定结构的表,用于在指定文件中读取或写入数据。

示例

/root/data/clickhouse/root/data/database/ 文件夹中的所有文件选择数据,使用 cluster_simple 集群中的所有节点:

计算 cluster_simple 中所有文件的总行数:

提示

如果您的文件列表包含前导零的数字范围,则使用大括号分别为每个数字构造,或使用 ?

对于生产用例,建议使用 命名集合。以下是示例:

访问私有和公共存储桶

用户可以使用与 s3 函数文档相同的方法 这里

优化性能

有关优化 s3 函数性能的详细信息,请参见 我们详细的指南

另请参见