Frage

Wir evaluieren SSIS, um zu sehen, ob es für ein neues Projekt geeignet sein wird, die oben kommt. Eines der Verfahren wird eine flache Datei mit begrenzten Datensätzen verarbeiten müssen. Die Datei wird Aufträge enthalten. Es gibt eine Kopfzeile, ein (optional) Versandadresszeile und eine oder mehr Detaillinien. Jede Zeile der Felder begrenzt sind, sind aber nicht das gleiche Format.

Ich lese diese Antwort:

SSIS Transaktionsdaten (verschiedene Datensatztypen, eine Datei)

Und ich kann die Daten teilen Sie die Conditional Split Aufgabe mit mehreren Ausgängen zu erzeugen, aber ich bin nicht sicher, wie von dort fortzufahren. Ich habe zwei Fragen, die ich lösen müssen:

  1. Der Auftragskopf eingefügt erster, da die Adresse und Details vor der Adresse und Einzelheiten den Auftragsdatensatz werden soll, verweisen, so dass ich glaube, ich brauche zuerst diese Ausgabe zu verarbeiten, aber ich bin nicht sicher, in SSIS wie dass Zweig der Conditional Split Aufgabe zu machen verarbeitet werden vor die anderen Zweige. Im Idealfall würde Ich mag den Auftragskopf verarbeiten und dann in einer Benutzervariablen des Auftrags-ID zu speichern, so dass, wenn die Details der Verarbeitung, ich diese Variable verweisen kann.

  2. Es gibt mehrere Aufträge in der Datei sein, so Aufspalten es komplexer ist.

Ich kann immer eine Anwendung in C # schreibe, wird Vorprozess die Datei oder die Datei in eine Staging-Tabelle lesen, aber ich bin nicht sicher, ob ich diesen Ansatz mag.

Kann jemand, der durch diesen Prozess teilen einige Erkenntnisse darüber, wie sie behandelt es war?

Danke,

Chris

War es hilfreich?

Lösung

Nach der Trennung deponiert jede Art von Rekord in seine eigene Inszenierung Tisch - oder in ein ssis Rohdaten Ziel, die Zwischenschritte wie dies schneller und gut ist. Dann laden Sie alle Header in ihre endgültige Tabelle und gehen ohne Referenzfehler.

Ich gehe davon aus den Detaildatensätze haben eine headerID in ihnen? Das sollte einfach, mit Ihrer zweiten Frage machen zu tun. Wenn nicht, lassen Sie es uns wissen.

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