Utlöses jämfört med kontinuerligt pipelineläge
Den här artikeln beskriver driftssemantiken för utlösta och kontinuerliga pipelinelägen för Delta Live Tables.
Pipelineläget är oberoende av vilken typ av tabell som beräknas. Både materialiserade vyer och direktuppspelningstabeller kan uppdateras i båda pipelinelägena.
Om du vill ändra mellan utlöst och kontinuerlig använder du alternativet Pipelineläge i pipelineinställningarna när du skapar eller redigerar en pipeline. Se Konfigurera en Delta Live Tables-pipeline.
Kommentar
Uppdateringsåtgärder för materialiserade vyer och strömmande tabeller som definierats i Databricks SQL körs alltid med hjälp av utlöst pipelineläge.
Vad utlöses pipelineläge?
Om pipelinen använder utlöst läge slutar systemet att bearbeta efter att alla tabeller eller valda tabeller har uppdaterats, vilket säkerställer att varje tabell i uppdateringen uppdateras baserat på tillgängliga data när uppdateringen startar.
Vad är kontinuerligt pipelineläge?
Om pipelinen använder kontinuerlig körning bearbetar Delta Live Tables nya data när de tas emot i datakällor för att hålla tabellerna i pipelinen fräscha.
För att undvika onödig bearbetning i läget för kontinuerlig körning övervakar pipelines automatiskt beroende Delta-tabeller och utför endast en uppdatering när innehållet i de beroende tabellerna har ändrats.
Välj ett datapipelineläge
I följande tabell visas skillnaderna mellan utlösta och kontinuerliga pipelinelägen:
Viktiga frågor | Utlöst | Kontinuerligt |
---|---|---|
När stoppas uppdateringen? | Automatiskt när det är klart. | Körs kontinuerligt tills den stoppas manuellt. |
Vilka data bearbetas? | Tillgängliga data när uppdateringen startar. | Alla data när de kommer till konfigurerade källor. |
Vilka krav på data freshness är detta bäst för? | Datauppdateringar körs var 10:e minut, varje timme eller varje dag. | Datauppdateringar önskas mellan var 10:e sekund och några minuter. |
Utlösta pipelines kan minska resursförbrukningen och kostnaderna eftersom klustret bara körs tillräckligt länge för att uppdatera pipelinen. Nya data bearbetas dock inte förrän pipelinen utlöses. Kontinuerliga pipelines kräver ett kluster som alltid körs, vilket är dyrare men minskar bearbetningsfördröjningen.
Ange utlösarintervall för kontinuerliga pipelines
När du konfigurerar pipelines för kontinuerligt läge kan du ange utlösarintervall för att styra hur ofta pipelinen startar en uppdatering för varje flöde.
Du kan använda pipelines.trigger.interval
för att styra utlösarintervallet för ett flöde som uppdaterar en tabell eller en hel pipeline. Eftersom en utlöst pipeline bearbetar varje tabell en gång används den pipelines.trigger.interval
endast med kontinuerliga pipelines.
Databricks rekommenderar att du ställer in pipelines.trigger.interval
enskilda tabeller eftersom strömnings- och batchfrågor har olika standardvärden. Ange värdet på en pipeline endast när bearbetningen kräver kontroll av uppdateringar för hela pipelinediagrammet.
Du ställer in pipelines.trigger.interval
på en tabell med hjälp av spark_conf
i Python eller SET
i SQL:
@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 ...
Om du vill ange pipelines.trigger.interval
en pipeline lägger du till den configuration
i objektet i pipelineinställningarna:
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}