Freigeben über


Ausgelöster vs. fortlaufender Pipeline-Modus

In diesem Artikel werden die operative Semantik ausgelöster und fortlaufender Modi für Pipelines 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 von Pipelines.

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 kontinuierliche Pipelinemodus?

Wenn die Pipeline fortlaufende Ausführung verwendet, verarbeitet Lakeflow Spark Declarative Pipelines 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 Delta-Tabellen automatisch und führen nur dann eine Aktualisierung durch, wenn sich der Inhalt dieser abhängigen Tabellen geändert hat.

Auswählen eines Datenpipelinemodus

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. Wird 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 an konfigurierten Quellen eingehen.
Für welche Anforderungen an die Aktualität von Daten ist dies am besten geeignet? Datenaktualisierungen 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 laufenden Cluster, was teurer ist, aber die Bearbeitungslatenz 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.

Sie können pipelines.trigger.interval verwenden, um das Auslöserintervall für einen Flow, der eine Tabelle oder eine gesamte Pipeline aktualisiert, zu steuern. Da eine ausgelöste Pipeline jede Tabelle einmal verarbeitet, wird pipelines.trigger.interval nur bei fortlaufenden 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 pipelines.trigger.interval auf einem Tisch fest, indem Sie spark_conf in Python oder SET in SQL verwenden.

@dp.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 ...

Um pipelines.trigger.interval in einer Pipeline festzulegen, fügen Sie es dem configuration-Objekt in den Pipelineeinstellungen hinzu.

{
  "configuration": {
    "pipelines.trigger.interval": "10 seconds"
  }
}