Saltar al contenido principal

Descripción general

Hay dos métodos principales para migrar datos desde ClickHouse autogestionado (OSS) a ClickHouse Cloud:
  • Usar la función remoteSecure(), con la que los datos se extraen o envían directamente.
  • Usar los comandos BACKUP/RESTORE mediante almacenamiento de objetos en la nube
Esta guía de migración se centra en el enfoque de BACKUP/RESTORE y ofrece un ejemplo práctico de cómo migrar una base de datos o un servicio completo desde ClickHouse open source a Cloud mediante un bucket de S3.
Prerrequisitos Para que los pasos de esta guía sean fáciles de seguir y reproducibles, usaremos una de las recetas de Docker Compose para un clúster de ClickHouse con dos segmentos y dos réplicas.
Se requiere un clústerEste método de copia de seguridad requiere un clúster de ClickHouse porque las tablas deben convertirse del motor MergeTree a ReplicatedMergeTree. Si ejecutas una sola instancia, sigue en su lugar los pasos de “Migrating between self-managed ClickHouse and ClickHouse Cloud using remoteSecure”.

Preparación de OSS

Primero iniciaremos un clúster de ClickHouse con una configuración de Docker Compose de nuestro repositorio de ejemplos. Puede omitir este paso si ya tiene un clúster de ClickHouse en ejecución.
  1. Clone el repositorio de ejemplos en su máquina local
  2. En la terminal, vaya a examples/docker-compose-recipes/recipes/cluster_2S_2R con cd
  3. Asegúrese de que Docker esté en ejecución y, a continuación, inicie el clúster de ClickHouse:
Deberías ver:
Desde una nueva ventana de terminal, en la raíz de la carpeta, ejecute el siguiente comando para conectarse al primer nodo del clúster:

De una tabla MergeTree a una tabla ReplicatedMergeTree

ClickHouse Cloud funciona con SharedMergeTree. Al restaurar una copia de seguridad, ClickHouse convierte automáticamente las tablas con ReplicatedMergeTree en tablas SharedMergeTree. Es probable que sus tablas ya usen el motor ReplicatedMergeTree si ejecuta un clúster. Si no es así, tendrá que convertir cualquier tabla MergeTree en ReplicatedMergeTree antes de hacer una copia de seguridad. Para demostrar cómo convertir tablas MergeTree en ReplicatedMergeTree, comenzaremos con una tabla MergeTree y luego la convertiremos en ReplicatedMergeTree. Seguiremos los dos primeros pasos de la guía de datos de taxis de Nueva York para crear una tabla de ejemplo y cargar datos en ella. Esos pasos se incluyen a continuación para facilitar la consulta. Ejecute los siguientes comandos para crear una nueva base de datos e insertar datos desde un bucket de S3 en una nueva tabla:
Ejecute el siguiente comando para aplicar DETACH a la tabla.
Luego, adjúntela como tabla replicada:
Por último, restaura los metadatos de la réplica:
Comprueba que se haya convertido en ReplicatedMergeTree:
Ahora ya está listo para continuar con la configuración de su servicio de Cloud como preparación para restaurar más adelante una copia de seguridad desde su bucket de S3.

Tablas distribuidas con ReplicatedMergeTree

Si su configuración usa tablas distribuidas a través de varios segmentos, necesitará una tabla ReplicatedMergeTree local en cada nodo y una tabla Distributed como punto de entrada para las consultas. Ejecute el siguiente comando para crear la tabla replicada local en todos los nodos del clúster:
A continuación, cree la tabla Distributed sobre esa base:
Insertar datos mediante la tabla distribuida:

Preparación para Cloud

Restaurarás tus datos en un nuevo servicio de Cloud. Sigue estos pasos para crear un nuevo servicio de Cloud.
1
2

Crea un nuevo servicio

3

Configura y crea un servicio

Elige la región y la configuración que prefieras y, a continuación, haz clic en Create service
4

