Condividi tramite


Configurare la dimensione del batch di Structured Streaming su Azure Databricks

Questo articolo illustra come usare i controlli di ammissione per mantenere dimensioni batch coerenti per le query di streaming.

I controlli di ammissione limitano la frequenza di input per le query di Structured Streaming, il che può aiutare a mantenere una dimensione batch coerente e impedire che batch di grandi dimensioni causino spill e ritardi nell'elaborazione micro-batch e 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.

Nota

È possibile modificare le impostazioni del controllo di ammissione senza reimpostare il checkpoint per una query di streaming. Consulta Ripristinare dopo le modifiche in una query di Structured Streaming.

La modifica delle impostazioni del controllo di ammissione per aumentare o ridurre le dimensioni del batch ha implicazioni sulle prestazioni. Per ottimizzare il carico di lavoro, potrebbe essere necessario modificare le configurazioni di calcolo.

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 altri dettagli, vedere Connettori Standard in Lakeflow Connect.