Table of Contents
Azure Data Factory (ADF) ist der vollständig verwaltete, cloudbasierte Datenintegrationsdienst von Microsoft. Er ermöglicht es Unternehmen, Datenworkflows maßstäblich zu erstellen, zu planen und zu orchestrieren, Daten über verschiedene Quellen und Ziele zu verschieben und zu transformieren. Die beiden grundlegenden Bausteine von ADF sind pipelines und trigger. Pipelines definieren die Arbeit – die Abfolge von Aktivitäten, die Daten verschieben, verarbeiten oder analysieren. Trigger definieren, wann diese Arbeit stattfindet – sei es nach einem wiederkehrenden Zeitplan, als Reaktion auf externe Ereignisse oder in bestimmten Zeitfenstern. Zusammen bilden sie das Rückgrat automatisierter, produktionsbereiter Datenpipelines. Dieser Artikel bietet eine detaillierte Anleitung auf Produktionsebene zu Azure Data Factory Triggern und Pipelines, die ihre Typen, Erstellung, Best Practices und Integration mit dem breiteren Azure-Ökosystem abdeckt.
Azure Data Factory Pipelines verstehen
Was sind Pipelines?
Eine Pipeline ist eine logische Gruppierung von Aktivitäten, die eine Arbeitseinheit ausführen. Aktivitäten können einfach sein - wie das Kopieren von Daten aus Azure Blob Storage in Azure SQL Database - oder komplex - wie das Ausführen eines Databricks-Notebooks, das Ausführen einer gespeicherten SQL-Prozedur oder das Aufrufen einer benutzerdefinierten REST-API. Pipelines ermöglichen es Ihnen, den Ausführungsfluss zu definieren, einschließlich bedingter Verzweigung, Schleifen und paralleler Verarbeitung. Jede Pipeline kann eine oder mehrere Aktivitäten haben und Aktivitäten können über Control-Flow-Abhängigkeiten wie "On Success", "On Failure" oder "Skip" verbunden werden. Dies ermöglicht es, anspruchsvolle, verzweigende Logik zu erstellen, ohne Code zu schreiben.
Haupttätigkeitstypen
Azure Data Factory kategorisiert Aktivitäten in drei Hauptgruppen:
- Data Movement Activities – Diese kopieren Daten zwischen unterstützten Datenspeichern. Die primäre Aktivität ist Copy Activity, die über 90 integrierte Konnektoren unterstützt (z. B. Amazon S3, Google BigQuery, Snowflake, SAP HANA).
- Data Transformation Activities – Diese transformieren Daten mithilfe von Rechenressourcen. Beispiele sind HDInsight Hive, Azure Databricks (Python, Scala, oder R), Stored Procedure und SSIS Integration Runtime).
- Kontrollaktivitäten – Diese orchestrieren den Pipelinefluss. Beispiele sind ForEach (Schleifen über eine Sammlung), If Condition (Verzweigung), Warten (Pausenausführung), Pipeline ausführen (eine andere Pipeline anrufen) und Validierungsaktivität (überprüfen Sie die Existenz von Dateien).
Durch die Kombination dieser Aktivitäten können Sie fast jeden Datenintegrations-Workflow modellieren – von der einfachen Daten-See-Einnahme bis hin zu mehrstufigen ETL-Jobs mit Fehlerbehandlung und Wiederholungen.
Aktivitätsabhängigkeiten und Pipeline-Ausführung
Aktivitäten innerhalb einer Pipeline werden basierend auf ihren Abhängigkeiten ausgeführt. Standardmäßig laufen Aktivitäten in Sequenz ab. Um Aktivitäten parallel auszuführen, können Sie Abhängigkeiten weglassen. Eine leistungsstarke Funktion ist die Möglichkeit, dynamische Ausdrücke und Parameter zu verwenden. Zum Beispiel können Sie einen Datensatznamen, einen Datumsparameter oder eine Verbindungszeichenfolge als Variable übergeben, wodurch Pipelines umgebungsübergreifend wiederverwendbar werden. Aktivitäten unterstützen auch Retry-Richtlinien (Anzahl der Retries, Retry-Intervall) und Timeouts, die für die Zuverlässigkeit der Produktion unerlässlich sind.
Azure Data Factory Trigger: Eventgesteuerte und geplante Ausführung
Während Pipelines definieren, was zu tun ist, definieren Trigger wann ] zu tun ist. Trigger in ADF sind für das automatische Starten von Pipelineläufen verantwortlich. Es gibt drei Haupttriggertypen, die jeweils für verschiedene Automatisierungsmuster geeignet sind.
Schedule Trigger
Zeitplan-Trigger führen Pipelines nach einem festen Kalenderplan aus, zum Beispiel alle 15 Minuten, stündlich am Ende der Stunde oder täglich um 3:00 Uhr. Sie konfigurieren die Wiederholung mit einem cron-ähnlichen Ausdruck oder einem einfachen Intervall (Minuten, Stunden, Tage, Wochen, Monate). Zeitplan-Trigger unterstützen auch erweiterte Optionen wie Startzeit, Endzeit und Zeitzone. Sie sind ideal für wiederkehrende ETL-Aufgaben, wie z. B. ein nächtliches Data Warehouse-Laden oder eine stündliche Berichtsaktualisierung.
Ereignisauslöser
Ereignisauslöser reagieren auf externe Ereignisse, am häufigsten auf Ereignisse aus Azure Blob Storage oder Azure Data Lake Storage Gen2. Sie können beispielsweise einen Auslöser erstellen, der ausgelöst wird, wenn eine neue Datei in einem bestimmten Container ankommt oder wenn eine Datei aktualisiert wird. ADF unterstützt zwei Kategorien von Ereignisauslösern:
- Speicherereignis-Trigger – Aktiviert durch Blob-Speicherereignisse (d.h. BlobCreated, BlobDeleted). Sie können Ereignisse nach Blob-Namenspräfix, Suffix und Pfad filtern. Dies wird häufig für Echtzeit-Einnahmemuster verwendet, wie z.B. die Verarbeitung eingehender CSV-Dateien von einem Verkaufssystem.
- Custom Event Triggers – Basierend auf Azure Event Grid-spezifische Themen. Dies ermöglicht es Ihnen, Pipelines als Reaktion auf jedes domänenspezifische Ereignis auszulösen, wie z. B. ein abgeschlossenes Machine Learning-Modelltraining, eine Benutzeraktion oder eine Änderung in einem Drittsystem. Benutzerdefinierte Trigger machen ADF zu einem flexiblen Orchestrator in ereignisgesteuerten Architekturen.
Ereignisauslöser laufen nicht nach einem festen Zeitplan - sie laufen nur, wenn das definierte Ereignis eintritt, wodurch sie sowohl kosteneffizient als auch zeitnah sind.
Tumbling Window Triggers
Dieser Triggertyp befindet sich zwischen Zeitplan- und Ereignistriggern. Ein Tumbling-Fenster-Trigger läuft auf einer festen Frequenz, bietet aber auch eine Zustandsverwaltung - er erinnert sich, welche Fenster bereits verarbeitet wurden. Zum Beispiel können Sie einen Tumbling-Fenster-Trigger so einstellen, dass er jede Stunde läuft, und er wird genau am Anfang jedes Fensters ausgelöst (z. B. 00:00-01:00, 01:00-02:00). Jedes Fenster ist unabhängig und der Trigger sorgt für eine exakte Verarbeitung einmalig. Tumbling-Fenster sind besonders nützlich für inkrementelle Datenlasten, bei denen Sie Daten für einen bestimmten Zeitbereich verarbeiten müssen, ohne sich zu überschneiden oder irgendwelche Intervalle zu verpassen.
Erstellen und Verwalten von Triggern
Trigger können über mehrere Schnittstellen erstellt und verwaltet werden:
- Azure Portal (UI): Die einfachste Methode für einmalige Setups. Sie können einen Trigger definieren, ihn testen und ihm eine oder mehrere Pipelines zuordnen. Das Portal bietet eine visuelle Schnittstelle zum Konfigurieren von Rezidiv-, Ereignisfiltern und Parametern.
- Azure CLI oder PowerShell: Geeignet für Skripting und DevOps-Integration. Zum Beispiel können Sie das Cmdlet verwenden, um einen Trigger programmatisch zu erstellen.
- ARM Templates (Azure Resource Manager): Der empfohlene Ansatz für Infrastructure-as-Code (IaC). Sie können Trigger als JSON-Ressourcen innerhalb einer ARM-Vorlage definieren und diese über Azure DevOps oder GitHub-Aktionen bereitstellen.
- REST API: Für die erweiterte Automatisierung oder bei der Integration mit externen Orchestrierungssystemen können Sie die ADF REST API direkt aufrufen.
Ein kritischer Punkt: Ein Trigger muss explizit mit einer Pipeline verknüpft sein, bevor er läuft. Sie können einen einzelnen Trigger mit mehreren Pipelines oder eine einzelne Pipeline mit mehreren Triggern, abhängig von Ihrem Workflow, zuordnen.
Erweiterte Trigger- und Pipeline-Integration
Triggerabhängigkeiten und Chaining
In komplexen Datenlandschaften müssen Sie möglicherweise eine Pipeline nach der anderen ausführen oder einen Auslöser, der auf ein bestimmtes Ereignis wartet, bevor Sie starten. Azure Data Factory unterstützt das Verketten von Pipelines mit der Execute Pipeline Activity—eine Kontrollaktivität innerhalb einer übergeordneten Pipeline, die eine Kind-Pipeline synchron oder asynchron ausführt. Für externe Abhängigkeiten zwischen Triggern können Sie Trigger mit ereignisbasierten Mustern kombinieren. Zum Beispiel können Sie einen Zeitplan-Trigger haben, der Pipeline A ausführt (der Rohdaten lädt), und dann einen Ereignis-Trigger, der auslöst, wenn Pipeline A eine Abschlussmarker-Datei in den Speicher schreibt, wodurch Pipeline B gestartet wird (der die Daten transformiert). Dieser Ansatz entkoppelt die Pipelines und macht sie fehlertolerant.
Integration mit Azure Monitoring und Alerts
Azure Data Factory integriert sich tief in Azure Monitor und Log Analytics. Jeder Pipeline-Lauf, Aktivitätslauf und Trigger-Ereignis wird in den Diagnoseprotokollen von ADF protokolliert. Sie können diese Protokolle in Log Analytics streamen und Dashboards, benutzerdefinierte Abfragen und Warnregeln erstellen. Zum Beispiel können Sie eine Warnung einrichten, die eine E-Mail oder einen Webhook auslöst, wenn ein Pipeline-Lauf mehr als dreimal in einem 15-Minuten-Fenster ausfällt. Darüber hinaus können Sie das integrierte Blatt von ADF verwenden Alerts and Metrics im Portal, um schnell Benachrichtigungen für Pipeline-Ausfälle einzurichten oder verpasste Fenster auszulösen.
Vorteile der Automatisierung von Daten-Workflows mit ADF
Die Verwendung von Azure Data Factory Triggern und Pipelines zur Automatisierung Ihrer Datenworkflows bringt messbare Vorteile:
- Operational Efficiency – Manuelle Dateiübertragungen und geplante Skripte werden durch serverlose, verwaltete Pipelines ersetzt.
- Zuverlässigkeit und Konsistenz – ADF wiederholt automatisch fehlgeschlagene Aktivitäten, respektiert Timeouts und protokolliert jeden Schritt. Sobald eine Pipeline entworfen und getestet wurde, läuft sie konsistent ohne Drift.
- Skalierbarkeit – ADF kann Petabyte an Daten und Tausende von Pipeline-Läufen pro Tag verarbeiten. Der zugrunde liegende Compute (Azure Integration Runtime) skaliert elastisch, sodass Sie keine Server bereitstellen müssen.
- Kostenkontrolle – Sie zahlen nur für den Rechenaufwand, der von Aktivitäten verbraucht wird. Ereignisauslöser und Fensterauslöser reduzieren den Abfall, indem sie nur bei Bedarf ausgeführt werden. Sie können auch Schwellenwerte festlegen, um kostspielige Pipelines zu stoppen, wenn sie ein Budget überschreiten.
- End-to-End-Beobachtung – Mit Diagnoseprotokollen, Überwachung und Alarmierung können Sie Fehler erkennen und beheben, bevor sie nachgelagerte Verbraucher betreffen. Die zentrale Ansicht von Pipelineläufen hilft bei Audit und Compliance.
Best Practices für Trigger und Pipelines
Um das Beste aus ADF-Triggern und Pipelines in einer Produktionsumgebung herauszuholen, befolgen Sie diese Best Practices:
- Design für Modularität und Wiederverwendung. Zerlegen Sie große Pipelines in kleinere, fokussierte Pipelines (z. B. eine für die Aufnahme, eine für die Reinigung, eine für das Laden). Verwenden Sie Parameter und leiten Sie sie zwischen Pipelines mithilfe der Aktivität Execute Pipeline. Dies erleichtert das Testen, Debuggen und die Wartung.
- Verwende Triggerabhängigkeiten sorgfältig. Für Workloads, die eine strikte sequentielle Ausführung erfordern, bevorzuge die Verkettung über Execute Pipeline-Aktivität, anstatt sich auf externe Ereignismarker zu verlassen.
- Implementieren Sie eine robuste Fehlerbehandlung. Fügen Sie in jeder Pipeline Aktivitäten für den Fall der Bedingung hinzu, um auf Erfolg oder Misserfolg zu prüfen. Beim Fehler protokollieren Sie den Fehler und senden Sie optional eine Warnung. Verwenden Sie die Abhängigkeit von "On Failure", um eine Behebungspipeline auszulösen (z. B. erneutes Senden der Datei, Benachrichtigung des Teams).
- Parameterize everything. Verwenden Sie Pipeline-Parameter für Dateipfade, Verbindungszeichenfolgen oder Zeitplanintervalle. Vermeiden Sie Hardcoding-Werte. Dies ermöglicht es Ihnen, dasselbe Artefakt in Entwickler-, Test- und Produktionsumgebungen zu bewerben.
- Version steuert Ihre Pipelines. Exportieren Sie Ihre Pipelines und Trigger als ARM-Vorlagen und speichern Sie sie in einem Git-Repository (Azure Repos oder GitHub). Verwenden Sie die native Git-Integration von ADF, um ein Repository mit Ihrer Fabrik zu verknüpfen. Dies ermöglicht Zusammenarbeit, Code-Reviews und Rollbacks.
- Kosten und Leistung überwachen. Diagnoseprotokolle aktivieren und an Log Analytics senden. Abfragen für teure oder lang laufende Aktivitäten. Einstellen der Azure Integration Runtime DIU (Data Integration Unit) Einstellungen für Kopieraktivitäten zur Optimierung des Durchsatzes.
- Testen Sie Trigger in einer Nicht-Produktionsumgebung zuerst. Immer validieren, dass ein Trigger zur richtigen Zeit oder beim richtigen Ereignis feuert, bevor Sie ihn in der Produktion aktivieren. Ein häufiger Fehler besteht darin, einen Zeitplan-Trigger während der Entwicklung der Pipeline aktiv zu lassen, was zu unerwarteten Läufen führt.
- Verwende Ereignisfilterung, um Rauschen zu reduzieren. Beim Erstellen von Ereignistriggern geben Sie Präfixe, Suffixe und Pfade für Dateinamen an, um das Abfeuern von irrelevanten Blob-Ereignissen zu vermeiden.
Gemeinsame Anwendungsfälle
Inkrementelle Datenlasten
Eines der häufigsten Muster ist, nur neue oder geänderte Daten aus einem Quellsystem (wie einer Transaktionsdatenbank) in ein Data Warehouse zu laden. Ein Tumbling-Fenster-Trigger, der alle 15 Minuten läuft, kann eine Pipeline ausführen, die Zeilen kopiert, in denen der "letzte modifizierte" Zeitstempel in dieses Fenster fällt. Die Pipeline kann die Daten dann in Azure Synapse Analytics oder Azure SQL-Datenbank upsert.
Echtzeit-Dateiaufnahme
Wenn ein Partner eine CSV-Datei in einen überwachten Azure Blob Storage-Container hochlädt, startet ein Ereignisauslöser eine Pipeline, die das Schema validiert, die Datei in einen "Verarbeitungs"-Ordner verschiebt, einen Datenfluss ausführt, um die Daten zu transformieren, und schließlich lädt sie in eine SQL-Datenbank. Dieses Muster ist in Einzelhandels- und Logistiksystemen üblich.
Nächtliche Batch-Verarbeitung
Ein Zeitplan-Trigger, der auf 2:00 Uhr UTC eingestellt ist, führt eine Reihe von Pipelines aus: Erstens, kopieren Sie inkrementelle Verkaufsdaten von SQL Server zu Azure Blob; zweitens, führen Sie einen HDInsight Hive-Job aus, um die Daten zu aggregieren; drittens, führen Sie eine gespeicherte Prozedur in Azure SQL Database aus, um Berichtstabellen zu aktualisieren. Die Pipeline verwendet Abhängigkeiten, um sicherzustellen, dass jeder Schritt abgeschlossen ist, bevor der nächste beginnt.
Hybriddatenorchestrierung
Für Unternehmen mit lokalen Datenquellen schließt ADF die Lücke mithilfe der selbst gehosteten Integrationslaufzeit. Ein Zeitplan-Trigger kann eine Pipeline ausführen, die Daten von einem lokalen Dateiserver in Azure kopiert, und dann ein Azure Databricks-Notebook für erweiterte Analysen auslöst. Der gesamte Workflow wird von Azure aus automatisiert und überwacht.
Überwachung und Fehlerbehebung
Verwenden von Azure Monitor und Log Analytics
Um tiefe Einblicke in Trigger- und Pipelineausführung zu erhalten, konfigurieren Sie Diagnoseeinstellungen in Ihrer Data Factory, um Protokolle an einen Log Analytics-Arbeitsbereich zu senden.
ADFActivityRun | where ActivityName == 'Copy data1' and Status == 'Failed' | project TimeGenerated, PipelineName, ActivityName, ErrorMessage
Richten Sie Warnregeln ein, um Sie zu benachrichtigen, wenn eine Pipeline ausfällt oder ein Auslöser nicht innerhalb eines erwarteten Fensters zündet.Sie können auch den Verlauf mit Azure Workbooks oder Power BI visualisieren.
Gemeinsame Probleme und Lösungen
- Trigger nicht starten: Überprüfen Sie den Triggerstatus (gestartet/gestoppt). Überprüfen Sie, ob die zugehörige Pipeline veröffentlicht ist und sich in einem aktiven Zustand befindet.
- Pipeline hängt ab oder zeitversetzt: Aktivitäten haben einen Standardzeitüberschreitung von 7 Tagen. Setzen Sie explizite Zeitüberschreitungen für Pipelines, die schnell ausfallen sollten. Verwenden Sie die Aktivität "Validierung", um auf Dateiexistenz zu überprüfen, bevor Sie fortfahren.
- Parameterfehlanpassung: Wenn ein Trigger Pipelineparameter passiert, die nicht mit der Pipelinedefinition übereinstimmen, wird der Lauf fehlschlagen.
- Konkurrenzprobleme: Standardmäßig kann eine Pipeline bis zu 100 gleichzeitige Instanzen ausführen. Wenn Sie einen Fenstertrigger mit sich überlappenden Fenstern haben, setzen Sie die max-Konkurrenz auf den Trigger, um eine sequentielle Verarbeitung zu erzwingen.
Schlussfolgerung
Azure Data Factory Trigger und Pipelines bieten eine leistungsstarke, flexible Plattform für die Automatisierung von Datenworkflows in jedem Maßstab. Durch das Verständnis der Unterschiede zwischen Zeitplan, Ereignis und taumelnden Fenstertriggern und durch die Anwendung modularer Pipeline-Designs und robuster Überwachungspraktiken können Dateningenieure zuverlässige, kostengünstige und wartbare Datenintegrationslösungen erstellen. Ob Sie inkrementelle Lasten, Echtzeit-Ereignisaufnahme oder komplexe Batch-ETL verwalten, ADF bietet Ihnen die Werkzeuge, um mit Zuversicht zu automatisieren. Für weitere Informationen finden Sie die offizielle Pipeline-Dokumentation, die triggertypen Übersicht und die Überwachungshandbuch).