Esta guía ofrece instrucciones paso a paso para migrar su base de datos PostgreSQL a ClickHouse Managed Postgres con las utilidades pg_dump y pg_restore.
- Acceso a su base de datos PostgreSQL de origen.
pg_dump y pg_restore instalados en su máquina local. Normalmente se incluyen con las instalaciones de PostgreSQL. Si no es así, puede descargarlos desde el sitio web oficial de PostgreSQL.
Para seguir estos pasos, usaremos una base de datos Postgres de RDS de ejemplo como base de datos de origen. Algo así:
Esto es lo que tenemos:
- Dos tablas:
events y users. events tiene un millón de filas y users, mil.
events tiene un índice.
- Una vista sobre la tabla
events.
- Un par de secuencias
Crear un dump de la base de datos de origen
Ahora usemos pg_dump para generar un dump de los objetos anteriores. Es un comando sencillo:
pg_dump \
-d 'postgresql://<user>:<password>@<host>:<port>/<database>' \
--format directory \
-f rds-dump
Aquí:
- Sustituye
<user>, <password>, <host>, <port> y <database> por las credenciales de tu base de datos de origen. La mayoría de los proveedores de Postgres te proporcionan una connection string que puedes usar directamente.
--format directory especifica que queremos el dump en formato de directorio, que es compatible con pg_restore.
-f rds-dump especifica el directorio de salida de los archivos del dump. Ten en cuenta que este directorio se creará automáticamente y no debe existir previamente.
- También puedes paralelizar el proceso de dump añadiendo la marca
--jobs, seguida del número de jobs en paralelo que quieras ejecutar. Para más detalles, consulta la documentación de pg_dump.
Puedes probar este proceso una vez para hacerte una idea de cuánto tarda y del tamaño del dump.
Esto es lo que verás al ejecutar este comando:
Migrar el dump a ClickHouse Managed Postgres
Ahora que tenemos el dump, podemos restaurarlo en nuestra instancia de ClickHouse Managed Postgres con pg_restore.
Crear una instancia de Managed Postgres
Primero, asegúrate de tener ya creada una instancia de Managed Postgres, preferiblemente en la misma región que el origen. Puedes seguir la guía rápida aquí. Esto es lo que vamos a aprovisionar para esta guía:
Ahora, de vuelta en la máquina local, podemos usar el comando pg_restore para restaurar el dump en la instancia de Managed Postgres:
pg_restore \
-d 'postgresql://<user>:<password>@<pg_clickhouse_host>:5432/<database>' \
--verbose \
rds-dump
Puedes obtener la cadena de conexión de tu instancia de Managed Postgres desde la consola de ClickHouse Cloud, explicado de forma muy sencilla aquí.
Aquí también hay un par de opciones que conviene tener en cuenta:
--verbose proporciona una salida detallada durante el proceso de restauración.
- También puedes usar la opción
--jobs para paralelizar el proceso de restauración. Para obtener más detalles, consulta la documentación de pg_restore.
En nuestro caso, se ve así:
Una vez completado el proceso de restauración, puedes conectarte a tu instancia de Managed Postgres y verificar que todos tus datos y objetos se hayan migrado correctamente. Puedes usar cualquier cliente de PostgreSQL para conectarte y ejecutar consultas.
Así es como se ve nuestra configuración de Managed Postgres después de la migración:
Vemos que todas nuestras tablas, índices, vistas y secuencias están intactas, y que los recuentos de datos coinciden.
- Asegúrese de que las versiones de PostgreSQL de las bases de datos de origen y de destino sean compatibles.
Usar una versión de pg_dump anterior a la del server de origen puede provocar la falta de algunas funcionalidades o problemas durante la restauración. Lo ideal es usar la misma versión principal de pg_dump que la base de datos de origen, o una posterior.
- Las bases de datos grandes pueden tardar bastante tiempo en generar el dump y en restaurarse.
Planifique en consecuencia para minimizar el tiempo de inactividad y, cuando sea posible, considere usar dumps/restauraciones en paralelo (—jobs).
- Tenga en cuenta que pg_dump / pg_restore no replican todos los objetos relacionados con la base de datos ni todo el estado en tiempo de ejecución.
Entre ellos se incluyen roles y membresías de roles, slots de replicación, la configuración a nivel de server (p. ej., postgresql.conf, pg_hba.conf), tablespaces y estadísticas en tiempo de ejecución.
¡Enhorabuena! Has migrado correctamente tu base de datos de PostgreSQL a ClickHouse Managed Postgres con pg_dump y pg_restore. Ya puedes explorar las funcionalidades de Managed Postgres y su integración con ClickHouse. Aquí tienes una guía de inicio rápido de 10 minutos para empezar: