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 incrementele batchverwerking van veel structured streaming-bronnen. De volgende tabel bevat de minimaal ondersteunde Databricks Runtime-versie die is vereist voor elke gegevensbron:

Source 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 u aan altijd een op maat gemaakte kosten op trigger te geven die zijn gekoppeld aan het controleren of er nieuwe gegevens zijn aangekomen en de verwerking van ondergetekende batches.

Triggerintervallen tussen uitvoeringen 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 tijdsinterval naar gebruik AvailableNow, kan dit leiden tot een microbatchverwerking voordat alle beschikbare records als een incrementele batch worden verwerkt.

Wanneer u overstapt van AvailableNow een tijdsinterval naar een tijdsinterval, kan dit ertoe leiden dat alle records die beschikbaar waren toen de laatste AvailableNow taak werd geactiveerd, blijven verwerken. 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 betrekking heeft op continue verwerking zoals toegepast in Delta Live Tables.