Quando eu tento carregar um arquivo CSV no Amazon Redshift usando COPY, nada é carregado

2 minuto de leitura
0

Estou tentando carregar um arquivo CSV do Amazon Simple Storage Service (Amazon S3) no Amazon Redshift usando o comando COPY. No entanto, nada é carregado e nenhum erro é retornado, mesmo que o arquivo contenha registros. Como resolvo isso?

Resolução

COPY não carregará dados no Amazon Redshift se o arquivo CSV usar retornos de carro ("\r", "^M" ou "0x0D" em hexadecimal) como terminador de linha. Como o Amazon Redshift não reconhece retornos de carro como terminadores de linha, o arquivo é analisado como uma linha. Quando o comando COPY tem o parâmetro IGNOREHEADER definido como um número diferente de zero, o Amazon Redshift ignora a primeira linha e, portanto, o arquivo inteiro. Nenhum erro de carregamento é retornado porque a operação foi tecnicamente bem-sucedida.

Para resolver esse problema, substitua os retornos de carro por CRLF (“\r\n” ou "0x0D0A" em hexadecimal) ou LF (“\n” ou “0x0A” em hexadecimal).. Carregue o arquivo modificado no bucket do S3 e tente o comando COPY novamente.

<b>Dicas adicionais sobre solução de problemas</b>

  • Verifique se você está enfrentando uma contenção de recursos de bloqueio ao usar o comando COPY. Para mais informações, consulte Como detectar e liberar bloqueios no Amazon Redshift?
  • Confirme se há contenção no gerenciador de workloads (WLM). Você pode usar a consulta STV_WLM_QUERY_STATE para confirmar se o comando COPY está tentando adquirir um slot do WLM.
  • Verifique se a transação COPY está sendo revertida. Para confirmar a reversão, use as visualizações SVL_STATEMENTTEXT e STL_UNDONE.

Informações relacionadas

Fontes de dados

Exemplos de COPY

STV_WLM_QUERY_STATE

AWS OFICIAL
AWS OFICIALAtualizada há um ano