s3Cluster 表函数
这是对 s3 表函数的扩展。
允许并行使用指定集群中的多个节点处理来自 Amazon S3 和 Google Cloud Storage Google Cloud Storage 的文件。在发起者节点上,它会连接到集群中的所有节点,公开 S3 文件路径中的星号,并动态分发每个文件。在工作节点上,它会询问发起者下一个要处理的任务,并处理它。重复此过程,直到完成所有任务。
语法
参数
| 参数 | 描述 |
|---|---|
cluster_name | 用于构建远程和本地服务器的地址和连接参数的集群名称。 |
url | 文件或一组文件的路径。支持只读模式下的以下通配符:*、**、?、{'abc','def'} 和 {N..M},其中 N、M — 数字,abc、def — 字符串。有关更多信息,请参阅 路径中的通配符。 |
NOSIGN | 如果提供此关键字代替凭据,所有请求将不会被签名。 |
access_key_id 和 secret_access_key | 用于指定与给定端点一起使用的凭据的密钥。可选。 |
session_token | 与给定密钥一起使用的会话令牌。传递密钥时可选。 |
format | 文件的 格式。 |
结构 | 表的结构。格式为 'column1_name column1_type, column2_name column2_type, ...'。 |
compression_method | 参数是可选的。支持的值:none、gzip 或 gz、brotli 或 br、xz 或 LZMA、zstd 或 zst。默认情况下,它将根据文件扩展名自动检测压缩方法。 |
headers | 参数是可选的。允许在 S3 请求中传递标头。以 headers(key=value) 格式传递,例如 headers('x-amz-request-payer' = 'requester')。有关示例,请参阅 此处。 |
extra_credentials | 可选。可以通过此参数传递 roleARN。有关示例,请参阅 此处。 |
也可以使用 命名集合 传递参数。在这种情况下,url、access_key_id、secret_access_key、format、structure、compression_method 的工作方式相同,并且支持一些额外的参数
| 参数 | 描述 |
|---|---|
filename | 如果指定,则附加到 url。 |
use_environment_credentials | 默认启用,允许使用环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI、AWS_CONTAINER_CREDENTIALS_FULL_URI、AWS_CONTAINER_AUTHORIZATION_TOKEN、AWS_EC2_METADATA_DISABLED 传递额外的参数。 |
no_sign_request | 默认禁用。 |
expiration_window_seconds | 默认值为 120。 |
返回值
一个具有指定结构的表,用于读取或写入指定文件中的数据。
示例
从 /root/data/clickhouse 和 /root/data/database/ 文件夹中的所有文件中选择数据,使用 cluster_simple 集群中的所有节点
计算 cluster_simple 集群中所有文件中的总行数
提示
如果您的文件列表包含带有前导零的数字范围,请为每个数字分别使用大括号构造,或使用 ?。
对于生产用例,建议使用 命名集合。这是一个例子
访问私有和公共存储桶
用户可以使用与 s3 函数文档相同的访问方法 此处。
优化性能
有关优化 s3 函数性能的详细信息,请参阅 我们的详细指南。