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

  1. 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.

    Screenshot: Wie der Vorlagenkatalog auf der Registerkarte „Autor“ von Azure Data Factory Studio geöffnet wird

  2. Suchen Sie nach der Vorlage Neue Dateien nur nach LastModifiedDate kopieren, wählen Sie sie aus, und wählen Sie dann Weiter aus.

    Screenshot: Wie Sie nach der Vorlage „Neue Dateien nur nach LastModifiedDate kopieren“ suchen und diese auswählen

  3. Erstellen Sie eine neue Verbindung mit Ihrem Zielspeicher. Die Dateien sollen in den Zielspeicher kopiert werden.

    Erstellen einer neuen Verbindung mit der Quelle

  4. Erstellen Sie eine neue Verbindung mit Ihrem Quellspeicher. Aus dem Quellspeicher sollen die Dateien kopiert werden.

    Erstellen einer neuen Verbindung mit dem Ziel

  5. Klicken Sie auf Diese Vorlage verwenden.

    Diese Vorlage verwenden

  6. Die Pipeline wird im Bereich angezeigt, wie im folgenden Beispiel zu sehen:

    Pipeline anzeigen

  7. 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.

    Führen Sie die Pipeline aus.

  8. Überprüfen Sie das Ergebnis. Nur die Dateien, die innerhalb des festgelegten Zeitraums geändert wurden, werden in den Zielspeicher kopiert.

    Überprüfen des Ergebnisses

  9. 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.

    Screenshot mit hervorgehobener Menüoption „Neu/Bearbeiten“, die bei Auswahl von „Trigger hinzufügen“ angezeigt wird

  10. Wählen Sie im Fenster Add Triggers (Trigger hinzufügen) die Option + Neu aus.

  11. 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.

    Trigger erstellen

  12. 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.

    Eingabeparameter

  13. Wählen Sie Alle veröffentlichen.

    Alle veröffentlichen

  14. 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.

  15. 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.

  16. Ü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.

    Screenshot der Ergebnisse, die bei Auslösen der Pipeline zurückgegeben werden