Crea un rol de acceso

Abre SQL Console

Configura el acceso a S3

Para restaurar tu copia de seguridad desde S3, tendrás que configurar un acceso seguro entre ClickHouse Cloud y tu bucket de S3.
  1. Sigue los pasos de “Acceder a datos de S3 de forma segura” para crear un rol de acceso y obtener el ARN del rol.
  2. Actualiza la política del bucket de S3 que creaste en “Cómo crear un bucket de S3 y un rol de IAM” añadiendo el ARN del rol del paso anterior.
La política actualizada de tu bucket de S3 tendrá un aspecto similar a este:
La política incluye ambos ARN:
  • Usuario de IAM (docs-s3-user): Permite que tu cluster de ClickHouse autogestionado haga copias de seguridad en S3
  • Rol de ClickHouse Cloud (ClickHouseAccess-001): Permite que tu servicio de Cloud restaure desde S3

Realización de la copia de seguridad (en una implementación autogestionada)

Se debe hacer una copia de seguridad de cada segmento por separado. Conéctese a un nodo de cada segmento y ejecute el comando de copia de seguridad con una ruta de destino única para cada segmento. Sustituya BUCKET_URL, KEY_ID y SECRET_KEY por sus propias credenciales de AWS. La guía “Cómo crear un bucket de S3 y un rol de IAM” muestra cómo obtenerlas si todavía no las tiene. Segmento 1:
Segmento 2:
Si todo está correctamente configurado, verá una respuesta similar a la siguiente, que contiene un ID único asignado a la copia de seguridad y el estado de esta.
Despliegues de un solo nodoSi no utiliza tablas distribuidas, puede hacer una copia de seguridad de toda la base de datos con un solo comando:
Si revisa su bucket de S3, que antes estaba vacío, ahora verá que han aparecido algunas carpetas: Si está realizando una migración completa, puede ejecutar el siguiente comando para hacer una copia de seguridad de todo el servidor:
El comando anterior crea copias de seguridad de:
  • Todas las bases de datos y tablas de usuario
  • Cuentas de usuario y contraseñas
  • Roles y permisos
  • Perfiles de configuración
  • Políticas por fila
  • Cuotas
  • Funciones definidas por el usuario
Si usas un proveedor de servicios en la nube (CSP) diferente, puedes utilizar la sintaxis TO S3() (tanto para AWS como para GCP) y TO AzureBlobStorage(). Para bases de datos muy grandes, considera usar ASYNC para ejecutar la copia de seguridad en segundo plano:
El ID de la copia de seguridad puede utilizarse para supervisar el progreso de la copia de seguridad:
También es posible realizar copias de seguridad incrementales. Para obtener más información general sobre las copias de seguridad, consulte la documentación sobre copias de seguridad y restauración.

Restaurar en ClickHouse Cloud

Restaura la copia de seguridad de cada segmento de uno en uno en tu servicio de Cloud. Asigna a ROLE_ARN el valor obtenido en “Acceder a datos de S3 de forma segura”. Usa SETTINGS allow_non_empty_tables=true en la segunda restauración (y en cualquier restauración posterior) para que los datos del segmento se añadan a las tablas ya restauradas en lugar de que la operación falle por un conflicto: Segmento 1:
Segmento 2:
implementaciones no distribuidasSi no utiliza tablas distribuidas, restaure la base de datos con un solo comando:
Puede realizar una restauración completa del servicio de forma similar:
Una vez completada la restauración, puedes verificar que los datos estén disponibles en Cloud:
Dado que ClickHouse Cloud usa SharedMergeTree internamente, la antigua tabla distribuida ya no es necesaria. Puede eliminarla y sustituirla por una vista que conserve el nombre original de la tabla para sus consultas:
Las tablas ReplicatedMergeTree no distribuidas se restaurarán como SharedMergeTree:
Última modificación el 25 de junio de 2026