Automatisierung in Databricks: Der vollständige Leitfaden zur Erstellung und Zeitplanung von Jobs (Workflows)

Melden

Die Orchestrierung und Automatisierung von Daten-Pipelines ist das Herzstück jedes modernen Data-Engineering-Prozesses. In Databricks wird diese Funktionalität über Databricks Workflows (ehemals Jobs) bereitgestellt – einen vollständig verwalteten Orchestrierungsdienst, der tief in die Lakehouse-Plattform integriert ist.

In diesem Tutorial lernen Sie Schritt für Schritt, wie Sie ein Notebook oder Skript als wiederkehrenden Job einrichten, Abhängigkeiten verwalten und Workloads kosteneffizient automatisieren.


Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie:

  • Zugriff auf einen Databricks-Workspace haben.
  • Ein Notebook, eine SQL-Abfrage oder ein Python-Skript im Workspace vorliegen haben, das Sie automatisieren möchten.
  • Ausreichende Berechtigungen besitzen, um Cluster zu starten und Jobs anzulegen.

Schritt-für-Schritt-Anleitung: Einen Job erstellen und planen

Schritt 1: Navigieren Sie zu "Workflows"

  1. Melden Sie sich in Ihrem Databricks-Workspace an.
  2. Klicken Sie in der linken Seitenleiste auf den Menüpunkt Workflows (Symbol mit den verbundenen Knoten).
  3. Klicken Sie oben rechts auf den blauen Button Create Job (Job erstellen).

Schritt 2: Die erste Aufgabe (Task) definieren

Ein Job besteht aus einer oder mehreren Aufgaben (Tasks). Standardmäßig öffnet sich nach dem Klick auf "Create Job" direkt die Maske für den ersten Task.

  1. Task name: Vergeben Sie einen eindeutigen Namen (z. B. 01_Data_Ingestion).
  2. Type: Wählen Sie die Art des Workloads. Die gängigsten sind:
    • Notebook: Führt ein bestehendes Notebook aus.
    • Python script: Führt eine .py-Datei aus (oft via Git).
    • SQL: Führt eine Abfrage, ein Dashboard-Update oder einen Alert aus.
    • dbt / Delta Live Tables: Für komplexe Transformations-Pipelines.
  3. Source: Wählen Sie den Speicherort des Codes (Workspace oder ein angebundenes Git-Repository).
  4. Path: Navigieren Sie zu Ihrem Notebook oder Skript.

Schritt 3: Compute-Ressourcen wählen (Kostenoptimierung!)

Im Bereich Compute bestimmen Sie, auf welcher Infrastruktur der Task ausgeführt wird. Hier gibt es eine goldene Regel:

  • Nutzen Sie immer einen Job Cluster (New Job Cluster)!
    • Warum? Job-Cluster sind bis zu 50 % günstiger als sogenannte All-Purpose-Cluster (interaktive Entwicklungs-Cluster). Sie werden bei Job-Start automatisch hochgefahren und nach Beendigung sofort wieder gelöscht.
  • Konfigurieren Sie die Node-Größe und aktivieren Sie bei unvorhersehbaren Datenmengen das Autoscaling.

Klicken Sie anschließend unten rechts auf Create task.


Schritt 4: (Optional) Multi-Task-Pipelines (DAG) aufbauen

Databricks unterstützt Directed Acyclic Graphs (DAGs). Sie können komplexe Abhängigkeiten definieren:

  1. Bewegen Sie den Mauszeiger im Canvas über Ihren ersten Task und klicken Sie auf das Plus-Symbol (+) darunter.
  2. Definieren Sie den zweiten Task (z. B. 02_Data_Transformation).
  3. Unter Depends on (Abhängig von) ist standardmäßig der vorherige Task eingetragen. Sie können hier auch Bedingungen festlegen (z. B. Run if all succeeded oder Run if at least one failed).

Schritt 5: Zeitplan und Trigger festlegen

