1
resposta

Erro ao Carregar a Tabela Fato001

Pessoal, boa noite.

Estou tentando carregar a Tabela de Fato001 e aparece o erro abaixo. Conseguem me ajudar?

Inicialização do pacote SSIS "C:\PROJETOS\DatawarehouseSucoss\CargaDatawarehouse\CargaFatos.dtsx". Informações: 0x4004300A em Carga Fato001, SSIS.Pipeline: A fase de validação está começando. Informações: 0x4004300A em Carga Fato001, SSIS.Pipeline: A fase de validação está começando. Aviso: 0x80049304 em Carga Fato001, SSIS.Pipeline: Aviso: não foi possível abrir a memória global compartilhada para comunicação com a DLL de desempenho; os contadores de desempenho de fluxo de dados não estão disponíveis. Para resolver, execute este pacote como administrador ou no console do sistema. Aviso: 0x80047076 em Carga Fato001, SSIS.Pipeline: A coluna de saída "DATA_FATO" (179) na saída "Saída de Origem OLE DB" (178) e componente "Origem OLE DB" (167) não é usada subsequentemente na tarefa Fluxo de Dados. A remoção dessa coluna de saída não utilizada pode melhorar o desempenho da tarefa Fluxo de Dados. Informações: 0x40043006 em Carga Fato001, SSIS.Pipeline: A fase de Preparação para Execução está começando. Informações: 0x40043007 em Carga Fato001, SSIS.Pipeline: A fase de Pré-execução está começando. Informações: 0x4004300C em Carga Fato001, SSIS.Pipeline: A fase de Execução está começando. Erro: 0xC0202009 em Carga Fato001, Inserir Destino [130]: Código de Erro SSIS DTS_E_OLEDBERROR. Erro OLE DB. Código de erro: 0x80040E2F. Um registro OLE DB está disponível. Origem: "Microsoft SQL Server Native Client 11.0" Resultado: 0x80040E2F Descrição: "A instrução foi finalizada.". Um registro OLE DB está disponível. Origem: "Microsoft SQL Server Native Client 11.0" Resultado: 0x80040E2F Descrição: "A instrução INSERT conflitou com a restrição do FOREIGN KEY "FK_Fato_001_Dim_Dia". O conflito ocorreu no banco de dados "DW_SUCOS", tabela "dbo.Dim_Tempo", column 'Cod_Dia'.". Erro: 0xC0209029 em Carga Fato001, Inserir Destino [130]: Código de Erro SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. Falha de "Inserir Destino.Entradas[Entrada de Destino OLE DB]" devido ao código de erro 0xC020907B e a disposição da linha de erro em "Inserir Destino.Entradas[Entrada de Destino OLE DB]" especifica falha no erro. Ocorreu um erro no objeto especificado do componente especificado. Mensagens de erro podem ter sido postadas antes com mais informações sobre a falha. Erro: 0xC0047022 em Carga Fato001, SSIS.Pipeline: Código de Erro SSIS DTS_E_PROCESSINPUTFAILED. Falha do método ProcessInput no componente "Inserir Destino" (130) com o código de erro 0xC0209029 durante o processamento da entrada "Entrada de Destino OLE DB" (143). O componente identificado retornou um erro do método ProcessInput. Esse erro é específico do componente, mas é fatal e fará com que a execução da tarefa de Fluxo de Dados seja interrompida. Mensagens de erro podem ter sido postadas antes dessa com mais informações sobre a falha. Informações: 0x40043008 em Carga Fato001, SSIS.Pipeline: A fase Pós-execução está começando. Informações: 0x4004300B em Carga Fato001, SSIS.Pipeline: "Inserir Destino" gravou 0 linhas. Informações: 0x40043009 em Carga Fato001, SSIS.Pipeline: A fase de limpeza está começando. Falha na tarefa: Carga Fato001 Aviso: 0x80019002 em CargaFatos: Código de Aviso SSIS DTS_W_MAXIMUMERRORCOUNTREACHED. O método Execution foi bem-sucedido, mas o número de erros aumentou (3) e alcançou o máximo permitido (1); resultando em falha. Isso ocorre quando o número de erros alcança o número especificado em MaximumErrorCount. Altere MaximumErrorCount ou corrija os erros. Pacote SSIS "C:\PROJETOS\DatawarehouseSucoss\CargaDatawarehouse\CargaFatos.dtsx" concluído: Falha.

1 resposta

Olá, Maharishi, tudo bem?

Como apontamos na atividade logo na sequência da aula em que carregamos a Tabela Fato_001, é possível que o erro possa ter ocorrido por carregarmos datas na Dimensão Tempo que não estão dentro do período das datas da Tab FATO_001.

No exemplo da aula da carga da Dimensão Tempo, o instrutor colocou como parâmetros na consulta o seguinte período:

Ano_Inicial = 2013
Ano_Final  = 2013
Mes_Inicial = 7
Mes_Final = 12

E, no exemplo da Tabela FATO_001, fizemos uma consulta pelo Comando SQL do período de janeiro de 2014 (01/2014 a 01/2014). Para corrigir esse problema podemos seguir 2 caminhos.

  • Ou mudamos os parâmetros do Dim Tempo para conter o período que desejamos puxar na tabela FATO_001, por exemplo:
Parâmetros da Dimensão Tempo:
Ano_Inicial = 2013
Ano_Final  = 2014
Mes_Inicial = 7
Mes_Final = 12

 

  • Ou mudamos os parâmetros da consulta da tabela FATO_001 para o período que estipulamos na Dimensão Tempo, por exemplo:
Consulta via comando do SQL ou Parâmetros da Carga Fato 001:
Ano_Inicial = 2013
Ano_Final  = 2013
Mes_Inicial = 10
Mes_Final = 12

Em qualquer uma das formas precisamos estar atentos ao período de consulta de nossos dados para que possamos executar o código de consulta e realizar a carga com sucesso.

Espero ter ajudado e qualquer dúvida é só chamar!

Forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!