Delen via


Triggerintervallen voor gestructureerd streamen configureren

Apache Spark Structured Streaming verwerkt gegevens incrementeel; door het triggerinterval voor batchverwerking te beheren, kunt u Structured Streaming gebruiken voor workloads, waaronder bijna realtime verwerking, het vernieuwen van databases om de 5 minuten of eenmaal per uur, of batchverwerking van alle nieuwe gegevens voor een dag of week.

Omdat Databricks Auto Loader gebruikmaakt van Structured Streaming om gegevens te laden, biedt inzicht in hoe triggers werken u de grootste flexibiliteit om de kosten te beheren terwijl u gegevens opneemt met de gewenste frequentie.

Tijdgebonden triggerintervallen opgeven

Structured Streaming verwijst naar tijdgebaseerde triggerintervallen als 'microbatches met vaste interval'. Geef met behulp van het processingTime trefwoord een tijdsduur op als een tekenreeks, zoals .trigger(processingTime='10 seconds').

Wanneer u een trigger interval opgeeft dat te klein is (minder dan tien seconden), kan het systeem onnodige controles uitvoeren om te zien of er nieuwe gegevens binnenkomen. Configureer de verwerkingstijd om de latentievereisten te verdelen en de snelheid waarmee gegevens in de bron binnenkomen.

Incrementele batchverwerking configureren

Belangrijk

In Databricks Runtime 11.3 LTS en hoger is de Trigger.Once instelling afgeschaft. Databricks raadt u Trigger.AvailableNow aan voor alle incrementele batchverwerkingsworkloads.

De beschikbare triggeroptie gebruikt alle beschikbare records als een incrementele batch met de mogelijkheid om batchgrootte te configureren met opties zoals maxBytesPerTrigger (grootteopties variƫren per gegevensbron).

Azure Databricks biedt ondersteuning voor het gebruik van Trigger.AvailableNow voor incrementele batchverwerking van veel Structured Streaming-bronnen. De volgende tabel bevat de minimaal ondersteunde Databricks Runtime-versie die is vereist voor elke gegevensbron:

Bron Minimale Databricks Runtime-versie
Bestandsbronnen (JSON, Parquet, enzovoort) 9.1 LTS
Delta Lake 10.4 LTS
Automatisch laden 10.4 LTS
Apache Kafka 10.4 LTS
Kinesis 13.1

Wat is het standaardtriggerinterval?

Structured Streaming is standaard ingesteld op microbatches met vaste intervalgrootten van 500 ms. Databricks raadt aan altijd een op maat gemaakte trigger op te geven om de kosten te minimaliseren die samenhangen met het controleren of er nieuwe gegevens zijn aangekomen en het verwerken van te kleine batches.

Triggerintervallen tussen runs wijzigen

U kunt het triggerinterval tussen uitvoeringen wijzigen terwijl u hetzelfde controlepunt gebruikt.

Als een structured streaming-taak stopt terwijl een microbatch wordt verwerkt, moet die microbatch worden voltooid voordat het nieuwe triggerinterval van toepassing is. Als zodanig kunt u een microbatchverwerking met de eerder opgegeven instellingen observeren nadat u het triggerinterval hebt gewijzigd.

Wanneer u overstapt van een op tijd gebaseerde interval naar het gebruik van AvailableNow, kan dit resulteren in het eerder verwerken van microbatches voordat alle beschikbare records als een incrementele batch worden verwerkt.

Wanneer u overstapt van AvailableNow naar een op tijd gebaseerd interval, kan dit ertoe leiden dat u doorgaat met het verwerken van alle records die beschikbaar waren toen de laatste AvailableNow taak werd geactiveerd. Dit is normaal gedrag.

Notitie

Als u probeert te herstellen van een queryfout die is gekoppeld aan een incrementele batch, lost het wijzigen van het triggerinterval dit probleem niet op omdat de batch nog steeds moet worden voltooid. Databricks raadt aan de rekencapaciteit op te schalen die wordt gebruikt om de batch te verwerken om het probleem op te lossen. In zeldzame gevallen moet u de stream mogelijk opnieuw opstarten met een nieuw controlepunt.

Wat is de modus voor continue verwerking?

Apache Spark ondersteunt een extra triggerinterval dat continue verwerking wordt genoemd. Deze modus is geclassificeerd als experimenteel sinds Spark 2.3; neem contact op met uw Azure Databricks-accountteam om er zeker van te zijn dat u de afwegingen van dit verwerkingsmodel begrijpt.

Houd er rekening mee dat deze modus voor continue verwerking helemaal niet gerelateerd is aan continue verwerking zoals toegepast in DLT.