Todos os produtos
Search
Central de documentação

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

Última atualização: Jun 27, 2026

A migração de um data warehouse do Amazon Redshift para o AnalyticDB for PostgreSQL envolve conversão de DDL, exportação de dados, transferência entre nuvens e importação de dados. A ferramenta adbpg-redshift-migration.jar automatiza essas etapas ao gerenciar a conversão de DDL e a movimentação de dados, permitindo concluir a migração sem scripts manuais.

A migração consiste em quatro etapas:

  1. Exporte e converta instruções DDL do Redshift para o formato do AnalyticDB for PostgreSQL.

  2. Carregue dados de tabelas do Redshift para o Amazon S3.

  3. Transfira dados do Amazon S3 para o Object Storage Service (OSS).

  4. Importe dados do OSS para o AnalyticDB for PostgreSQL.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster do Amazon Redshift

  • Amazon S3 ativado e uma função temporária do Identity and Access Management (IAM) criada para o serviço

  • Permissões do Amazon S3 e do Amazon Redshift concedidas à função IAM

  • A seguinte configuração de relação de confiança adicionada à função IAM (entra em vigor em aproximadamente 10 minutos):

    {
      "Effect": "Allow",
      "Principal": {
        "Service": "redshift.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  • A função IAM associada ao seu cluster do Amazon Redshift

  • Uma instância do AnalyticDB for PostgreSQL e um bucket do OSS criados na mesma região

Dimensionar a instância do AnalyticDB for PostgreSQL

Mapeie as especificações do cluster do Redshift para as especificações de nó do AnalyticDB for PostgreSQL antes de criar a instância.

Um cluster do Amazon Redshift consiste em um nó líder e vários nós de computação. Cada nó de computação é particionado em fatias de nó. Cada fatia de nó corresponde a um nó de computação no AnalyticDB for PostgreSQL.

Exemplo: Um cluster do Redshift com 4 nós de computação, cada um com 2 fatias de nó (2 núcleos, 16 GB de memória, 1 TB de armazenamento por fatia), corresponde a uma instância do AnalyticDB for PostgreSQL com:

  • Nós de computação: 8 (4 nós x 2 fatias)

  • Especificações do nó: 2 núcleos, 16 GB de memória

  • Armazenamento por nó único: 1.000 GB

Defina o tipo de armazenamento como Enhanced SSD (ESSD) para obter melhor desempenho de I/O. Para obter instruções sobre como crie uma instância, consulte Crie uma instância .

Procedimento

Etapa 1: Exportar e converter instruções DDL

Baixe a ferramenta adbpg-redshift-migration.jar e execute o comando a seguir para exportar instruções DDL do Redshift e convertê-las para o formato do AnalyticDB for PostgreSQL.

Importante

Antes de executar este comando, configure regras de grupo de segurança para a VPC onde o cluster do Redshift reside, de modo que o endereço IP da ferramenta de migração possa acessar a porta de serviço do 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

Substitua os valores dos parâmetros pelos seus valores reais.

Parâmetro

Descrição

-d

Tipo de banco de dados. Defina como redshift.

-h

Endpoint do cluster do Redshift. Obtenha essa informação na URL JDBC no console do Redshift. Por exemplo, se a URL JDBC for jdbc:redshift://r-red.cjbgr.cn-north-1.redshift.amazonaws.com.cn:5439/dev, o endpoint será r-red.cjbgr.cn-north-1.redshift.amazonaws.com.cn.

-p

Número da porta. Defina como 5439.

-U

Nome do superusuário do cluster do Redshift. Geralmente é awsuser, o usuário especificado durante a criação do cluster.

-w

Senha do superusuário do Redshift.

--transform

Executa tanto o baixe quanto a conversão do DDL. O DDL baixado é salvo em ddl_dump_{timestamp}.txt. O DDL convertido é salvo em ddl_transform_{timestamp}.txt.

Após crie um banco de dados, um schema e um usuário na instância do AnalyticDB for PostgreSQL para armazenar os dados do Amazon Redshift, revise o arquivo ddl_transform_{timestamp}.txt e verifique se as instruções DDL convertidas são compatíveis com o AnalyticDB for PostgreSQL. Em caso afirmativo, execute as instruções DDL para crie os schemas de tabela correspondentes.

Etapa 2: Carregar dados do Redshift para o Amazon S3

Execute o comando a seguir para exportar dados de tabelas do Redshift e carregá-los no Amazon S3. Após a conclusão do upload, dois arquivos de resultado são gerados: succeed_transfer_tables_{timestamp}.txt (tabelas carregadas com sucesso) e failed_transfer_tables_{timestamp}.txt (tabelas com falha).

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

Substitua os valores dos parâmetros pelos seus valores reais.

Parâmetro

Descrição

-o

Armazenamento em nuvem de destino. Defina como s3.

-b

Nome do bucket do Amazon S3.

--iam-account

ID da conta da função IAM. Trata-se de um número de 12 dígitos do Amazon Resource Name (ARN) da função IAM. Por exemplo, 123456789012 em arn:aws-cn:iam::123456789012:role/lrz2.

--iam-role

Nome da função IAM. Por exemplo, lrz2 em arn:aws-cn:iam::123456789012:role/lrz2.

--root-dir

Diretório raiz no Amazon S3.

--format

Formato de exportação de dados: parquet (padrão, recomendado), csv ou json. O formato Parquet permite exportação de dados rápida e segura. Delimitadores de linha em arquivos CSV não podem ser personalizados.

--use-iam

Utiliza a função IAM para autenticação durante o upload.

--china-region

(Opcional) Especifique este parâmetro apenas ao carregar dados de regiões na China continental.

--jobs

Número de tarefas de upload paralelas.

-f

Arquivo contendo os nomes das tabelas a serem carregadas. Cada linha deve conter um nome de tabela no formato database.schema.table. Para carregar todas as tabelas, use --full.

--upload

Aciona a operação de upload.

Etapa 3: Transferir dados do Amazon S3 para o OSS

Utilize o Alibaba Cloud Data Online Migration para transferir os dados do Amazon S3 para o OSS.

Etapa 4: Importar dados do OSS para o AnalyticDB for PostgreSQL

Importante

Antes de executar este comando, envie um ticket para solicitar permissões de superusuário na sua instância do AnalyticDB for PostgreSQL.

Execute o comando a seguir para importar os dados do OSS para o AnalyticDB for PostgreSQL. Use o arquivo succeed_transfer_tables_{timestamp}.txt gerado na Etapa 2 como source para o 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

Substitua os valores dos parâmetros pelos seus valores reais.

Parâmetro

Descrição

-d

Tipo de banco de dados. Defina como adbpg.

-h

Endpoint da instância do AnalyticDB for PostgreSQL. Obtenha o endpoint público no console do AnalyticDB for PostgreSQL.

-p

Número da porta. Defina como 5432.

-U

Nome da conta inicial da instância do AnalyticDB for PostgreSQL.

-w

Senha da conta inicial.

-o

Armazenamento em nuvem de source. Defina como oss.

-e

Endpoint do bucket do OSS.

-i

AccessKey ID usado para acessar o OSS.

-k

AccessKey secret usado para acessar o OSS.

-b

Nome do bucket do OSS.

--root-dir

Diretório raiz do OSS.

--format

Formato de dados a importar. Use o mesmo formato especificado na Etapa 2 (padrão: parquet).

--jobs

Número de tarefas de importação paralelas.

-f

Arquivo contendo os nomes das tabelas a importar. Cada linha deve conter um nome de tabela no formato database.schema.table. Na maioria dos casos, utilize o arquivo succeed_transfer_tables_{timestamp}.txt gerado durante o upload na Etapa 2.

--new-name-file

(Opcional) Arquivo contendo os nomes correspondentes das tabelas do AnalyticDB for PostgreSQL. Necessário apenas se os nomes das tabelas diferirem dos nomes no Redshift. Cada linha deve conter um nome de tabela no formato database.schema.table. Os nomes das tabelas neste arquivo correspondem um a um aos do arquivo -f.

--download

Aciona a operação de baixe (importação).

Próximas etapas

Para migração manual sem a ferramenta automatizada, consulte Migrar manualmente dados de um cluster do Amazon Redshift para uma instância do AnalyticDB for PostgreSQL.