Saltar al contenido principal
ClickHouse Cloud incluye un asistente de importación integrado que migra tu base de datos externa de PostgreSQL a un servicio de Managed Postgres. El asistente gestiona la conexión de origen, la exportación e importación del esquema, la configuración de replicación y la selección de tablas en cinco pasos guiados.

Requisitos previos

  • Acceso a la base de datos PostgreSQL de origen con un usuario que tenga privilegios de replicación.
  • Un servicio de ClickHouse Managed Postgres como destino de la migración. Si aún no dispone de uno, consulte la guía de inicio rápido.
  • pg_dump y psql instalados en la máquina local. Ambos se incluyen con las herramientas estándar del cliente de PostgreSQL.

Consideraciones antes de migrar

  • Propagación de DDL: la replicación continua (CDC) captura las 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.

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 fuentes de datos. Haz clic en Start import. Completa los datos 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 tu base de datos de origen lo requiere. Si necesitas una conexión privada a tu base de datos de origen, puedes usar SSH tunneling y proporcionar 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:
  • Initial load + CDC — copia los datos existentes y luego mantiene el destino sincronizado con los cambios en curso.
  • Initial load only — copia única, sin replicación continua.
  • CDC only — omite la copia inicial y replica solo 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 ya completado con los datos de conexión del 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 base de datos nueva para aprovisionar 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 la 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 Configuración avanzada de replicación para ajustar el rendimiento:
ConfiguraciónPredeterminadoDescripción
Intervalo de sincronización (segundos)10Frecuencia con la que se consulta la ranura de replicación
Hilos en paralelo para la carga inicial4Número de hilos para la fase de copia masiva
Tamaño del lote de extracción100,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 toman instantáneas de forma concurrente
Haga clic en Siguiente.

Paso 5: Seleccionar tablas

Selecciona las tablas que quieres replicar. Las tablas se agrupan por esquema. Selecciona tablas individuales o expande un esquema para seleccionarlas todas. Haz clic en Crear migración.

Supervisar la migración

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

Tareas posteriores a la migración

Una vez completada la carga inicial y, si usa CDC, cuando el retraso de replicación sea casi nulo: Valide los recuentos de filas. Compruebe las tablas críticas tanto en el origen como en el destino antes de redirigir el tráfico:
SELECT COUNT(*) FROM public.orders;
Detenga las escrituras en el origen. Pause las escrituras de la aplicación. Para habilitar 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 en el origen y en el destino
SELECT MAX(id), MAX(updated_at) FROM public.orders;
Restablezca 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 de Managed Postgres y supervise si se producen errores, violaciones de restricciones y problemas en 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>');

Próximos pasos

Última modificación el 10 de junio de 2026