Wer sich mit Azure Data Factory beschäftigt, der wird sehr schnell auf die Problematik stoßen, die sich aus der Konfiguration einer Pipeline ergibt.

Problem:

Um eine Pipeline zu testen, muss der Zeitraum, in dem sie automatisch vom Scheduler ausgeführt wird, terminiert werden. Dieses führt dazu, dass beim Debuggen so lange gewartet werden muss, bis der vorher bestimmte Zeitpunkt eingetreten ist. Erst danach ist es möglich, das Ergebnis der ausgeführten Pipeline zu überprüfen. Da das Intervall des Schedulers in der Pipeline aber eine volle Stunde betragen muss, führt das zu langen Wartezeiten und zu unnötigen Verzögerungen im Entwicklungsprozess.

In der folgenden Abbildung ist zu sehen, dass im Scheduler als Intervall eine Stunde eingestellt wurde:

Pipeline

Es ist zwar theoretisch möglich, das Intervall auf ‘Minute’ zu stellen, aber spätestens beim Deployen kommt dann folgende Fehlermeldung:

Activity CopyFromBlobToSQL scheduler does not match output DataSet AzureBlobOutput availability.

Das liegt daran, dass im output DataSet AzureBlobOutput als Intervall eine Stunde eingestellt ist. Der Versuch das Intervall für die Verfügbarkeit des DataSet auf Minuten umzustellen führt dann letztendlich zum finalen Scheitern des Vorhabens, den Scheduler für die Pipeline auf ‘Minute’ zu stellen:

Updating the availability section of a Dataset is not supported.

Lösung:

Um die Wartezeit für die nächste automatische Ausführung von bis zu einer Stunde zu verkürzen, muss das Zeitfenster im Scheduler ganz einfach in die Vergangenheit verlegt werden. Dabei ist zu beachten,  dass  die Informationen für ‘start’ und ‘end’ identisch gesetzt werden müssen, damit die Pipeline genau einmal vom Scheduler ausgeführt werden soll.

Mit Rerun kann die Pipeline in der Monitoring App, nachdem Veränderungen vorgenommen wurden, erneut ausgeführt werden:

rerun

Die Beispiel-Pipeline ‘MyFirstPipeline’ stammt aus dem Tutorial auf der Seite von Microsoft.