Du bekommst alle 5 Minuten Telemetrie aus einem SCADA-System und brauchst am Ende eine Erzeugungsprognose für Solar und Wind. Deine Frage ist genau die, die ein Tech Lead stellen sollte, bevor das Team baut: Ist Databricks dafür das richtige Werkzeug — oder zwingen wir gerade eine Batch-Analyseplattform in eine Rolle, für die sie nie gedacht war?
Diese Lektion gibt dir eine belastbare Antwort, die Belege dahinter und — noch wichtiger — den Denkrahmen, den du bei der nächsten Latenzfrage wiederverwenden kannst.
Databricks passt gut für eine 5-Minuten-SCADA-Ingestion, die eine Solar-/Wind-Erzeugungsprognose speist — aber du solltest sie auf der inkrementellen (getriggerten) Stufe bauen, nicht auf der Echtzeit-Stufe. Fünf-Minuten-Daten bedeuten nicht automatisch eine Fünf-Millisekunden-Plattform. Der Fehler, den du vermeiden musst, ist nicht „Databricks zu nutzen“; es ist, für Streaming zu bezahlen, das du nicht brauchst — oder umgekehrt, eine Leitwarten-Entscheidung hinter ein Lakehouse zu legen.
„5-Minuten-Daten“ ist eine Aussage über den Ankunftstakt. Über deine Latenzanforderung sagt sie nichts. Beides ist unabhängig voneinander, und die Verwechslung ist die mit Abstand häufigste Ursache überkonstruierter Energiedatenplattformen.
| Frage | Deine Antwort | Was daraus folgt |
|---|---|---|
| Wie oft treffen Daten ein? | Alle 5 Minuten, je Anlage | Trigger-Takt, Batch-Größe, Dateilayout |
| Wie alt darf das Ergebnis sein? | Bestimmt durch die Markt-/Dispatch-Frist | Compute-Stufe, Kosten, Architektur |
Bei einer Erzeugungsprognose lautet die Frist fast nie „so schnell wie physikalisch möglich“. Sie ist ein Kalender: die Intraday-Gate-Closure (Handelsschluss), der Fahrplan, den du beim ÜNB einreichen musst, die Redispatch-Anforderung, die Stunden-Nominierung. Wenn deine Prognose auf jemandes Schreibtisch liegen muss, bevor ein Gate 15 Minuten vor Lieferung schließt, liegt dein Ende-zu-Ende-Budget im Minutenbereich — und genau in diesem Bereich ist Databricks am günstigsten und am einfachsten.
⚠ Die Falle
Teams hören „SCADA“ und „Echtzeit“ im selben Satz und greifen zu dauerhaft laufendem Streaming. Die Rechnung kommt jeden Monat, für immer — unabhängig davon, ob irgendjemand die Prognose schneller liest, als der Markt einen Handel darauf zulässt. Leite dein Latenz-SLA aus der geschäftlichen Frist ab und wähle dann die Stufe — niemals umgekehrt.
Databricks hat nicht eine Streaming-Antwort. Es hat drei, mit deutlich unterschiedlichen Kosten- und Komplexitätsprofilen. Zu wissen, welche du gerade kaufst, ist bereits der größte Teil der Architekturentscheidung.
| Stufe | Latenz | Wie du sie baust | Compute |
|---|---|---|---|
| Inkrementell / getriggert | Minuten | Serverless Job nach Zeitplan mit Trigger.AvailableNow() oder eine getriggerte Lakeflow-Pipeline |
Startet, verarbeitet den Batch, beendet sich — am günstigsten |
| Continuous | Sekunden | Lakeflow-Pipeline im Continuous-Modus | Dauerhaft laufendes Cluster — teurer |
| Real-Time Mode | Unter einer Sekunde | .trigger(realTime='5 minutes') in Structured Streaming oder Lakeflow |
Dediziertes Compute, dauerhaft offen gehalten |
Die Zahlen hinter dieser Tabelle, direkt vom Hersteller:
Trigger.AvailableNow()-Job ist das kosteneffizienteste Streaming-Muster auf Serverless Compute, wenn Latenz im Minutenbereich akzeptabel ist. Das Compute startet in Sekunden, verarbeitet den Batch und fährt herunter.“ [Streaming on serverless compute]Die ehrliche Unschärfe an dieser Stelle
Dein 5-Minuten-Takt liegt exakt auf der Nahtstelle: Der getriggerte Modus ist für „alle 10 Minuten oder langsamer“ dokumentiert, Continuous für „10 Sekunden bis wenige Minuten“. Kein Dokument kann dir sagen, auf welcher Seite du landest. Benchmarke beide gegen deine echte Flottengröße und entscheide anhand gemessener Tageskosten, nicht aus Prinzip. Fang getriggert an — das ist die günstigere Hypothese, die du widerlegen kannst.
Das ist die Einsicht, die die Kosten einer Wetter-zu-Strom-Prognose überhaupt tragfähig macht. Dein System hat zwei unabhängige Aktualisierungsraten, und beide auf der schnelleren laufen zu lassen ist reine Verschwendung.
Numerische Wettervorhersage aktualisiert sich ein paar Mal am Tag. Dein SCADA-Feed aktualisiert sich 288 Mal am Tag. Der 5-Minuten-Pfad sollte nur das tun, was frische Telemetrie überhaupt verändern kann: gemessene Erzeugung, Verfügbarkeit und Abregelungszustand sowie eine Bias-/Persistenz-Korrektur mit kurzem Horizont auf die stehende NWP-getriebene Prognose. Das ist ein kleiner, günstiger, inkrementeller Job — und genau deshalb passt die getriggerte Stufe.
Glaubwürdig „nein“ sagen zu können, ist das, was dein „ja“ gegenüber Stakeholdern wertvoll macht. Vier Dinge gehören nicht durchs Lakehouse:
| Workload | Eignung | Wo es hingehört |
|---|---|---|
| Abschaltlogik der Turbine, Schutzfunktionen, Abregelungsbefehle | Nein | SCADA/SPS. Sicherheits- und Regelkreise laufen nie über Analytik. |
| Protokollterminierung (OPC UA, IEC 60870-5-104, Modbus) | Nein | Ein Edge-Gateway oder Historian. Databricks liest, was diese veröffentlichen. |
| Abfragen unter 50 ms pro Request für eine Web-App oder API | Nein | Ein Serving-Store oder Model-Serving-Endpunkt, gespeist aus Gold — kein Delta-Scan. |
| Ein Delta-Write pro SCADA-Datensatz beim Eintreffen | Nein | Am Gateway oder Message Bus bündeln. Jeder Write ist eine Transaktion und eine Datei. |
| 5-Min-Ingest, QC, Feature-Aufbau, Prognose, Historie, Analyse | Ja | Genau dafür ist das Lakehouse da. |
Die Ein-Satz-Fassung für Stakeholder
Databricks ist der Ort, an dem du entscheidest und dich erinnerst. SCADA ist der Ort, an dem du handelst. Wenn eine Maschine auf das Ergebnis reagiert, ohne dass ein Mensch oder ein Markt dazwischensteht, gehört es nicht ins Lakehouse.
Konkret, für deinen Fall:
model_version und produced_at, als Vertrag nach unten (Lektion 8).Baue das Ganze als Serverless Lakeflow-Pipeline. Databricks empfiehlt für neue Pipelines ausdrücklich Lakeflow-Pipelines statt selbst gebautem Structured Streaming, weil dir damit das Management der Produktionsinfrastruktur abgenommen wird. [Production considerations for Structured Streaming]
⚠ Serverless-Einschränkung, die dich einholen wird
Auf Serverless Compute werden nur Trigger.AvailableNow() und das veraltete Trigger.Once() unterstützt. Trigger.ProcessingTime(interval) und Trigger.Continuous(interval) nicht — und eine Query ohne expliziten Trigger scheitert mit INFINITE_STREAMING_TRIGGER_NOT_SUPPORTED. Für einen dauerhaft laufenden Stream auf Serverless nimmst du stattdessen eine Lakeflow-Pipeline im Continuous-Modus. [Serverless compute limitations]
Arbeite den Baum unten für deinen eigenen Workload durch. Probiere ihn zweimal: einmal für die Prognose-Pipeline und einmal für etwas, das du versucht sein könntest anzuflanschen — etwa einen Abregelungsalarm.
1. Vom Eintreffen der Daten bis zur nachgelagerten Nutzbarkeit des Ergebnisses: Was ist deine harte Frist?
2. Reagiert irgendetwas automatisch auf das Ergebnis, ohne Mensch oder Marktschritt dazwischen?
3. Was passiert, wenn ein Lauf 10 Minuten zu spät kommt?
Databricks — getriggerte Stufe
Die günstigste richtige Antwort. Serverless Job oder getriggerte Lakeflow-Pipeline, Trigger.AvailableNow(), alle 5–15 Minuten geplant. Das Compute startet in Sekunden, arbeitet den Rückstand seit dem letzten Checkpoint ab und beendet sich. Widerstehe allem Aufwändigeren, bis dich eine Messung dazu zwingt.
Databricks — getriggerte Stufe, mit SLA
Gleiche Bauform, aber Aktualität ist jetzt ein Produktionsthema. Dimensioniere den Job so, dass ein Lauf deutlich innerhalb des Intervalls fertig wird, alarmiere bei veraltetem Bronze und bei überlanger Laufzeit, und lass den nachgelagerten Konsumenten produced_at lesen, damit er den Handel auf einer veralteten Prognose verweigern kann. Wenn Läufe regelmäßig überziehen, wechsle zu einer Continuous-Lakeflow-Pipeline, bevor du zum Real-Time Mode greifst.
Databricks — Continuous-Stufe
Lakeflow-Pipeline im Continuous-Modus auf Serverless. Du kaufst dir ein dauerhaft laufendes Cluster, also begründe die Sekunden: Benenne die Entscheidung, die bei 5 Minuten schlechter ausfällt. Wenn du keine benennen kannst, bist du auf der getriggerten Stufe und bezahlst die Continuous-Stufe.
Kein Lakehouse-Workload
Das bleibt in SCADA, in der SPS oder in einem dedizierten Stream-Prozessor an der Edge. Der Real-Time Mode von Databricks schafft zwar rund 300 ms, aber eine Steuerungs- oder Schutzentscheidung sollte überhaupt nicht von der Verfügbarkeit einer Cloud-Analyseplattform abhängen. Lass Databricks das Ergebnis beobachten, festhalten und analysieren — nicht die Entscheidung treffen.
Was sollte die Latenzanforderung deiner SCADA-gespeisten Prognose-Pipeline bestimmen?
Welche Konfiguration liefert auf Serverless Aktualität im Minutenbereich zu den geringsten Kosten?
Trigger.AvailableNow()-Job ist das kosteneffizienteste Streaming-Muster auf Serverless, wenn Latenz im Minutenbereich akzeptabel ist — das Compute startet in Sekunden, verarbeitet den Batch und fährt herunter.Trigger.AvailableNow()-Job. Real-Time Mode braucht dediziertes Compute, All-Purpose Compute wird für Streaming ausdrücklich abgeraten, und zeitbasierte oder Continuous-Trigger werden auf Serverless gar nicht unterstützt.Welcher dieser Workloads sollte vollständig außerhalb von Databricks bleiben?
Warum solltest du nicht jeden SCADA-Datensatz sofort beim Eintreffen nach Delta schreiben?
📖 Empfohlene Lektüre
Streaming on serverless compute — Databricks. Das ist die mit Abstand nützlichste Seite für deine Frage: ein expliziter Entscheidungsleitfaden, der Streaming-Anwendungsfälle dem passenden Produkt zuordnet und klar benennt, welche Trigger verfügbar sind und welche nicht. Lies die Tabelle „Choose the right streaming configuration“ und den Abschnitt „Workloads that are not streaming pipelines“.
Anschließend Real-time mode concepts, um genau zu sehen, was du auf der obersten Stufe kaufen würdest — und warum die Dokumentation Medaillon-Workloads davon wegführt.
Zwei naheliegende Anschlussthemen, beide direkt auf der Mission:
produced_at instrumentierst, damit eine veraltete Prognose abgelehnt statt gehandelt wird.💬 Dein Lehrer ist da
Stell mir Rückfragen zu allem oben. Besonders lohnend: ab welcher Flottengröße die getriggerte Stufe aufhört, günstiger zu sein als Continuous — oder wie du diese Empfehlung für einen Stakeholder formulierst, dem bereits „Echtzeit“ verkauft wurde.
Siehe auch: Architektur-Spickzettel · Lektion 10 — Kosten & Betrieb
Rechtliches: Impressum