Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt uitgelegd hoe u triggerintervallen configureert voor Gestructureerd streamen in Azure Databricks.
Met Apache Spark Structured Streaming worden gegevens incrementeel verwerkt. Triggerintervallen bepalen hoe vaak structured streaming controleert op nieuwe gegevens. U kunt triggerintervallen configureren voor bijna realtime verwerking, voor geplande databasevernieuwingen of batchverwerking van alle nieuwe gegevens voor een dag of een week.
Omdat What is Auto Loader? gebruikt Structured Streaming om gegevens te laden, inzicht in hoe triggers werken, biedt u de grootste flexibiliteit om de kosten te beheren tijdens het opnemen van gegevens met de gewenste frequentie.
Overzicht van triggermodi
De volgende tabel bevat een overzicht van de triggermodi die beschikbaar zijn in Structured Streaming:
| Triggermodus | Syntaxisvoorbeeld (Python) | Geschikt voor |
|---|---|---|
| Niet opgegeven (standaard) | N/A | Algemeen streamen met 3-5 seconden latentie. Gelijk aan de processingTime-trigger met intervallen van 0 ms. Stroomverwerking wordt continu uitgevoerd zolang er nieuwe gegevens binnenkomen. |
| Verwerkingstijd | .trigger(processingTime='10 seconds') |
Balans tussen kosten en prestaties. Vermindert overhead door te voorkomen dat het systeem te vaak op gegevens controleert. |
| Nu beschikbaar | .trigger(availableNow=True) |
Geplande incrementele batchverwerking. Verwerkt zoveel gegevens als beschikbaar is op het moment dat de streamingtaak wordt geactiveerd. |
| Real-time modus | .trigger(realTime='5 minutes') |
Operationele workloads met ultra lage latentie die sub-secondeverwerking vereisen, zoals fraudedetectie of realtime persoonlijke instellingen. Publieke preview. '5 minuten' geeft de lengte van een microbatch aan. Gebruik vijf minuten om de overhead per batch te minimaliseren, zoals het compileren van query's. |
| Doorlopend | .trigger(continuous='1 second') |
Wordt niet ondersteund. Dit is een experimentele functie die is opgenomen in Spark OSS. Gebruik in plaats daarvan de realtimemodus. |
processingTime: tijdgebaseerde triggerintervallen
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').
De configuratie van dit interval bepaalt hoe vaak het systeem controles uitvoert om te zien of er nieuwe gegevens zijn aangekomen. Configureer de verwerkingstijd om de latentievereisten te verdelen en de snelheid waarmee gegevens in de bron binnenkomen.
AvailableNow: Incrementele batchverwerking
Belangrijk
In Databricks Runtime 11.3 LTS en hoger is Trigger.Once afgeschaft. Gebruiken Trigger.AvailableNow voor alle incrementele batchverwerkingsworkloads.
De AvailableNow triggeroptie verbruikt alle beschikbare records als een incrementele batch met de mogelijkheid om batchgrootte te configureren met opties zoals maxBytesPerTrigger. De grootteopties variƫren per gegevensbron.
Ondersteunde gegevensbronnen
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 Lange Termijn Ondersteuning (LTS) |
| Delta Lake | 10.4 LTS |
| Automatisch laden | 10.4 LTS |
| Apache Kafka | 10.4 LTS |
| Beweging | 13.1 |
realTime: operationele workloads met ultra lage latentie
Belangrijk
Deze functie bevindt zich in openbare preview-versie.
De realtimemodus voor Structured Streaming bereikt end-to-end latentie onder de 1 seconde aan de staart en in veelvoorkomende gevallen ongeveer 300 ms. Zie de realtime-modus in Structured Streaming voor meer informatie over het effectief configureren en gebruiken van realtimemodus.
Apache Spark heeft een extra triggerinterval dat continue verwerking wordt genoemd. Deze modus is geclassificeerd als experimenteel sinds Spark 2.3. Azure Databricks biedt geen ondersteuning voor deze modus of raadt deze modus aan. Gebruik in plaats daarvan de realtimemodus voor use cases met lage latentie.
Notitie
De modus voor continue verwerking op deze pagina is niet gerelateerd aan continue verwerking in declaratieve Pijplijnen van Lakeflow Spark.
Triggerintervallen tussen uitvoeringen wijzigen
U kunt het triggerinterval tussen uitvoeringen wijzigen terwijl u hetzelfde controlepunt gebruikt.
Gedrag bij het wijzigen van intervallen
Als een structured streaming-taak stopt terwijl een microbatch wordt verwerkt, moet die microbatch worden voltooid voordat het nieuwe triggerinterval van toepassing is. Als gevolg hiervan kunt u een microbatchverwerking met de eerder opgegeven instellingen observeren nadat u het triggerinterval hebt gewijzigd. Hier volgt een beschrijving van het verwachte gedrag bij de overgang:
Overstappen van tijdsinterval naar
AvailableNow: Een micro-batch kan al verwerkt worden voordat alle beschikbare records als een incrementele batch verwerkt zijn.Overstappen van interval op basis van
AvailableNowtijd: Verwerking kan worden voortgezet voor alle records die beschikbaar waren toen de laatsteAvailableNowtaak werd geactiveerd. Dit is te verwachten gedrag.
Herstellen van queryfouten
Notitie
Als u probeert te herstellen van een queryfout die is gekoppeld aan een incrementele batch, lost u dit probleem niet op door het triggerinterval te wijzigen, omdat de batch nog steeds moet worden voltooid. Schaal de rekencapaciteit op 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.