2011-01-10 13 views
2

Ich habe ein Paket, in dem ich eine flache Datei in eine Staging-Tabelle laden muss, und dann ein Upsert auf eine Produktionstabelle durchführen. Eigentlich muss dies mehrmals für verschiedene Dateien mit unterschiedlichen Layouts passieren. Wir reden also von 15-20 Staging-Tischen.SSIS Staging-Tabelle - ok, um jedes Mal neu zu erstellen?

Ich könnte jede dieser Staging-Tabellen als eine permanente Tabelle in der Datenbank erstellen. Aber da ist ein Teil von mir, der gerne mein Schema sauber hält, also hatte ich die Idee, das Paket mit einer create table-Anweisung am Anfang und einer drop-table am Ende zu bookgen.

Was ist der Nachteil oder die Kosten, dies zu tun?

Antwort

1

Ein Problem, das Sie planen müssen, sind Fehler. Wenn Sie die Tabelle zu Beginn der Paketausführung erstellen und das Paket fehlschlägt, bevor es die Aufgabe für die Sprungtabelle erreicht, verlassen Sie eine Staging-Tabelle in der Datenbank.

Ich habe diesen Ansatz bereits verwendet und festgestellt, dass es nützlich war, einen Wartungsjob zu erstellen, der regelmäßig Tabellen bereinigt. In meinem Fall habe ich Tabellen mit eindeutigen Namen erstellt. Wenn Sie eine Tabelle mit demselben Namen erneut erstellen, müssen Sie den Fall planen, wenn die Tabelle bereits existiert.

Wenn Sie keine permanente Staging-Tabelle haben, verlieren Sie Informationen (Daten in der Staging-Tabelle), die bei der Problemlösung hilfreich sein können.

Sie könnten eine separate Datenbank in Erwägung ziehen, die alle Ihre Staging-Tabellen enthält. Zu Beginn eines Pakets kann eine Aufgabe die Zwischenspeichertabelle vorbereiten, indem sie die Informationen aus der vorherigen Ausführung löscht. Dann lädt das Paket die Daten für den aktuellen Lauf.

1

Eine temporäre Staging-Tabelle muss erstellt werden, die ddl_admin- oder db_owner-Rechte enthält.

Permanent Tabellen benötigen Standard CRUD Rechte (mit Ausnahme von TRUNCATE TABLE, wenn Sie es verwenden)

Ansonsten, wie pro Antwort Bobs

0

zusammen mit Bobs Antwort gehen, in einigen meiner ssis Flat-File-Source-Pakete Ich habe Staging-Tabellen verwendet. Nach einer erfolgreichen Transformation und dem Laden bereinigt das Paket die Bereitstellung, indem die Daten in das Archiv verschoben werden. Ein Vorteil der Archivierungsdaten besteht darin, dass Sie sehen können, wie Ihr Extraktpaket die Daten manipuliert hat (wenn Sie Daten im Extrakt manipulieren). Eine Konsequenz ist, dass Sie bereits eine Kopie der Flat-Datei gespeichert haben, so dass die Archivierung Ihrer Staging-Tabelle überflüssig wäre.

Verwandte Themen