Por que o AWS DMS não migrou dados do meu endpoint de origem do Amazon S3 mesmo que minha tarefa do AWS DMS tenha sido bem-sucedida?
Minha tarefa do AWS Database Migration Service (AWS DMS) foi bem-sucedida, mas não migra dados do meu endpoint de origem do Amazon Simple Storage Service (Amazon S3). Quero solucionar esse problema.
Resolução
Há vários motivos pelos quais uma tarefa do AWS DMS é bem-sucedida, mas não migra dados. Complete a resolução para seu caso de uso.
O status da tarefa é “Envio concluído, replicação em andamento”, mas a tarefa do AWS DMS não está enviando dados no destino
Confirme se o caminho do S3 que você definiu para o endpoint de origem está correto. No log de replicação, identifique as entradas que mostram que o AWS DMS não consegue encontrar os arquivos de dados no caminho do S3.
Exemplo de entrada de log de replicação:
[SOURCE_UNLOAD ]I: Unload finished for table 'dms_schema'.'dms_table' (Id = 1). 0 rows sent. (streamcomponent.c:3396) [TARGET_LOAD ]I: Load finished for table 'dms_schema'.'dms_table' (Id = 1). 0 rows received. 0 rows skipped. Volume transferred 0. (streamcomponent.c:3667)
O Amazon S3 armazena o arquivo de dados para a fase de envio completo (data.csv) e o arquivo de dados para alterações contínuas (change_data.csv) no seguinte formato:
- S3-bucket/dms-folder/sub-folder/dms_schema/dms_table/data.csv
- S3-bucket/dms-folder/sub-folder/dms-cdc-path/dms-cdc-sub-path/change_data.csv
Para encontrar os arquivos de dados, o endpoint de origem do S3 usa a pasta do bucket, o caminho da captura de dados de alteração (CDC) e os campos da estrutura da tabela.
No exemplo anterior de caminhos de arquivo, dms-folder/subfolder é a pasta do bucket. O caminho de CDC que você insere ao criar o endpoint de origem do S3 é dms-cdc-path/dms-cdc-sub-path.
Exemplo de estrutura de tabela que usa o caminho do arquivo de exemplo:
{ "TableCount": 1, "Tables": [ { "TableColumns": […], "TableColumnsTotal": "1", "TableName": "dms_table", "TableOwner": "dms_schema", "TablePath": "dms_schema/dms_table/" } ] }
Importante: Não inclua o caminho de pasta do bucket dms-folder/subfolder no TablePath da estrutura da tabela.
Quando você especifica a configuração do Endpoint, a pasta do bucket é opcional. Se você especificar uma pasta do bucket, o caminho de CDC e TablePath deverão estar na mesma pasta no Amazon S3. Se você não especificar a pasta do bucket, o caminho TablePath e de CDC estarão diretamente abaixo do bucket do S3.
A pasta do bucket para o endpoint de origem do S3 pode ser qualquer diretório de pasta entre o nome do bucket e o nome do esquema da estrutura da tabela. No exemplo anterior de estrutura de tabela, o diretório da pasta é dms-schema. Se você não tiver uma hierarquia de pastas no bucket, mantenha o campo em branco.
Observação: As pastas do bucket e os caminhos de CDC podem ser pastas individuais ou podem incluir subpastas, como dms-folder ou dms-folder/sub-folder.
Se sua configuração de tarefa do DMS usar um endpoint de origem do S3, você deverá incluir o esquema e a tabela no mapeamento da tabela. O esquema e a tabela são necessários para migrar dados com êxito para o destino. Para obter mais informações, consulte Definição de tabelas externas para o Amazon S3 como origem para o AWS DMS.
Se você usar Soltar tabelas no destino como modo de preparação de tabela para a tarefa, o DMS criará a tabela de destino dms_schema.dms_table.
Exemplo de comando de criação de tabela de destino:
CREATE TABLE 'dms_schema'.'dms_table' (...);
Observação: Os nomes de pastas e objetos no Amazon S3 diferenciam maiúsculas de minúsculas. Use-as corretamente ao especificar os nomes de pastas e objetos no endpoint do S3.
O status da tarefa é “Envio concluído, replicação em andamento”, mas nenhuma tabela está na seção Estatísticas da tabela
Quando você usa Soltar tabelas no modo de destino, o AWS DMS pode não criar uma tabela no endpoint de destino. Um caminho incorreto do S3 ou um tipo de dados não suportado podem causar esse problema.
Confirme se o caminho do S3 para o endpoint de origem está correto. Em seguida, verifique se o endpoint do S3 é compatível com o tipo de dados.
Verifique se o filtro definido pelo mapeamento de tabelas da tarefa do DMS está causando a falta de tabelas. Certifique-se de definir a tabela necessária no mapeamento da tabela de tarefas na estrutura da tabela do endpoint de origem do S3.
O status da tarefa é “Em execução” e a tarefa do DMS criou a tabela no endpoint de destino, mas não enviou dados
Se o AWS DMS não conseguir obter os dados do caminho do S3, use o log de replicação para encontrar os erros. Para obter logs detalhados, altere o nível de log SOURCE_CAPTURE de Padrão para Depuração detalhada.
Exemplo de log:
[SOURCE_CAPTURE ]E: No response body. Response code: 403 [1001730] (transfer_client.cpp:589) [SOURCE_CAPTURE ]E: failed to download file </dms-folder/sub-folder/dms_schema/dms_table/data.csv> from bucket <dms-test> as </rdsdbdata/data/tasks/NKMBA237MEB4UFSRDF5ZAF3EZQ/bucketFolder/dms-folder/sub-folder/dms_schema/dms_table/data.csv>, status = 4 (FAILED) [1001730] (transfer_client.cpp:592)
Você recebe um erro “No response body” no log de replicação
O erro No response body ocorre quando a função do AWS Identity and Access Management (AWS IAM) para o endpoint de origem do S3 não tem as permissões corretas. Para resolver esse problema, confirme se o arquivo de dados existe no caminho do S3 que está na mensagem de erro. Em seguida, confirme se o usuário do IAM tem permissões para s3:GetObject.
Observação: Se você ativou o controle de versionamento no bucket de origem, também deverá conceder a permissão s3:GetObjectVersion.
Informações relacionadas
Vídeos relacionados


Conteúdo relevante
- feita há 9 diaslg...
- feita há um mêslg...
- feita há um mêslg...
- feita há 2 meseslg...
- feita há 9 diaslg...
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 anos