Domanda

Ho avuto modo di compilare FactTable con 12 ricerche di tabella della dimensione per ottenere SK di, di cui 6 a diverse tabelle Dim e riposare 6 sono di ricerca per lo stesso DimTable (tipo II) facendo ricerca per la stessa chiave naturale.

Esempio:

PrimeObjectID => di ricerca per DimObject.ObjectID => get ObjectSK

e ottenuto altre colonne che fa lo stesso

OtherObjectID1 => di ricerca per DimObject.ObjectID => get ObjectSK

OtherObjectID2 => di ricerca per DimObject.ObjectID => get ObjectSK

OtherObjectID3 => di ricerca per DimObject.ObjectID => get ObjectSK

OtherObjectID4 => di ricerca per DimObject.ObjectID => get ObjectSK

OtherObjectID5 => di ricerca per DimObject.ObjectID => get ObjectSK

per tale ricerca multipla come dovrebbe andare nel mio pacchetto SSIS.

per ora sto utilizzando la ricerca / unionall foreach ricerca. C'è un modo migliore per questo.

È stato utile?

Soluzione

Suppongo quello che stai facendo è una ricerca, con errori reindirizzati ad una colonna derivata per impostare i valori predefiniti per le ricerche fallite, seguito da un sindacato tutti per ciascuno dei valori colonna di ricerca / derivati. Questo modello è abbastanza comune e lo uso nelle fasi iniziali di aiuto di debug. Tuttavia, dal momento che un sindacato tutto è una componente bloccando parzialmente (cioè l'Unione Tutto crea un nuovo buffer quando si esegue, ma poi passa i dati attraverso non appena viene in) in SSIS questo diminuirà l'efficienza complessiva del pacchetto a causa della sovraccarico di creare nuovi buffer nel flusso di dati. Di solito, io codificare la serie di ricerche di ignorare gli errori e poi, dopo l'ultimo, I comprenderà una componente colonna derivata che fa una sostituzione con l'impostazione predefinita per tutte le colonne che sono inclusi come bersagli di ricerche. Questo permette il flusso più efficiente dei dati attraverso il vostro flusso di dati. Per ulteriori informazioni su cui scorrono i dati componenti stanno bloccando o semi-blocco vedi questo post: http://sqlblog.com/blogs/jorg_klein/archive/2008/02/12/ssis-lookup-transformation-is-case-sensitive.aspx

Altri suggerimenti

Non capisco perché si sta facendo 2 ricerche per dimensione.

Tipicamente abbiamo elaborato tutte le dimensioni prima (utilizzando il componente TableDifference dedurre / scadere le dimensioni).

Poi la tabella dei fatti è stato caricato, effettuando una ricerca su ogni dimensione (in serie) utilizzando i tasti di business per trovare le chiavi surrogate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top