Grootte van structured streaming-batch configureren in Azure Databricks
Het beperken van de invoersnelheid voor Structured Streaming-query's helpt bij het handhaven van een consistente batchgrootte en voorkomt dat grote batches leiden tot lekkage en trapsgewijze vertragingen in microbatchverwerking.
Azure Databricks biedt dezelfde opties voor het beheersen van de batchgroottes van gestructureerde streaming voor zowel Delta Lake als Auto Loader.
Invoersnelheid beperken met maxFilesPerTrigger
Als u maxFilesPerTrigger
(of cloudFiles.maxFilesPerTrigger
voor automatisch laden) instelt, wordt een bovengrens opgegeven voor het aantal bestanden dat in elke microbatch wordt verwerkt. Voor delta lake en automatisch laadprogramma is de standaardwaarde 1000. (Houd er rekening mee dat deze optie ook aanwezig is in Apache Spark voor andere bestandsbronnen, waarbij standaard geen maximum is.)
Invoersnelheid beperken met maxBytesPerTrigger
Als u maxBytesPerTrigger
(of cloudFiles.maxBytesPerTrigger
voor automatisch laden) instelt, wordt een 'voorlopig maximum' ingesteld voor de hoeveelheid gegevens die in elke microbatch wordt verwerkt. Dit betekent dat een batch ongeveer deze hoeveelheid gegevens verwerkt en meer dan de limiet kan verwerken om de streamingquery verder te laten gaan in gevallen waarin de kleinste invoereenheid groter is dan deze limiet. Er is geen standaardinstelling voor deze instelling.
Als u bijvoorbeeld een bytetekenreeks opgeeft, zoals 10g
om elke microbatch te beperken tot 10 GB aan gegevens en u bestanden hebt die elk 3 GB zijn, verwerkt Azure Databricks 12 GB in een microbatch.
Meerdere invoersnelheden samen instellen
Als u maxBytesPerTrigger
gebruikt in combinatie met maxFilesPerTrigger
, verwerkt de microbatch gegevens totdat de ondergrens van maxFilesPerTrigger
of maxBytesPerTrigger
bereikt.
Invoersnelheden voor andere gestructureerde streamingbronnen beperken
Streamingbronnen zoals Apache Kafka hebben elk aangepaste invoerlimieten, zoals maxOffsetsPerTrigger
. Zie Streaminggegevensbronnen configurerenvoor meer informatie.