Ausgelöster und fortlaufender Pipelinemodus
In diesem Artikel werden die operative Semantik ausgelöster und fortlaufender Pipelinemodi für Delta Live Tables beschrieben.
Der Pipelinemodus ist unabhängig vom Typ der zu berechnenden Tabelle. Sowohl materialisierte Ansichten als auch Streamingtabellen können im Pipelinemodus aktualisiert werden.
Verwenden Sie die Option "Pipelinemodus " in den Pipelineeinstellungen beim Erstellen oder Bearbeiten einer Pipeline, um zwischen ausgelöster und fortlaufender Funktion zu wechseln. Siehe Konfigurieren einer Delta Live Tables-Pipeline.
Hinweis
Aktualisierungsvorgänge für materialisierte Ansichten und Streamingtabellen, die in Databricks SQL definiert sind, werden immer im ausgelösten Pipelinemodus ausgeführt.
Was wird durch den Pipelinemodus ausgelöst?
Wenn die Pipeline den ausgelösten Modus verwendet, beendet das System die Verarbeitung nach dem erfolgreichen Aktualisieren aller Tabellen oder ausgewählten Tabellen, um sicherzustellen, dass jede Tabelle im Update basierend auf den daten aktualisiert wird, die beim Start des Updates verfügbar sind.
Was ist der fortlaufende Pipelinemodus?
Wenn die Pipeline im Ausführungsmodus Fortlaufend ausgeführt wird, verarbeitet Delta Live Tables neue Daten, sobald sie in Datenquellen eintreffen, um Tabellen während der gesamten Pipeline aktuell zu halten.
Um unnötige Verarbeitung im fortlaufenden Ausführungsmodus zu vermeiden, überwachen Pipelines abhängige Deltatabellen automatisch und führen nur dann ein Update durch, wenn sich der Inhalt dieser abhängigen Tabellen geändert hat.
Auswählen einer Datenpipelinemodi
In der folgenden Tabelle werden die Unterschiede zwischen ausgelösten und fortlaufenden Pipelinemodi hervorgehoben:
Kernfragen | Ausgelöst | Fortlaufend |
---|---|---|
Wann wird das Update beendet? | Automatisch nach Abschluss | Kontinuierlich ausgeführt, bis der Vorgang manuell beendet wird |
Welche Daten werden verarbeitet? | Daten, die beim Starten des Updates verfügbar sind. | Alle Daten, sobald sie in den konfigurierten Quellen eingehen |
Für welche Anforderungen an die Datenaktualität ist dieser Modus am besten geeignet? | Datenupdates werden alle 10 Minuten, stündlich oder täglich ausgeführt. | Datenaktualisierungen werden zwischen 10 Sekunden und ein paar Minuten gewünscht. |
Ausgelöste Pipelines können den Ressourcenverbrauch und die Kosten reduzieren, da der Cluster nur lange genug ausgeführt wird, um die Pipeline zu aktualisieren. Neue Daten werden jedoch erst verarbeitet, wenn die Pipeline ausgelöst wird. Kontinuierliche Pipelines erfordern einen ständig ausgeführten Cluster, der teurer ist, aber die Verarbeitungslatenz reduziert.
Festlegen des Triggerintervalls für fortlaufende Pipelines
Beim Konfigurieren von Pipelines für den fortlaufenden Modus können Sie Triggerintervalle festlegen, um zu steuern, wie häufig die Pipeline ein Update für jeden Fluss startet.
Mit pipelines.trigger.interval
können Sie das Triggerintervall für einen Flow steuern, der eine Tabelle oder eine gesamte Pipeline aktualisiert. Da eine ausgelöste Pipeline jede Tabelle einmal verarbeitet, wird sie pipelines.trigger.interval
nur für fortlaufende Pipelines verwendet.
Databricks empfiehlt die Einstellung pipelines.trigger.interval
für einzelne Tabellen, da Streaming- und Batchabfragen unterschiedliche Standardwerte aufweisen. Legen Sie den Wert für eine Pipeline nur dann fest, wenn für die Verarbeitung Aktualisierungen für das gesamte Pipelinediagramm erforderlich sind.
Sie legen eine Tabelle in spark_conf
Python oder SET
in SQL festpipelines.trigger.interval
:
@dlt.table(
spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
return (<query>)
SET pipelines.trigger.interval=10 seconds;
CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...
Wenn Sie pipelines.trigger.interval
für eine Pipeline festlegen möchten, fügen Sie es dem Objekt configuration
in den Pipelineeinstellungen hinzu:
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}