2016-07-27 23 views
0

mehrere flache Dateien dynamisch in der Natur lesen ich einen Ordner haben, die Dateien wie enthält:Wie auf einmal in SSIS

A_ddmmyyyy, b_ddmmyyyy and c_ddmmyyyy. 

ich alle diese Dateien für ein Datum lesen, müssen wieder alle diese Dateien für die nächstes Datum im selben Ordner. Außerdem variiert die Anzahl der im Ordner vorhandenen Dateien (sie können Daten für drei Tage oder fünf Daten enthalten), das Datum im Ordner bleibt jedoch gleich.

Ist es möglich?

Antwort

0

Sie können einen Foreach-Schleifencontainer erstellen. Erstellen Sie im Container einen Datenflusstask, der alle Dateien in einem bestimmten Ordner verarbeitet. Sie erstellen eine flache Dateiverbindung mit dem erforderlichen Begrenzer und eine Variable mit dem Ordnerpfad für Ihre Dateien. Erstellen Sie als letzten Schritt für Ihre Aufgaben eine Dateisystemaufgabe, um die Datei in einen verarbeiteten oder abgeschlossenen Ordner zu verschieben, damit der Hauptordner nach der Verarbeitung der Dateien leer wird.

+0

Thnx Jason, aber die Daten in jeder Datei ist anders –

+0

Also wenn Sie sagen, die Dateien müssen in der Reihenfolge verarbeitet werden, A zuerst und dann B und dann C, für ein bestimmtes Datum. Erstellen Sie einen Foreach-Schleifencontainer, der die Dateinamen in einer Tabelle ablegt, und wenden Sie dann Ihre Logik an, um die Liste zu durchlaufen, welche Dateien verarbeitet werden sollen und welche Reihenfolge (entweder über SQL oder via Sort Transformation in ssis). Dieser Container wird zuerst ausgeführt, dann der Foreach Loop Container, den ich oben erwähne. –

+0

Wenn Sie sagen, dass die Dateien basierend auf den Dateinamen in verschiedenen Tabellen verarbeitet werden müssen, gibt es eine vereinbarte Namenskonvention, so dass Sie auswählen können, welche Dateien zu welcher Tabelle gehören? Wenn dies der Fall ist, erstellen Sie einen Foreach-Schleifencontainer, der die Dateinamen in einer Tabelle ablegt und anschließend Ihre Logik anwendet, um die Liste der zu verarbeitenden Dateien in den zugehörigen Tabellen zu durchlaufen (entweder über SQL oder über Sortiertransformation in ssis). Dieser Container wird zuerst ausgeführt, dann der Foreach Loop Container, den ich oben erwähnt habe, der zweite. –

0

Dateiname spielt keine Rolle, Sie müssen sicher sein, wie viele Arten von Schemas (Anzahl der Spalten, Spaltennamen, Typen) der Dateien im Ordner vorhanden sind. Nehmen wir an, Sie haben 3 Schemata, dann müssen Sie 3 Arten von Flat-File-Verbindungen definieren. Es gibt viele Möglichkeiten, den Job zu erledigen, am einfachsten kann ich Powershell verwenden, um Dateien unterschiedlichen Schemas in verschiedene Ordner zu trennen. Sie müssen wissen, welche Dateinamen dem Schema zugeordnet sind, ob es ein Muster oder ein Geschäft gibt Regel. Sie setzen Ihre Powershell dann in eine Ausführungsprozessaufgabe, um das Skript auszuführen. Dann ist das Folgende einfach: Für jeden Ordner, in dem Sie ein Paket erstellen, befindet sich für jeden Container ein Ordner, in dem Sie den Ordner durchlaufen, um jede Datei zu laden. Oder Sie können ein Paket mit drei für jeden Schleifencontainer haben, um die Aufgabe zu erledigen.