Solução de problemas de carregamentos de dados em massa¶
Este tópico descreve uma abordagem metódica para a solução de problemas com carregamentos de dados em massa.
Neste tópico:
Falhas no carregamento de dados¶
Etapa 1: visualizar o histórico de COPY da tabela¶
Consulte o histórico de atividade de carregamento para obter uma tabela. Para obter mais informações, consulte COPY_HISTORY. A coluna STATUS
indica se um determinado conjunto de arquivos foi carregado, parcialmente carregado, ou não foi carregado. A coluna FIRST_ERROR_MESSAGE
apresenta uma razão quando uma tentativa é parcialmente carregada ou quando não há carregamento.
Observe que se um conjunto de arquivos tiver vários problemas, a coluna FIRST_ERROR_MESSAGE
indica apenas o primeiro erro encontrado. Para ver todos os erros nos arquivos, consulte Etapa 2: Validar o carregamento de dados para instruções.
Etapa 2: validar o carregamento de dados¶
A opção de cópia VALIDATION_MODE instrui uma instrução COPY para validar os dados a serem carregados e retornar resultados com base na opção de validação especificada. Nenhum dado é carregado quando essa opção de cópia é especificada. Para obter mais informações sobre a opção de cópia, consulte COPY INTO <tabela>.
Execute uma instrução COPY com a opção de cópia VALIDATION_MODE definida como RETURN_ALL_ERRORS
. Na instrução, faça referência ao conjunto de arquivos que você tentou carregar.
O exemplo a seguir valida um conjunto de arquivos que contém erros. Para facilitar a análise dos erros, uma instrução COPY INTO <local> descarrega os registros problemáticos em um arquivo de texto para que eles possam ser analisados e corrigidos nos arquivos de dados originais. A instrução consulta a função de tabela RESULT_SCAN para recuperar os registros. Observe que as instruções nesta seção devem ser executadas sucessivamente para recuperar os registros aplicáveis usando a função LAST_QUERY_ID.
COPY INTO mytable
FROM @mystage/myfile.csv.gz
VALIDATION_MODE=RETURN_ALL_ERRORS;
SET qid=last_query_id();
COPY INTO @mystage/errors/load_errors.txt FROM (SELECT rejected_record FROM TABLE(result_scan($qid)));
Outros problemas¶
Erro: Integration {0}
associated with the stage {1}
cannot be found¶
003139=SQL compilation error:\nIntegration ''{0}'' associated with the stage ''{1}'' cannot be found.
Esse erro pode ocorrer quando a associação entre o estágio externo e a integração de armazenamento vinculada ao estágio foi interrompida. Isso acontece quando o objeto de integração de armazenamento foi recriado (usando CREATE OR REPLACE STORAGE INTEGRATION). Um estágio se liga a uma integração de armazenamento usando uma ID oculta em vez do nome da integração de armazenamento. Nos bastidores, a sintaxe CREATE OR REPLACE descarta o objeto e o recria com uma ID oculta diferente.
Se você precisar recriar uma integração de armazenamento após ter sido vinculada a um ou mais estágios, será necessário restabelecer a associação entre cada estágio e a integração de armazenamento executando ALTER STAGE stage_name
SET STORAGE_INTEGRATION = storage_integration_name
, em que:
stage_name
é o nome do estágio.storage_integration_name
é o nome da integração de armazenamento.
Tempos de carregamento inseridos usando CURRENT_TIMESTAMP antes dos valores LOAD_TIME na exibição COPY_HISTORY¶
Os criadores de tabelas podem adicionar uma coluna de carimbo de data/hora que insere o carimbo de data/hora atual como o valor padrão à medida que os registros são carregados em uma tabela. A intenção é capturar o tempo em que cada registro foi carregado na tabela; entretanto, os carimbos de data/hora são anteriores aos valores da coluna LOAD_TIME retornados pela função COPY_HISTORY (Information Schema) ou a exibição COPY_HISTORY (Account Usage). O motivo é que CURRENT_TIMESTAMP é avaliado quando a operação de carregamento é compilada em serviços de nuvem e não quando o registro é inserido na tabela (ou seja, quando a transação para a operação de carregamento é confirmada).
Recomenda-se incluir e consultar METADATA$START_SCAN_TIME em vez disso, o que fornece uma representação mais precisa do carregamento de registros.