Condividi tramite


Configurare le dimensioni batch di Structured Streaming in Azure Databricks

La limitazione della frequenza di input per le query structured streaming consente di mantenere dimensioni batch coerenti e impedisce a batch di grandi dimensioni di portare a perdite e ritardi di elaborazione micro batch a catena.

Azure Databricks offre le stesse opzioni per controllare le dimensioni batch di Structured Streaming sia per Delta Lake che per il caricatore automatico.

Limitare il tasso di input con maxFilesPerTrigger

L'impostazione di maxFilesPerTrigger (o cloudFiles.maxFilesPerTrigger per il caricatore automatico) specifica un limite superiore per il numero di file elaborati in ogni micro batch. Per Delta Lake e Auto Loader il valore predefinito è 1000. Si noti che questa opzione è presente anche in Apache Spark per altre origini file, dove per impostazione predefinita non esiste un valore massimo.

Limitare il tasso di input con maxBytesPerTrigger

L'impostazione maxBytesPerTrigger (o cloudFiles.maxBytesPerTrigger per il caricatore automatico) imposta un limite "soft max" per la quantità di dati elaborati in ogni micro-batch. Ciò significa che un batch elabora approssimativamente questa quantità di dati e può elaborare più del limite per far avanzare la query di streaming nei casi in cui l'unità di input più piccola è maggiore di questo limite. Non esiste alcuna impostazione predefinita per questa impostazione.

Ad esempio, se si specifica una stringa di byte, ad esempio 10g per limitare ogni microbatch a 10 GB di dati e si dispone di file di 3 GB ciascuno, Azure Databricks elabora 12 GB in un microbatch.

Impostazione di più tassi di input insieme

Se si usa maxBytesPerTrigger in combinazione con maxFilesPerTrigger, il micro batch elabora i dati fino a raggiungere il limite inferiore di maxFilesPerTrigger o maxBytesPerTrigger.

Limitazione delle frequenze di input per altre origini di streaming strutturato

Le sorgenti di streaming, come Apache Kafka, hanno limiti di input personalizzati, ad esempio maxOffsetsPerTrigger. Per altre informazioni, vedere Configurare le origini dati di streaming.