Programmieren mit Python: Daten-Workflows mit Prefect automatisieren

Wer in der Python-Welt regelmäßig Daten abholt, transformiert und wegspeichert, nutzt meist Airflow. Prefect ist ein Herausforderer und bietet einiges mehr.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
Lesezeit: 11 Min.
Von
  • Arnd Scharpegge
Inhaltsverzeichnis

Das Tool Prefect dient zum Steuern von Datenübertragungen, macht die Erfolge davon sichtbar und benachrichtigt, wenn etwas einmal nicht funktioniert. Das von ehemaligen Airflow-Mitarbeitern gegründete Prefect erschien erstmals 2018 und macht bereits einen ausgereiften Eindruck – viele Kunden setzen es schon produktiv ein. Die Entwickler bezeichnen es als Workflow Orchestration Platform und meinen damit, dass es alle Arten von aneinandergereihten Aktionen mit Daten abbilden kann. Da es in vielen Fällen darum geht, Daten von A nach B zu übertragen, setzt dieser Artikel Datenflows mit Prefect-Workflows gleich. Ein Flow ist dabei eine festgelegte Abfolge von Arbeitsschritten.

Prefect besteht aus einer Datenbank zum Verwalten aller relevanten Informationen, der Prefect-Server-API und dem GUI. All diese Komponenten steuert die Plattform über denselben Prozess. Dazu kommt der Prefect Agent, der prüft, ob ein neuer Lauf eines Workflows gestartet werden soll. Die letzte Kernkomponente ist die Datenbasis zum Speichern der Flows, die man als lokales Dateisystem, AWS-S3-Speicher oder MinIO Object Store einrichten kann. Hier liegen nur die Flow-Anweisungen als Dateien, aber keine Metadaten – die finden sich in der angebundenen Datenbank.

Mehr zum Programmieren mit Python
Arnd Scharpegge

Arnd Scharpegge ist seit über 20 Jahren in der IT-Beratung tätig und arbeitet als Senior Solution Architect bei der Cpro IoT Connect in den Bereichen Data Engineering und IoT-Projektrealisierung.

Alle diese Prozesse lassen sich via Docker Compose zusammen starten. Prefect-Workflows können on Premises, in Docker-Containern oder in der Prefect-Cloud laufen. Ein genauer Überblick über die Struktur und Komponenten von Prefect finden Sie auf GitHub. Dieser Artikel zeigt, wie man Flows entwickelt, debuggt und sie mit Docker Compose zum Laufen bringt.