STL_LOADERROR_DETAIL
Exibe um log de erros de análise de dados que ocorreram no uso do comando COPY para carregar tabelas. Para poupar espaço em disco, um máximo 20 erros por fatia de nó é registrado para cada operação de carga.
Um erro de análise ocorre quando o Amazon Redshift não consegue analisar um campo em uma linha de dados ao carregá-lo em uma tabela. Por exemplo, se uma coluna da tabela está esperando um tipo de dados inteiro e o arquivo de dados contém uma string de caracteres alfabéticos no campo, isso causa um erro de análise.
Consulte a tabela STL_LOADERROR_DETAIL para obter detalhes adicionais, como a linha e a coluna exatas de um erro de análise, depois de consultar a tabela STL_LOAD_ERRORS para obter as informações gerais sobre o erro.
A visualização STL_LOADERROR_DETAIL contém todas as colunas de dados, incluindo e antes da coluna onde ocorreu o erro de análise. Use o campo VALUE para visualizar os valores dos dados que foram analisados nesta coluna, incluindo as colunas que foram analisadas corretamente até o erro ocorrer.
Esta visualização é visível para todos os usuários. Os superusuários podem ver todas as linhas; usuários regulares podem ver somente seus próprios dados. Para ter mais informações, consulte Visibilidade de dados em tabelas e visualizações de sistema.
nota
STL_LOADERROR_DETAIL só contém consultas executadas em clusters principais. Ele não contém consultas executadas em clusters de escalabilidade de simultaneidade. Para acessar consultas executadas em clusters de escalabilidade principais e de simultaneidade, é recomendável usar a exibição de monitoramento SYS SYS_LOAD_ERROR_DETAIL. Os dados na exibição de monitoramento SYS são formatados para serem mais fáceis de usar e compreender.
Colunas da tabela
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
userid | inteiro | O ID do usuário que gerou a entrada. |
slice | inteiro | A fatia onde o erro ocorreu. |
sessão | inteiro | O ID de sessão para a sessão executando o carregamento. |
consulta | inteiro | ID da consulta. A coluna de consulta pode ser usada para unir outras tabelas e exibições do sistema. |
filename | character(256) | O caminho completo do arquivo de entrada para a carga. |
line_number | bigint | O número da linha no arquivo de carga com o erro. |
field | inteiro | O campo com erro. |
colname | character(1024) | Nome da coluna. |
valor | character(1024) | O valor do dado analisado no campo. (Ele pode estar truncado). Os caracteres multibyte nos dados de carga são substituídos por um ponto. |
is_null | inteiro | Indica se o valor analisado é nulo. |
tipo | character(10) | O tipo de dados do campo. |
col_length | character(10) | O tamanho da coluna, se aplicável. Este campo é preenchido quando o tipo de dados tem um limite de tamanho. Por exemplo, uma coluna com um tipo de dados "character(3)" conterá o valor "3". |
Consulta de exemplo
A consulta a seguir une as tabelas STL_LOAD_ERRORS e STL_LOADERROR_DETAIL para exibir os detalhes de um erro de análise ocorrido durante o carregamento da tabela EVENT, cujo ID de tabela é 100133:
select d.query, d.line_number, d.value, le.raw_line, le.err_reason from stl_loaderror_detail d, stl_load_errors le where d.query = le.query and tbl = 100133;
O exemplo de saída a seguir mostra as colunas carregadas com êxito, incluindo a coluna com o erro. Neste exemplo, duas colunas foram carregadas com êxito antes de ocorrer o erro de análise na terceira coluna, onde uma string de caracteres foi analisada incorretamente para um campo que esperava um número inteiro. Como o campo esperava um inteiro, ele analisou a string "aaa", que é um dado não inicializado, como um caractere nulo e gerou um erro de análise. A saída mostra o valor bruto, o valor analisado e motivo do erro:
query | line_number | value | raw_line | err_reason -------+-------------+-------+----------+---------------- 4 | 3 | 1201 | 1201 | Invalid digit 4 | 3 | 126 | 126 | Invalid digit 4 | 3 | | aaa | Invalid digit (3 rows)
Quando uma consulta une as tabelas STL_LOAD_ERRORS e STL_LOADERROR_DETAIL, ela exibe um motivo de erro para cada coluna da linha de dados, o que significa simplesmente que ocorreu um erro nessa linha. A última linha dos resultados é a coluna onde o erro de análise ocorreu.