Dela via


Triggat vs. kontinuerligt pipelineläge

Den här artikeln beskriver driftssemantiken för utlösta och kontinuerliga pipelinelägen för DLT.

Pipelineläget är oberoende av vilken typ av tabell som beräknas. Både materialiserade vyer och strömmande tabeller kan uppdateras i något av pipelinelägena.

Om du vill ändra mellan utlöst och kontinuerlig använder du alternativet Pipeline-läge i pipelineinställningarna när du skapar eller redigerar en pipeline. Se Konfigurera en DLT-pipeline.

Not

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 är utlösarläge för pipeline?

Om pipelinen använder och systemet utlöses i-läge, slutar systemet att bearbeta efter att ha uppdaterat alla tabeller eller valda tabeller framgångsrikt, vilket säkerställer att varje tabell i uppdateringen uppdateras baserat på de data som är tillgängliga när uppdateringen startar.

Vad är kontinuerligt pipelineläge?

Om pipelinen använder kontinuerlig exekvering bearbetar DLT nya data när de kommer in i datakällorna för att hålla tabellerna uppdaterade i hela pipelinen.

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 Kontinuerlig
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å aktualitet av data ä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 endast 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.

Ställ in 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 triggat pipeline bearbetar varje tabell en gång används pipelines.trigger.interval endast med kontinuerliga pipelines.

Databricks rekommenderar att du ställer in pipelines.trigger.interval på 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 anger pipelines.trigger.interval i 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 på en pipeline lägger du till den i configuration-objektet i pipelineinställningarna:

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