Dela via


Konfigurera utlösarintervall för strukturerad direktuppspelning

Apache Spark Structured Streaming bearbetar data stegvis; Om du styr utlösarintervallet för batchbearbetning kan du använda Strukturerad direktuppspelning för arbetsbelastningar, inklusive bearbetning i nära realtid, uppdatering av databaser var 5:e minut eller en gång i timmen eller batchbearbetning av alla nya data under en dag eller vecka.

Eftersom Databricks Auto Loader använder Structured Streaming för att läsa in data ger förståelse för hur utlösare fungerar den största flexibiliteten att kontrollera kostnaderna vid inmatning av data med önskad frekvens.

Ange tidsbaserade utlösarintervall

Structured Streaming hänvisar till tidsbaserade utlösarintervall som "mikrobatcher med fast intervall". Med hjälp av nyckelordet processingTime anger du en varaktighet som en sträng, till exempel .trigger(processingTime='10 seconds').

När du anger ett trigger intervall som är för litet (mindre än tiotals sekunder) kan systemet utföra onödiga kontroller för att se om nya data kommer. Konfigurera bearbetningstiden för att balansera svarstidskrav och den hastighet som data anländer till källan.

Konfigurering av inkrementell batchbearbetning

Viktigt!

I Databricks Runtime 11.3 LTS och senare är Trigger.Once-inställningen inaktuell. Databricks rekommenderar att du använder Trigger.AvailableNow för alla inkrementella batchbearbetningsarbetsbelastningar.

Det tillgängliga utlösaralternativet använder alla tillgängliga poster som en inkrementell batch med möjlighet att konfigurera batchstorlek med alternativ som maxBytesPerTrigger (storleksalternativen varierar beroende på datakälla).

Azure Databricks stöder användning Trigger.AvailableNow för inkrementell batchbearbetning från många strukturerade strömningskällor. Följande tabell innehåller den lägsta databricks Runtime-version som stöds som krävs för varje datakälla:

Källa Minsta Databricks Runtime-version
Filkällor (JSON, Parquet osv.) 9.1 LTS
Delta Lake 10.4 LTS
Automatisk laddare 10.4 LTS
Apache Kafka 10.4 LTS
Kinesis 13,1

Vad är standardutlösarintervallet?

Strukturerad strömning har som standardinställning mikropartier med fast intervall på 500 ms. Databricks rekommenderar att du alltid anger en anpassad trigger för att minimera kostnaderna som är förknippade med att kontrollera om nya data har anlänt och bearbeta understora batcher.

Ändra utlösarintervall mellan körningar

Du kan ändra utlösarintervallet mellan körningar när du använder samma kontrollpunkt.

Om ett Structured Streaming-jobb stoppas medan en mikrobatch bearbetas, måste mikrobatchen slutföras innan det nya triggerintervallet tillämpas. Därför kan du observera en mikrobatchbearbetning med de tidigare angivna inställningarna när du har ändrat utlösarintervallet.

När du går från tidsbaserat intervall till att använda AvailableNowkan detta resultera i en mikrobatchbearbetning innan alla tillgängliga poster bearbetas som en inkrementell batch.

När du flyttar från AvailableNow till ett tidsbaserat intervall kan det leda till att du fortsätter att bearbeta alla poster som var tillgängliga när det senaste AvailableNow jobbet utlöstes. Detta är det förväntade beteendet.

Anteckning

Om du försöker återställa från ett frågefel som är associerat med en inkrementell batch löser det inte problemet genom att ändra utlösarintervallet eftersom batchen fortfarande måste slutföras. Databricks rekommenderar att du skalar upp den beräkningskapacitet som används för att bearbeta batchen för att försöka lösa problemet. I sällsynta fall kan du behöva starta om strömmen med en ny kontrollpunkt.

Vad är kontinuerlig processläge?

Apache Spark stöder ytterligare ett utlösarintervall som kallas kontinuerlig bearbetning. Det här läget har klassificerats som experimentellt sedan Spark 2.3. Kontakta ditt Azure Databricks-kontoteam för att se till att du förstår kompromisserna med den här bearbetningsmodellen.

Observera att det här läget för kontinuerlig bearbetning inte alls gäller kontinuerlig bearbetning enligt DLT.