Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
11
respostas

Erro no insert Carga Fato 001

Seguindo o que consta na aula me retorna esse erro após compilar e iniciar o clicar em iniciar

Inicialização do pacote SSIS "D:\Estudo\BI\DatawarehouseSucos\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" (14) na saída "Saída de Origem OLE DB" (13) e componente "Carga Fato001" (2) 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 [178]: 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_Organizacional". O conflito ocorreu no banco de dados "DW_SUCOS", tabela "dbo.Dim_Organizacional", column 'Cod_Filho'.".
Erro: 0xC0209029 em Carga Fato001, Inserir Destino [178]: 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" (178) com o código de erro 0xC0209029 durante o processamento da entrada "Entrada de Destino OLE DB" (191). 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 Package1: 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 "D:\Estudo\BI\DatawarehouseSucos\CargaDatawarehouse\CargaFatos.dtsx" concluído: Falha.
11 respostas

Oii Lucas, tudo bom? Espero que sim

Erro: 0xC0202009 em Carga Fato 001, Inserir Destino [178]: Código de Erro SSIS DTS_E_OLEDBERROR. Erro OLE DB. Código de erro: 0x80040E2F. Descrição: "A instrução INSERT conflitou com a restrição do FOREIGN KEY "FK_Fato_001_Dim_Organizacional". O conflito ocorreu no banco de dados "DW_SUCOS", tabela "dbo.Dim_Organizacional", column 'Cod_Filho'.".

Esses erros apontam para tentativas de inserir dados em uma tabela, que não existem na tabela de origem. Verifique se na carga da dimensão tempo, o (ano/mês/inicial/final) corresponde aos parâmetros estabelecidos para a Fato 001. Recomendo também fazer consultas por fora vendo os valores que está tentando entrar na fato e os que estão já criados na dimensão.

Espero que ajude. Qualquer coisa me retorna aqui, tá bom? :)

OI Maria, tudo bom? agradeço o retorno rápido, mas então a dimensão tempo a principio está ok, segui conforme consta na aula, tentei recompilar pelo visual studio e deu certo, mas a Fato001 não foi com sucesso. A consulta que foi disponibilizada me mostra os dados sem problemas, será que eu preciso alterar os parâmetros da dimensão tempo?

Oi Lucas,

A dimensão tempo está carregada até em qual ano? E nos seus parâmetros de datas da Fato001 está como?

Dá uma olhada na tabela Dim_Organizacional, se os dados lá existem.

Me avisa qualquer coisa :)

Na dimensão tempo eu coloquei ano inicial e final 2014, mes inicio 1 e final 12 A query da FATO001 está como consta no txt que foi postado,

SELECT * FROM TAB_FATO001 WHERE YEAR(DATA_FATO) >= '2014' AND MONTH(DATA_FATO) >= '1' AND YEAR(DATA_FATO) <= '2014' AND MONTH(DATA_FATO) <= '1'`

Agora a tabela dim_organizacional não tem campo de data realmente As colunas que temos ali são

      ,[Desc_Filho]
      ,[Cod_Pai]
      ,[Esquerda]
      ,[Direita]
      ,[Nivel]

Mais Tarde eu vou da uma olhada novamente na aula da dimensão tempo pra ver se eu não deixei passar alguma coisa, mas tentei rodar novamente e sem sucesso.

Lucas,

A sua dim_organizacional não tem o campo Cod_Filho?

Tem, não foi no meu colar

Lucas,

Seguinte, na sua dimensão organizacional, realmente não tem coluna de datas, mas os dados estão inseridos certinho ali?

O que consta no sql server é isso aqui

https://imgur.com/a/dvwdaTo

E é a mesma coisa na tabela que o visual studio mostra

se eu te encaminhar meu projeto de alguma forma isso facilita? se sim pode me falar como e por onde que eu disponibilizo

solução!

Lucas,

Pelo que vi, a rotina esq_dir não foi feita, é a única diferença com a minha tabela e talvez possa ser por isso que está impedindo a inserção na Fato001.

Veja a diferença de minha dim_organizacional para a sua:

Imgur

Volte nessa aula e veja se o procedimento foi feito.

Me avisa qualquer coisa, tá bom?

Perfeito Maria, vou retornar a essa aula e te retorno, muito obrigado