Freigeben über


Verschieben von Dateien 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!

Die ADF-Kopieraktivität verfügt über integrierte Unterstützung für das "Verschieben"-Szenario beim Kopieren von Binärdateien zwischen Speicherorten. Legen Sie „deleteFilesAfterCompletion“ in der Kopieraktivität auf TRUE fest, um dieses Verhalten zu aktivieren. Dadurch löscht die Kopieraktivität nach Abschluss des Auftrags Dateien aus dem Datenquellenspeicher.

In diesem Artikel wird eine Lösungsvorlage als alternative Vorgehensweise beschrieben. Diese nutzt die flexible Ablaufsteuerung von ADF sowie die Kopier- und die Löschaktivität, um dasselbe Verhalten zu erzielen. Eines der häufigsten Szenarien für die Verwendung dieser Vorlage: Dateien werden fortlaufend in einem Eingangsordner des Quellspeichers abgelegt. Durch das Erstellen eines geplanten Triggers kann die ADF-Pipeline diese Dateien in regelmäßigen Abständen aus dem Quell-in den Zielspeicher verschieben. Die ADF-Pipeline verschiebt Dateien wie folgt: Die einzelnen Dateien im Eingangsordner werden in einen anderen Ordner im Zielspeicher kopiert und dann aus dem Eingangsordner im Quellspeicher gelöscht.

Hinweis

Beachten Sie, dass diese Vorlage zum Verschieben von Dateien und nicht zum Verschieben von Ordnern vorgesehen ist. Lassen Sie Vorsicht walten, wenn Sie den Ordner verschieben möchten, indem Sie das Dataset ändern, damit es nur einen Ordnerpfad enthält, und anschließend eine Copy- und eine Delete-Aktivität verwenden, um auf das gleiche Dataset zu verweisen, das einen Ordner darstellt. In diesem Fall müssen Sie sicherstellen, dass zwischen dem Kopiervorgang und dem Löschvorgang KEINE neuen Dateien im Ordner platziert werden. Wenn zum Zeitpunkt des Abschlusses der Copy-Aktivität neue Dateien im Ordner ankommen und die Delete-Aktivität noch nicht gestartet wurde, besteht die Möglichkeit, dass die Delete-Aktivität diese neu hinzugekommenen Dateien durch Löschen des gesamten Ordners entfernt, obwohl sie noch NICHT ins Ziel kopiert wurden.

Informationen zu dieser Lösungsvorlage

Mit dieser Vorlage werden die Dateien aus dem Quelldateispeicher geholt. Anschließend werden die einzelnen Dateien in den Zielspeicher verschoben.

Die Vorlage enthält fünf Aktivitäten:

  • GetMetadata ruft die Liste der Objekte, die die Dateien und Unterordner enthalten, aus dem Ordner im Quellspeicher ab. Die Objekte werden nicht rekursiv abgerufen.
  • Filter filtert die Liste der Objekte aus der GetMetadata-Aktivität, um nur die Dateien auszuwählen.
  • ForEach ruft die Dateiliste aus der Filter-Aktivität ab, durchläuft die Liste und übergibt jede Datei an die Copy-Aktivität und die Delete-Aktivität.
  • Copy kopiert eine Datei aus dem Quellspeicher in den Zielspeicher.
  • Delete löscht dieselbe Datei aus dem Quellspeicher.

Die Vorlage definiert vier Parameter:

  • SourceStore_Location stellt den Ordnerpfad des Quellspeichers dar, aus dem Dateien verschoben werden sollen.
  • SourceStore_Directory stellt den Unterordnerpfad des Quellspeichers dar, aus dem Dateien verschoben werden sollen.
  • DestinationStore_Location stellt den Ordnerpfad des Zielspeichers dar, in den Dateien verschoben werden sollen.
  • DestinationStore_Directory stellt den Ordnerpfad des Zielspeichers dar, in den Dateien verschoben werden sollen.

So verwenden Sie diese Lösungsvorlage

  1. Wechseln Sie zur Vorlage Dateien verschieben. Wählen Sie eine vorhandene Verbindung aus, oder erstellen Sie mit Neu eine neue Verbindung mit dem Quelldateispeicher, aus dem Dateien verschoben werden sollen. Beachten Sie, dass DataSource_Folder und DataSource_File auf dieselbe Verbindung der Quelldatei verweisen.

    Screenshot der Erstellung einer neuen Verbindung mit der Quelle

  2. Wählen Sie eine vorhandene Verbindung aus, oder erstellen Sie mit Neu eine neue Verbindung mit dem Zieldateispeicher, in den Dateien verschoben werden sollen.

    Screenshot der Erstellung einer neuen Verbindung mit dem Ziel

  3. Wählen Sie die Registerkarte Diese Vorlage verwenden aus.

  4. Sie werden die Pipeline wie im folgenden Beispiel sehen:

    Screenshot, der die Pipeline zeigt.

  5. Klicken Sie auf Debuggen, geben Sie die Parameter ein, und klicken Sie dann auf Fertig stellen. Bei den Parametern handelt es sich um den Ordnerpfad, aus dem Sie Dateien verschieben möchten, sowie den Ordnerpfad, in den Sie Dateien verschieben möchten.

    Screenshot des Ausführungsorts der Pipeline

  6. Überprüfen Sie das Ergebnis.

    Screenshot des Ergebnisses der Pipelineausführung