Skip to main content

Descripción general

Esta guía explica cómo puede usar ClickHouse y S3 para implementar una arquitectura con almacenamiento y cómputo separados. La separación de almacenamiento y cómputo significa que los recursos de cómputo y de almacenamiento se gestionan de forma independiente. En ClickHouse, esto permite una mayor escalabilidad, una mejor eficiencia de costos y más flexibilidad. Puede escalar por separado los recursos de almacenamiento y de cómputo según sea necesario, optimizando así el rendimiento y los costos. Usar ClickHouse con S3 como almacenamiento subyacente es especialmente útil en casos de uso donde el rendimiento de las consultas sobre datos “fríos” es menos crítico. ClickHouse permite usar S3 como almacenamiento para el engine MergeTree mediante S3BackedMergeTree. Este motor de tabla le permite aprovechar la escalabilidad y las ventajas de costo de S3, al tiempo que mantiene el rendimiento de inserción y consulta del engine MergeTree. Tenga en cuenta que implementar y gestionar una arquitectura con separación de almacenamiento y cómputo es más complejo que los despliegues estándar de ClickHouse. Aunque ClickHouse autogestionado permite separar almacenamiento y cómputo, como se explica en esta guía, recomendamos usar ClickHouse Cloud, que le permite utilizar ClickHouse con esta arquitectura sin necesidad de configuración mediante el motor de tabla SharedMergeTree. Esta guía asume que está usando ClickHouse versión 22.8 o superior.
No configure ninguna política de ciclo de vida de AWS/GCS. No se admite y podría provocar tablas corruptas.
1

Usar S3 como disco de ClickHouse

Crear un disco

Cree un nuevo archivo en el directorio config.d de ClickHouse para guardar la configuración de almacenamiento:
Copia el siguiente XML en el archivo recién creado y reemplaza BUCKET, ACCESS_KEY_ID y SECRET_ACCESS_KEY por los datos del bucket de AWS donde quieras almacenar tus datos:
Si necesita especificar aún más la configuración del disco S3, por ejemplo, para indicar una región o enviar una cabecera HTTP personalizada, puede consultar la lista de opciones de configuración pertinentes aquí.También puede reemplazar access_key_id y secret_access_key por lo siguiente, que intentará obtener credenciales de las variables de entorno y de los metadatos de Amazon EC2:
Después de crear el archivo de configuración, debes cambiar el propietario del archivo al usuario y grupo clickhouse:
Ahora puede reiniciar el servidor de ClickHouse para que los cambios surtan efecto:
2

Crear una tabla con respaldo en S3

Para comprobar que hemos configurado correctamente el disco S3, podemos intentar crear una tabla y hacer una consulta sobre ella.Cree una tabla especificando la nueva política de almacenamiento de S3:
Tenga en cuenta que no fue necesario especificar el engine como S3BackedMergeTree. ClickHouse convierte automáticamente el tipo de engine internamente si detecta que la tabla usa S3 como almacenamiento.Compruebe que la tabla se creó con la política correcta:
Debería ver el siguiente resultado:
Ahora, vamos a insertar algunas filas en nuestra nueva tabla:
Verifiquemos que se hayan insertado nuestras filas:
En la consola de AWS, si sus datos se insertaron correctamente en S3, debería ver que ClickHouse ha creado nuevos archivos en el bucket que especificó.Si todo funcionó correctamente, ahora está usando ClickHouse con almacenamiento y cómputo separados.
3

Implementación de la replicación para tolerancia a fallos (opcional)

No configure ninguna política de ciclo de vida de AWS/GCS. Esto no es compatible y podría hacer que las tablas dejen de funcionar.
Para la tolerancia a fallos, puede usar varios nodos de servidor de ClickHouse distribuidos en varias regiones de AWS, con un bucket de S3 para cada nodo.La replicación con discos S3 se puede lograr usando el motor de tabla ReplicatedMergeTree. Consulte la siguiente guía para obtener más detalles:

Lecturas adicionales

Última modificación el 23 de julio de 2026