Nun soll der Job automatisiert ausgeführt werden. Schauen Sie auf die rechte Seitenleiste im Bereich Job details.

  1. Klicken Sie neben Schedules & Triggers auf Add trigger.
  2. Wählen Sie den Trigger type:
    • Scheduled (Zeitbasiert):
      • Simple: Für einfache Zyklen (z. B. "jeden Tag um 04:00 Uhr").
      • Cron: Für komplexe Intervalle via Cron-Syntax (z. B. 0 0 12 ? * MON-FRI für jeden Werktag um 12:00 Uhr).
      • Zeitzone: Achten Sie darauf, die korrekte Zeitzone (z. B. Europe/Berlin) einzustellen.
    • File arrival (Dateiankunft):
      • Startet den Job automatisch, sobald neue Dateien in einem Cloud-Storage-Verzeichnis (z. B. AWS S3, Azure ADLS Gen2) landen.
    • Continuous (Kontinuierlich):
      • Startet den Job sofort neu, sobald der vorherige Durchlauf beendet ist (ideal für Streaming-Pipelines).
  3. Klicken Sie auf Save.

Schritt 6: Monitoring, Fehlerbehandlung und Alerts

Pipelines können fehlschlagen. Daher ist ein automatisches Alerting unerlässlich.

  1. Navigieren Sie in der rechten Leiste zu Notifications und klicken Sie auf Add notification.
  2. Fügen Sie Ihre E-Mail-Adresse oder einen Webhook (z. B. für Microsoft Teams oder Slack) hinzu.
  3. Wählen Sie die Events aus: On failure (bei Fehlschlag) ist Pflicht, optional können Sie auch Alerts für On duration exceeded (wenn der Job ungewöhnlich lange läuft) setzen.
  4. Retries (Wiederholungen) einstellen:
    • Klicken Sie auf den jeweiligen Task im Canvas.
    • Setzen Sie unter Advanced options > Retries z. B. 2 Wiederholungsversuche mit einem Retry interval von 5 Minuten. Das fängt temporäre Netzwerkprobleme ab.

Schritt 7: Den Job testen

Bevor Sie auf den Schedule warten, sollten Sie den Job manuell testen:

  1. Klicken Sie oben rechts auf den blauen Button Run now.
  2. Wechseln Sie in den Reiter Runs (Ausführungen), um den Fortschritt in Echtzeit zu verfolgen.
  3. Klicken Sie auf den aktiven Run, um das Notebook während der Ausführung live zu debuggen und die Konsolenausgaben einzusehen.

Best Practices für die Automatisierung in Databricks

  • Verwenden Sie Parameter (Widgets): Hardcoden Sie keine Werte. Übergeben Sie Parameter (z. B. Datum oder Zielpfade) an Ihr Notebook, indem Sie in den Task-Einstellungen Parameters definieren und diese im Notebook via dbutils.widgets.get("parameter_name") abrufen.
  • Reparatur einzelner Tasks (Repair and Rerun): Schlägt in einer Pipeline mit 10 Tasks nur der 8. fehl, müssen Sie nicht alles neu ausführen. Nutzen Sie im Run-Verlauf die Funktion Repair Run, um die Pipeline genau ab dem fehlgeschlagenen Task fortzusetzen. Das spart Rechenzeit und Geld.
  • Cluster-Wiederverwendung für Multi-Task-Jobs: Wenn Ihr Workflow aus mehreren kleinen Tasks besteht, erstellen Sie unter Job clusters einen gemeinsamen Cluster und weisen Sie diesen allen Tasks zu. So muss der Cluster nicht für jeden Task neu gestartet werden.
  • Versionskontrolle: Verknüpfen Sie Ihre Jobs direkt mit Git-Repositories (via Databricks Git Folders), anstatt lose Notebooks aus dem Workspace zu nutzen. So stellen Sie sicher, dass Produktions-Jobs immer auf dem main- oder release-Branch laufen.
0