Frage

habe ich FactTable mit 12 Lookups Dimensionstabelle zu füllen SK ist zu bekommen, davon 6 auf verschiedene Dim Tabellen und Rest 6-Lookup gleiche DimTable (Typ II) zu tun Lookup gleiche natürlichen Schlüssel.

Beispiel:

PrimeObjectID => Lookup DimObject.ObjectID => get ObjectSK

und bekommen andere Spalten, die tun gleiche

OtherObjectID1 => Lookup DimObject.ObjectID => get ObjectSK

OtherObjectID2 => Lookup DimObject.ObjectID => get ObjectSK

OtherObjectID3 => Lookup DimObject.ObjectID => get ObjectSK

OtherObjectID4 => Lookup DimObject.ObjectID => get ObjectSK

OtherObjectID5 => Lookup DimObject.ObjectID => get ObjectSK

für solche Mehrfach Lookup, wie in meinem SSIS-Paket gehen soll.

jetzt ist mit Lookup / UnionAll foreach-Lookup. Gibt es einen besseren Weg, um dies.

War es hilfreich?

Lösung

Ich gehe davon aus, was Sie tun eine Lookup ist, mit umgeleiteten Fehler zu einer abgeleiteten Spalte Standardwerte für die gescheiterten Lookups, gefolgt von einer Vereinigung aller für jeden der Nachschlag / abgeleiteten Spaltenwerte. Dieses Muster ist ziemlich verbreitet und ich benutze es in frühen Stadien, um Hilfe zu debuggen. Doch alle da eine Vereinigung ist eine teilweise Blockierung Komponente (dh die Union All erstellt einen neuen Puffer, wenn er ausgeführt wird, aber dann übergibt Daten durch, sobald es darum geht, in) in SSIS dieser wird die Gesamteffizienz des Pakets aufgrund der Abnahme Overhead von neuen Puffer in Ihrem Datenfluss zu schaffen. Normalerweise werde ich die Serie von Lookups Code auf Fehler zu ignorieren und dann nach dem letzten, werde ich eine abgeleitete Spalte Komponente enthalten, die funktioniert ein für alle Spalten mit dem Standard ersetzen, die als Ziele von Lookups enthalten sind. Dies ermöglicht den effizienteste Datenfluss durch Ihren Datenfluss. Für weitere Informationen darüber, welche Datenkomponenten fließen blockieren oder halb blockieren diesen Beitrag sehen: http://sqlblog.com/blogs/jorg_klein/archive/2008/02/12/ssis-lookup-transformation-is-case-sensitive.aspx

Andere Tipps

Ich verstehe nicht, warum Sie tun, 2-Lookups pro Dimension.

Typischerweise verarbeitet wir alle Dimensionen erste (mit der Komponente TableDifference herzuleiten / laufen die Dimensionen).

Dann wurde die Faktentabelle geladen, auf jeder Dimension einen Nachschlag zu tun (in Serie), um die Geschäftsschlüssel mit dem Ersatzschlüssel zu finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top