Konfigurera batchstorlek för strukturerad direktuppspelning i Azure Databricks
Genom att begränsa indatahastigheten för frågor med strukturerad direktuppspelning kan du upprätthålla en konsekvent batchstorlek och förhindra att stora batchar leder till spill och sammanhängande fördröjningar i bearbetningen av mikrobatch.
Azure Databricks har samma alternativ för att styra batchstorlekar för strukturerad direktuppspelning för både Delta Lake och Auto Loader.
Begränsa indatahastigheten med maxFilesPerTrigger
Inställningen maxFilesPerTrigger
(eller cloudFiles.maxFilesPerTrigger
för Automatisk inläsare) anger en övre gräns för antalet filer som bearbetas i varje mikrobatch. För både Delta Lake och Auto Loader är standardvärdet 1 000. (Observera att det här alternativet också finns i Apache Spark för andra filkällor, där det inte finns något maxvärde som standard.)
Begränsa indatahastigheten med maxBytesPerTrigger
Inställningen maxBytesPerTrigger
(eller cloudFiles.maxBytesPerTrigger
för automatisk inläsning) anger ett "mjukt maxvärde" för mängden data som bearbetas i varje mikrobatch. Det innebär att en batch bearbetar ungefär den här mängden data och kan bearbeta mer än gränsen för att få strömningsfrågan att gå framåt i de fall då den minsta indataenheten är större än den här gränsen. Det finns inget standardvärde för den här inställningen.
Om du till exempel anger en bytesträng som 10g
att begränsa varje mikrobatch till 10 GB data och du har filer som är 3 GB vardera, bearbetar Azure Databricks 12 GB i en mikrobatch.
Ställa in flera indatafrekvenser tillsammans
Om du använder maxBytesPerTrigger
tillsammans med maxFilesPerTrigger
bearbetar mikrobatchdata tills du når den nedre gränsen för antingen maxFilesPerTrigger
eller maxBytesPerTrigger
.
Begränsa indatafrekvenser för andra strukturerade direktuppspelningskällor
Strömmande källor som Apache Kafka har anpassade indatagränser, till exempel maxOffsetsPerTrigger
. Mer information finns i Konfigurera strömmande datakällor.