Saltar al contenido principal
Esta es una extensión de la función de tabla s3. Permite procesar archivos de Amazon S3 y Google Cloud Storage Google Cloud Storage en paralelo con varios nodos de un clúster especificado. En el nodo iniciador, crea una conexión con todos los nodos del clúster, expande los asteriscos en la ruta de archivo de S3 y asigna dinámicamente cada archivo. En el nodo worker, consulta al iniciador cuál es la siguiente tarea que debe procesar y la procesa. Este proceso se repite hasta que se completan todas las tareas.

Sintaxis

s3Cluster(cluster_name, url[, NOSIGN | access_key_id, secret_access_key,[session_token]][, format][, structure][, compression_method][, headers][, extra_credentials])
s3Cluster(cluster_name, named_collection[, option=value [,..]])

Argumentos

ArgumentoDescripción
cluster_nameNombre de un clúster que se utiliza para crear un conjunto de direcciones y parámetros de conexión para servidores remotos y locales.
urlRuta a un archivo o a un conjunto de archivos. Admite los siguientes comodines en modo de solo lectura: *, **, ?, {'abc','def'} y {N..M}, donde N, M son números y abc, def son cadenas. Para más información, consulta Comodines en la ruta.
NOSIGNSi se proporciona esta palabra clave en lugar de las credenciales, las solicitudes no se firmarán.
access_key_id and secret_access_keyClaves que especifican las credenciales que se usarán con el endpoint indicado. Opcional.
session_tokenToken de sesión que se usará con las claves indicadas. Opcional si se pasan claves.
formatEl formato del archivo.
structureEstructura de la tabla. Formato: 'column1_name column1_type, column2_name column2_type, ...'.
compression_methodEl parámetro es opcional. Valores admitidos: none, gzip o gz, brotli o br, xz o LZMA, zstd o zst. De forma predeterminada, el método de compresión se detecta automáticamente según la extensión del archivo.
headersEl parámetro es opcional. Permite pasar cabeceras en la solicitud a S3. Páselas en el formato headers(key=value), por ejemplo, headers('x-amz-request-payer' = 'requester'). Consulta aquí un ejemplo de uso.
extra_credentialsOpcional. roleARN puede pasarse mediante este parámetro. Consulta aquí un ejemplo.
Los argumentos también se pueden pasar mediante colecciones con nombre. En este caso, url, access_key_id, secret_access_key, format, structure y compression_method funcionan de la misma manera, y se admiten algunos parámetros adicionales:
ArgumentoDescripción
filenameSe añade a la URL si se especifica.
use_environment_credentialsHabilitado de forma predeterminada; permite pasar parámetros adicionales mediante las variables de entorno AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, AWS_CONTAINER_CREDENTIALS_FULL_URI, AWS_CONTAINER_AUTHORIZATION_TOKEN, AWS_EC2_METADATA_DISABLED.
no_sign_requestDeshabilitado de forma predeterminada.
expiration_window_secondsEl valor predeterminado es 120.

Valor devuelto

Una tabla con la estructura especificada para leer o escribir datos en el archivo indicado.

Ejemplos

Seleccione los datos de todos los archivos de las carpetas /root/data/clickhouse y /root/data/database/ utilizando todos los nodos del clúster cluster_simple:
SELECT * FROM s3Cluster(
    'cluster_simple',
    'http://minio1:9001/root/data/{clickhouse,database}/*',
    'minio',
    'ClickHouse_Minio_P@ssw0rd',
    'CSV',
    'name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
) ORDER BY (name, value, polygon);
Cuenta el número total de filas en todos los archivos del clúster cluster_simple:
Si la lista de archivos contiene rangos numéricos con ceros a la izquierda, usa la construcción con llaves para cada dígito por separado o ?.
Para entornos de producción, se recomienda usar colecciones con nombre. Aquí tienes un ejemplo:

CREATE NAMED COLLECTION creds AS
        access_key_id = 'minio',
        secret_access_key = 'ClickHouse_Minio_P@ssw0rd';
SELECT count(*) FROM s3Cluster(
    'cluster_simple', creds, url='https://s3-object-url.csv',
    format='CSV', structure='name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
)

Acceso a buckets privados y públicos

Los usuarios pueden utilizar los mismos métodos documentados para la función s3 aquí.

Optimización del rendimiento

Para conocer más detalles sobre cómo optimizar el rendimiento de la función s3, consulta nuestra guía detallada.
Última modificación el 12 de junio de 2026