Saltar al contenido principal
ClickHouse Cloud ahora ofrece ClickPipes para migrar su base de datos externa de PostgreSQL a un servicio de Managed Postgres. Esta integración incorporada ofrece una experiencia optimizada para conectarse a su base de datos de origen, exportar el esquema, importarlo en Managed Postgres y configurar la replicación continua.

Prerrequisitos

Consideraciones antes de migrar

  • Propagación de DDL: la replicación continua (CDC) captura operaciones DML y ADD COLUMN. Otros cambios de DDL, como DROP COLUMN y ALTER COLUMN, no se propagan y deben aplicarse manualmente en el sistema de destino.
Si tienes problemas durante la migración, consulta las preguntas frecuentes sobre migraciones de Managed Postgres para ver los errores más comunes y sus soluciones.

Paso 1: Conéctate a tu base de datos de origen

Abre la consola de ClickHouse Cloud y selecciona tu servicio de Managed Postgres. En la barra lateral izquierda, haz clic en fuente de datos. Haz clic en Start import. Completa los detalles de conexión de tu base de datos PostgreSQL de origen: host, puerto, nombre de usuario, contraseña y nombre de la base de datos. Habilita TLS si la base de datos de origen lo requiere. Si necesitas una conexión privada a tu base de datos de origen, puedes usar un túnel SSH e introducir los datos de SSH necesarios. Esto permite que la migración se conecte de forma segura a bases de datos que no son accesibles públicamente. Elige un método de ingestión:
  • Carga inicial + CDC — copia los datos existentes y después mantiene el destino sincronizado con los cambios posteriores.
  • Solo carga inicial — copia puntual, sin replicación continua.
  • Solo CDC — omite la copia inicial y replica únicamente los cambios nuevos a partir de este momento.
Haz clic en Next.

Paso 2: Exporta el esquema de tu base de datos

El asistente muestra un comando pg_dump rellenado previamente con los detalles de conexión de origen. Ejecútalo en una terminal:
pg_dump \
  -h <source_host> \
  -U <source_user> \
  -d <source_database> \
  --schema-only \
  -f pg.sql
Esto crea pg.sql en el directorio actual. Haz clic en Next.

Paso 3: Importa el esquema en tu servicio de Managed Postgres

Selecciona la base de datos de destino en el menú desplegable o haz clic en Crear una nueva base de datos para crear una. El asistente muestra un comando psql para aplicar el volcado del esquema a tu servicio de Managed Postgres. Ejecútalo en una terminal:
psql \
  -h <target_host> \
  -p 5432 \
  -U <target_user> \
  -d <target_database> \
  -f pg.sql
Haz clic en Siguiente.

Paso 4: Configurar los ajustes de ingestión

Especifique la publicación que se usará para la replicación lógica. Si deja este campo en blanco, se creará una publicación automáticamente. Expanda Advanced replication settings para ajustar el rendimiento:
AjustePredeterminadoDescripción
Intervalo de sincronización (segundos)10Frecuencia con la que se consulta el slot de replicación
Hilos paralelos para la carga inicial4Número de hilos para la fase de copia masiva
Tamaño del lote de Pull100,000Filas recuperadas por lote de replicación
Número de filas por partición en la instantánea100000Tamaño de la partición para instantáneas de tablas grandes
Número de tablas en paralelo en la instantánea1Tablas de las que se toma una instantánea de forma simultánea
Haga clic en Siguiente.

Paso 5: Seleccionar tablas

Selecciona las tablas que quieres replicar. Las tablas están agrupadas por esquema. Selecciona tablas individuales o expande un esquema para elegirlas todas. Haz clic en Crear migración.

Supervisa la migración

Después de crear la migración, la verás en Fuentes de datos con el estado En ejecución. Haz clic en la migración para abrir la vista de detalles. La pestaña Tablas muestra el progreso de la carga inicial de cada tabla, incluidas las filas procesadas, las particiones y el tiempo medio por partición. La pestaña Métricas muestra la latencia de replicación y el rendimiento una vez que se inicia CDC.

Tareas posteriores a la migración

Una vez completada la carga inicial y, si se usa CDC, cuando el retraso de replicación sea casi nulo: Valide el número de filas. Verifique de forma puntual las tablas críticas tanto en el origen como en el destino antes de redirigir el tráfico:
SELECT COUNT(*) FROM public.orders;
Detén las escrituras en el origen. Pausa las operaciones de escritura de la aplicación. Para forzar el modo de solo lectura durante la transición:
ALTER DATABASE <source_db> SET default_transaction_read_only = on;
Confirme que la replicación esté al día. Compare la última fila del origen y del destino:
-- Ejecutar tanto en el origen como en el destino
SELECT MAX(id), MAX(updated_at) FROM public.orders;
Restablecer las secuencias. Alinee las secuencias con los valores máximos actuales de cada tabla:
DO $$
DECLARE r RECORD;
BEGIN
    FOR r IN
        SELECT
            n.nspname AS schema_name,
            c.relname AS table_name,
            a.attname AS column_name,
            pg_get_serial_sequence(format('%I.%I', n.nspname, c.relname), a.attname) AS seq_name
        FROM pg_class c
        JOIN pg_namespace n ON n.oid = c.relnamespace
        JOIN pg_attribute a ON a.attrelid = c.oid
        WHERE c.relkind = 'r'
            AND a.attnum > 0
            AND NOT a.attisdropped
            AND n.nspname NOT IN ('pg_catalog', 'information_schema')
    LOOP
        IF r.seq_name IS NOT NULL THEN
            EXECUTE format(
                'SELECT setval(%L, COALESCE((SELECT MAX(%I) FROM %I.%I), 0) + 1, false)',
                r.seq_name, r.column_name, r.schema_name, r.table_name
            );
        END IF;
    END LOOP;
END $$;
Redirija el tráfico de la aplicación. Dirija las operaciones de lectura y escritura a su servicio Managed Postgres y supervise los errores, las violaciones de restricciones y el estado de la replicación. Limpieza. Una vez que haya redirigido el tráfico y confirmado que el nuevo servicio está en buen estado, elimine la migración de fuentes de datos. Si usó CDC, elimine el slot de replicación del origen para liberar recursos:
SELECT pg_drop_replication_slot('<slot_name>');

Siguientes pasos

Última modificación el 10 de junio de 2026