Todos los productos
Search
Centro de documentos

AnalyticDB:Configure automatic data migration from an Amazon Redshift cluster to an AnalyticDB for PostgreSQL instance

Última actualización: Sep 04, 2026

La migración de un almacén de datos de Amazon Redshift a AnalyticDB for PostgreSQL implica la conversión de DDL, la exportación de datos, la transferencia entre nubes y la importación de datos. La herramienta adbpg-redshift-migration.jar automatiza estos pasos al gestionar la conversión de DDL y el movimiento de datos, lo que permite completar la migración sin necesidad de escribir scripts manuales.

La migración consta de cuatro pasos:

  1. Exportar y convertir las sentencias DDL de Redshift al formato de AnalyticDB for PostgreSQL.

  2. Cargar los datos de las tablas de Redshift a Amazon S3.

  3. Transferir los datos de Amazon S3 a Object Storage Service (OSS).

  4. Importar los datos de OSS a AnalyticDB for PostgreSQL.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Un clúster de Amazon Redshift

  • Amazon S3 activado y un rol temporal de Identity and Access Management (IAM) creado para el servicio

  • Permisos de Amazon S3 y Amazon Redshift otorgados al rol de IAM

  • La siguiente configuración de relación de confianza agregada al rol de IAM (surte efecto en aproximadamente 10 minutos):

    {
      "Effect": "Allow",
      "Principal": {
        "Service": "redshift.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  • El rol de IAM asociado a su clúster de Amazon Redshift

  • Una instancia de AnalyticDB for PostgreSQL y un OSS bucket creados en la misma región

Dimensionar la instancia de AnalyticDB for PostgreSQL

Asigne las especificaciones de su clúster de Redshift a las especificaciones de nodo de AnalyticDB for PostgreSQL antes de crear la instancia.

Un clúster de Amazon Redshift se compone de un nodo líder y varios nodos de cómputo. Cada nodo de cómputo se divide en segmentos de nodo. Cada segmento de nodo corresponde a un nodo de cómputo en AnalyticDB for PostgreSQL.

Ejemplo: Un clúster de Redshift con 4 nodos de cómputo, cada uno con 2 segmentos de nodo (2 núcleos, 16 GB de memoria, 1 TB de almacenamiento por segmento), corresponde a una instancia de AnalyticDB for PostgreSQL con:

  • Nodos de cómputo: 8 (4 nodos x 2 segmentos)

  • Especificaciones de nodo: 2 núcleos, 16 GB de memoria

  • Almacenamiento por nodo individual: 1,000 GB

Establezca el tipo de almacenamiento en Enhanced SSD (ESSD) para obtener un mejor rendimiento de E/S. Para obtener instrucciones sobre cómo crear una instancia, consulte Crear una instancia .

Procedimiento

Paso 1: Exportar y convertir sentencias DDL

Descargue la herramienta adbpg-redshift-migration.jar y ejecute el siguiente comando para exportar las sentencias DDL de Redshift y convertirlas al formato de AnalyticDB for PostgreSQL.

Importante

Antes de ejecutar este comando, configure las reglas del security group de la virtual private cloud (VPC) donde reside el clúster de Redshift para que la dirección IP de la herramienta de migración pueda alcanzar el puerto del servicio de Redshift.

java -jar adbpg-redshift-migration.jar -d redshift -h r-red.cjbgr.cn-north-1.redshift.amazonaws.com.cn -p 5439 -U awsuser -w Lrz**** --transform

Reemplace los valores de los parámetros por sus valores reales.

Parámetro

Descripción

-d

Tipo de base de datos. Establézcalo en redshift.

-h

Endpoint del clúster de Redshift. Obténgalo de la URL JDBC en la consola de Redshift. Por ejemplo, si la URL JDBC es jdbc:redshift://r-red.cjbgr.cn-north-1.redshift.amazonaws.com.cn:5439/dev, el endpoint es r-red.cjbgr.cn-north-1.redshift.amazonaws.com.cn.

-p

Número de puerto. Establézcalo en 5439.

-U

Nombre del superusuario del clúster de Redshift. Por lo general es awsuser, el usuario especificado durante la creación del clúster.

-w

Contraseña del superusuario de Redshift.

--transform

Realiza tanto la descarga como la conversión de DDL. El DDL descargado se guarda en ddl_dump_{timestamp}.txt. El DDL convertido se guarda en ddl_transform_{timestamp}.txt.

Después de crear una base de datos, un esquema y un usuario en la instancia de AnalyticDB for PostgreSQL para almacenar los datos de Amazon Redshift, revise ddl_transform_{timestamp}.txt y compruebe que los DDL statements convertidos sean compatibles con AnalyticDB for PostgreSQL. De ser así, ejecute las sentencias DDL para crear los esquemas de tabla correspondientes.

Paso 2: Cargar datos de Redshift a Amazon S3

Ejecute el siguiente comando para exportar los datos de las tablas de Redshift y cargarlos en Amazon S3. Una vez completada la carga, se generan dos archivos de resultados: succeed_transfer_tables_{timestamp}.txt (tablas cargadas correctamente) y failed_transfer_tables_{timestamp}.txt (tablas con errores).

java -jar adbpg-redshift-migration.jar -d redshift -h host-info -p 5432 -U dbuser -w Lrz**** -o s3 -b dbuser-bj --iam-account account-info --iam-role role-info --root-dir rootdir --format parquet --use-iam --china-region --jobs 8 -f tablelist.txt --upload

Reemplace los valores de los parámetros por sus valores reales.

Parámetro

Descripción

-o

Almacenamiento en la nube de destino. Establézcalo en s3.

-b

Nombre del bucket de Amazon S3.

--iam-account

ID de cuenta del rol de IAM. Es un número de 12 dígitos del Amazon Resource Name (ARN) del rol de IAM. Por ejemplo, 123456789012 en arn:aws-cn:iam::123456789012:role/lrz2.

--iam-role

Nombre del rol de IAM. Por ejemplo, lrz2 en arn:aws-cn:iam::123456789012:role/lrz2.

--root-dir

Directorio raíz en Amazon S3.

--format

Formato de exportación de datos: parquet (predeterminado, recomendado), csv o json. Parquet permite una exportación de datos rápida y segura. Los delimitadores de fila en archivos CSV no se pueden personalizar.

--use-iam

Utiliza el rol de IAM para la autenticación durante la carga.

--china-region

(Opcional) Especifique este parámetro solo cuando cargue datos desde regiones de China continental.

--jobs

Número de trabajos de carga en paralelo.

-f

Archivo que contiene los nombres de las tablas a cargar. Cada línea debe contener un nombre de tabla en formato database.schema.table. Para cargar todas las tablas, utilice --full en su lugar.

--upload

Activa la operación de carga.

Paso 3: Transferir datos de Amazon S3 a OSS

Utilice Alibaba Cloud Data Online Migration para transfer the data from Amazon S3 to OSS.

Paso 4: Importar datos de OSS a AnalyticDB for PostgreSQL

Importante

Antes de ejecutar este comando, envíe un ticket para solicitar permisos de superusuario en su instancia de AnalyticDB for PostgreSQL.

Ejecute el siguiente comando para importar los datos de OSS a AnalyticDB for PostgreSQL. Utilice el archivo succeed_transfer_tables_{timestamp}.txt generado en el Paso 2 como entrada para el parámetro -f.

java -jar adbpg-redshift-migration.jar -d adbpg -h gp-2ze312*******o-master.gpdb.rds.aliyuncs.com -p 5432 -U dbuser -w Lrz**** -o oss -e oss-cn-beijing-internal.aliyuncs.com -i "LTAI5tP*******rCrdj" -k "4k3ntmvK*******M2mqjQcuOy" -b dbuser-bj --root-dir rootdir --format parquet --jobs 8 -f tablelist.txt --download

Reemplace los valores de los parámetros por sus valores reales.

Parámetro

Descripción

-d

Tipo de base de datos. Establézcalo en adbpg.

-h

Endpoint de la instancia de AnalyticDB for PostgreSQL. Obtenga el public endpoint desde la consola de AnalyticDB for PostgreSQL.

-p

Número de puerto. Establézcalo en 5432.

-U

Nombre del initial account de la instancia de AnalyticDB for PostgreSQL.

-w

Contraseña de la cuenta inicial.

-o

Almacenamiento en la nube de origen. Establézcalo en oss.

-e

Endpoint del bucket de OSS.

-i

AccessKey ID utilizado para acceder a OSS.

-k

AccessKey secret utilizado para acceder a OSS.

-b

Nombre del bucket de OSS.

--root-dir

Directorio raíz de OSS.

--format

Formato de datos a importar. Utilice el mismo formato especificado en el Paso 2 (predeterminado: parquet).

--jobs

Número de trabajos de importación en paralelo.

-f

Archivo que contiene los nombres de las tablas a importar. Cada línea debe contener un nombre de tabla en formato database.schema.table. En la mayoría de los casos, puede utilizar el archivo succeed_transfer_tables_{timestamp}.txt generado durante la carga en el Paso 2.

--new-name-file

(Opcional) Archivo que contiene los nombres correspondientes de las tablas de AnalyticDB for PostgreSQL. Solo es necesario si los nombres de las tablas difieren de los de Redshift. Cada línea debe contener un nombre de tabla en formato database.schema.table. Los nombres de tabla en este archivo tienen una correspondencia uno a uno con los del archivo -f.

--download

Activa la operación de descarga (importación).

Siguientes pasos

Para realizar una migración manual sin la herramienta automatizada, consulte Manually migrate data from an Amazon Redshift cluster to an AnalyticDB for PostgreSQL instance.