1
resposta

Erro Integração Tabela de Fato 01

Quando vou realizar a carga da Tabela de Fato 01 está apresentando a seguinte mensagem:

Inicialização do pacote SSIS "C:\Users\rafae\Desktop\BI e Data Warehouse com SQL Server e Power BI\02 - ETL com Integration Services Modelo de dados\Projetos_Visual_Studio\DatawarehouseSucos\CargaDatawarehouse\CargaFatos.dtsx". Informações: 0x4004300A em Carga Fato 001, SSIS.Pipeline: Validation phase is beginning. Informações: 0x4004300A em Carga Fato 001, SSIS.Pipeline: Validation phase is beginning. Aviso: 0x80049304 em Carga Fato 001, SSIS.Pipeline: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console. Aviso: 0x80047076 em Carga Fato 001, SSIS.Pipeline: The output column "DATA_FATO" (14) on output "Saída de Origem OLE DB" (13) and component "Carga Fato 001" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance. Informações: 0x40043006 em Carga Fato 001, SSIS.Pipeline: Prepare for Execute phase is beginning. Informações: 0x40043007 em Carga Fato 001, SSIS.Pipeline: Pre-Execute phase is beginning. Informações: 0x4004300C em Carga Fato 001, SSIS.Pipeline: Execute phase is beginning. Erro: 0xC0202009 em Carga Fato 001, Inserir Destino [178]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E2F. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E2F Description: "The statement has been terminated.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E2F Description: "The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Fato_001_Dim_Tempo". The conflict occurred in database "DW_SUCOS", table "dbo.Dim_Tempo", column 'Cod_Dia'.". Erro: 0xC0209029 em Carga Fato 001, Inserir Destino [178]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Inserir Destino.Entradas[Entrada de Destino OLE DB]" failed because error code 0xC020907B occurred, and the error row disposition on "Inserir Destino.Entradas[Entrada de Destino OLE DB]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure. Erro: 0xC0047022 em Carga Fato 001, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Inserir Destino" (178) failed with error code 0xC0209029 while processing input "Entrada de Destino OLE DB" (191). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. Informações: 0x40043008 em Carga Fato 001, SSIS.Pipeline: Post Execute phase is beginning. Informações: 0x4004300B em Carga Fato 001, SSIS.Pipeline: "Inserir Destino" wrote 0 rows. Informações: 0x40043009 em Carga Fato 001, SSIS.Pipeline: Cleanup phase is beginning. Falha na tarefa: Carga Fato 001 Aviso: 0x80019002 em Package1: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (3) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors. Pacote SSIS "C:\Users\rafae\Desktop\BI e Data Warehouse com SQL Server e Power BI\02 - ETL com Integration Services Modelo de dados\Projetos_Visual_Studio\DatawarehouseSucos\CargaDatawarehouse\CargaFatos.dtsx" concluído: Falha.

Podem me ajudar , por favor?

1 resposta

Oii Rafael, tudo bem?

O erro consiste no conflito de FK entre o Cod_Dia da Dim_Tempo e Cod_Dia da Fato 001. O período selecionado na Dim_Tempo não corresponde com a seleção de período na consulta :

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

Então eu sugiro que altere o ano dentro dos parâmetros da Carga Fato para o ano que foi carregado ou nos parâmetros da Dimensão Tempo carregue de 2013 a 2015.

Qualquer coisa me fala, tá bom? :)