Skip to main content
Esta página no se aplica a ClickHouse Cloud. La funcionalidad documentada aquí no está disponible en los servicios de ClickHouse Cloud. Consulta la guía de ClickHouse sobre compatibilidad con Cloud para obtener más información.
La función de tabla s3 y el tipo de disco S3 de ClickHouse son compatibles con SeaweedFS, un almacén distribuido de objetos de código abierto con un gateway compatible con S3. SeaweedFS gestiona solicitudes con rutas de estilo path de forma nativa, por lo que una implementación self-hosted funciona sin DNS con comodines. SeaweedFS también admite tablas Iceberg: sus buckets de tablas almacenan los datos en archivos Parquet, y el catálogo REST de Iceberg integrado proporciona los metadatos de las tablas. Consulte la guía del catálogo de SeaweedFS para consultarlas a través del mismo endpoint. Use SeaweedFS 4.42 o una versión posterior. Las versiones anteriores pueden eliminar un objeto cuyo commit de escritura se produce mientras se elimina su carpeta principal por estar vacía, lo que se manifiesta como Object ... suddenly disappeared justo después de una escritura correcta.

Ejecutar SeaweedFS localmente

Para realizar pruebas locales, cree un archivo s3config.json con las credenciales de S3:
A continuación, inicie toda la pila de SeaweedFS en un contenedor; el indicador -bucket crea el bucket al iniciarse:
El endpoint de S3 está a la escucha en el puerto 8333; espere a que responda antes de continuar:
Se pueden crear más buckets en cualquier momento con echo "s3.bucket.create -name mybucket" | docker exec -i seaweedfs weed shell. De forma predeterminada, una escritura se confirma cuando se entrega al sistema operativo. Para sincronizar cada escritura con el disco mediante fsync antes de confirmarla, habilite fsync en el bucket:

MergeTree respaldado por S3

La configuración de MergeTree respaldado por S3 es compatible con cambios menores:
El endpoint contiene el nombre del bucket (clickhouse) seguido de un prefijo de ruta (tables/) para los datos de la tabla. SeaweedFS no requiere una región, por lo que la etiqueta puede dejarse vacía. Sustituya seaweedfs por el host que ejecuta el gateway de S3.
A continuación, las tablas almacenan sus datos en SeaweedFS mediante la política de almacenamiento:
Para mantener una caché local de los datos de acceso frecuente, cree la tabla con SETTINGS disk = 's3_cache'; el disco de caché definido anteriormente se superpone al disco S3.

La función de tabla s3

La función de tabla s3 lee y escribe objetos en el mismo endpoint:
Los patrones glob permiten leer varios objetos.

Copia de seguridad y restauración

BACKUP y RESTORE aceptan un endpoint de SeaweedFS como destino S3:
Última modificación el 18 de agosto de 2026