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 maxFilesPerTriggerbearbetar 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.