Kopieren neuer und geänderter Dateien nach „LastModifiedDate“ mit Azure Data Factory
GILT FÜR: Azure Data Factory Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
In diesem Artikel wird eine Lösungsvorlage beschrieben, die Sie verwenden können, um neue und geänderte Dateien nur nach „LastModifiedDate“ aus einem dateibasierten Speicher in einen Zielspeicher zu kopieren.
Informationen zu dieser Lösungsvorlage
Diese Vorlage wählt die neuen und geänderten Dateien nur nach deren LastModifiedDate-Attributen aus und kopiert die ausgewählten Dateien anschließend von der Datenquelle zum Zieldatenspeicher.
Die Vorlage enthält eine Aktivität:
- Copy (Kopieren). Mit dieser Aktivität können Sie neue und geänderte Dateien nur nach „LastModifiedDate“ von einem Dateispeicher zu einem Zielspeicher kopieren.
Die Vorlage definiert sechs Parameter:
- FolderPath_Source stellt den Ordnerpfad dar, über den Sie die Dateien vom Quellspeicher lesen können. Sie müssen den Standardwert durch Ihren eigenen Ordnerpfad ersetzen.
- Directory_Source stellt den Unterordnerpfad dar, über den Sie die Dateien vom Quellspeicher lesen können. Sie müssen den Standardwert durch Ihren eigenen Unterordnerpfad ersetzen.
- FolderPath_Destination stellt den Ordnerpfad des Zielspeichers dar, in den Sie die Dateien kopieren möchten. Sie müssen den Standardwert durch Ihren eigenen Ordnerpfad ersetzen.
- Directory_Destination stellt den Unterordnerpfad des Zielspeichers dar, in den Sie die Dateien kopieren möchten. Sie müssen den Standardwert durch Ihren eigenen Unterordnerpfad ersetzen.
- LastModified_From wird verwendet, um die Dateien auszuwählen, deren LastModifiedDate-Attribut größer oder gleich diesem datetime-Wert ist. Wenn Sie nur die neuen Dateien auswählen möchten, die im letzten Vorgang nicht kopiert wurden, kann dieser datetime-Wert dem Zeitpunkt entsprechen, zu dem die Pipeline das letzte Mal ausgelöst wurde. Sie können den Standardwert „2019-02-01T00:00:00Z“ durch den erwarteten LastModifiedDate-Wert in der UTC-Zeitzone ersetzen.
- LastModified_To wird verwendet, um die Dateien auszuwählen, deren LastModifiedDate-Attribut kleiner als dieser datetime-Wert ist. Um nur die neuen Dateien auszuwählen, die in früheren Ausführungsvorgängen nicht kopiert wurden, kann dieser datetime-Wert der aktuellen Uhrzeit entsprechen. Sie können den Standardwert „2019-02-01T00:00:00Z“ durch den erwarteten LastModifiedDate-Wert in der UTC-Zeitzone ersetzen.
So verwenden Sie diese Lösungsvorlage
Navigieren Sie auf der Registerkarte Autor in Azure Data Factory zum Vorlagenkatalog, und wählen Sie dann die Schaltfläche +, Pipeline und schließlich Vorlagenkatalog aus.
Suchen Sie nach der Vorlage Neue Dateien nur nach LastModifiedDate kopieren, wählen Sie sie aus, und wählen Sie dann Weiter aus.
Erstellen Sie eine neue Verbindung mit Ihrem Zielspeicher. Die Dateien sollen in den Zielspeicher kopiert werden.
Erstellen Sie eine neue Verbindung mit Ihrem Quellspeicher. Aus dem Quellspeicher sollen die Dateien kopiert werden.
Klicken Sie auf Diese Vorlage verwenden.
Die Pipeline wird im Bereich angezeigt, wie im folgenden Beispiel zu sehen:
Klicken Sie auf Debuggen, geben Sie die Werte für die Parameter ein, und wählen Sie Fertig stellen aus. In der folgenden Abbildung legen wir die Parameter wie folgt fest.
- FolderPath_Source = Quellordner
- Directory_Source = Unterordner
- FolderPath_Destination = Zielordner
- Directory_Destination = Unterordner
- LastModified_From = 2019-02-01T00:00:00Z
- LastModified_To = 2019-03-01T00:00:00Z
Im Beispiel werden die Dateien, die innerhalb des Zeitraums zwischen 2019-02-01T00:00:00Z und 2019-03-01T00:00:00Z geändert wurden, vom Quellpfad sourcefolder/subfolder in den Zielpfad destinationfolder/subfolder kopiert. Sie können diese Zeitangaben oder Ordner durch Ihre eigenen Parameter ersetzen.
Überprüfen Sie das Ergebnis. Nur die Dateien, die innerhalb des festgelegten Zeitraums geändert wurden, werden in den Zielspeicher kopiert.
Nun können Sie einen Auslöser für rollierende Fenster hinzufügen, um diese Pipeline zu automatisieren. Dadurch kann die Pipeline neue und geänderte Dateien nur anhand von „LastModifiedDate“ regelmäßig kopieren. Klicken Sie auf Trigger hinzufügen, und wählen Sie Neu/Bearbeiten aus.
Wählen Sie im Fenster Add Triggers (Trigger hinzufügen) die Option + Neu aus.
Wählen Sie Rollierendes Fenster als Auslösertyp aus, und legen Sie die Häufigkeit auf Alle 15 Minuten fest (Sie können das Intervall jederzeit ändern). Wählen Sie für das Feld „Aktiviert“ die Option Ja aus, und wählen Sie dann OK aus.
Legen Sie den Wert für die Triggerausführungsparameter wie im Folgenden veranschaulicht fest, und wählen Sie Fertig stellen aus.
- FolderPath_Source = Quellordner. Sie können diesen Wert durch Ihren Ordner im Quelldatenspeicher ersetzen.
- Directory_Source = Unterordner. Sie können diesen Wert durch Ihren Unterordner im Quelldatenspeicher ersetzen.
- FolderPath_Destination = Zielordner. Sie können diesen Wert durch Ihren Ordner im Zieldatenspeicher ersetzen.
- Directory_Destination = Unterordner. Sie können diesen Wert durch Ihren Unterordner im Zieldatenspeicher ersetzen.
- LastModified_From = @trigger().outputs.windowStartTime. Es handelt sich um eine Systemvariable des Auslösers, die den Zeitpunkt bestimmt, zu dem die Pipeline zuletzt ausgelöst wurde.
- LastModified_To = @trigger().outputs.windowEndTime. Es handelt sich um eine Systemvariable des Auslösers, die den Zeitpunkt bestimmt, zu dem die Pipeline dieses Mal ausgelöst wird.
Wählen Sie Alle veröffentlichen.
Erstellen Sie neue Dateien im Quellordner des Quelldatenspeichers. Sie warten nun, bis die Pipeline automatisch ausgelöst wird, und werden feststellen, dass nur die neuen Dateien in den Zielspeicher kopiert werden.
Wählen Sie die Registerkarte Überwachen im linken Navigationsbereich aus, und warten Sie 15 Minuten, wenn die Häufigkeit für den Auslöser auf „Alle 15 Minuten“ festgelegt wurde.
Überprüfen Sie das Ergebnis. Sie sehen, dass Ihre Pipeline automatisch alle 15 Minuten ausgelöst wird und dass bei jeder Ausführung der Pipeline nur die neuen oder geänderten Dateien aus dem Quellspeicher in den Zielspeicher kopiert werden.