Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'opzione cloudFiles.useManagedFileEvents con il caricatore automatico consente un'individuazione efficiente dei file.
Come funziona il caricatore automatico con gli eventi di file?
Il caricatore automatico con gli eventi di file usa la funzionalità di notifica degli eventi file fornita dai fornitori di servizi cloud. È possibile configurare i contenitori di archiviazione cloud per pubblicare notifiche in caso di eventi di file, ad esempio la creazione e la modifica di nuovi file. Ad esempio, con le notifiche degli eventi amazon S3, un nuovo arrivo di file può attivare una notifica a un argomento amazon SNS (vedere la struttura del contenuto di notifica Amazon S3 per informazioni dettagliate). È quindi possibile iscrivere una coda Amazon SQS al topic SNS per l'elaborazione asincrona dell'evento.
Gli eventi di file di Azure Databricks sono un servizio che configura le risorse cloud per l'ascolto degli eventi di file. In alternativa, è possibile configurare manualmente le risorse cloud e fornire la propria coda di archiviazione.
Dopo aver configurato le risorse cloud, il servizio elabora le notifiche degli eventi dei file e memorizza nella cache i metadati dei file. Il caricatore automatico usa questa cache per individuare i file quando viene eseguito con cloudFiles.useManagedFileEvents impostato su true.
Quando un flusso viene eseguito per la prima volta con cloudFiles.useManagedFileEvents impostato su true, Auto Loader esegue un elenco completo delle directory del percorso di caricamento per individuare tutti i file e sincronizzarsi con la cache degli eventi dei file (assicurarsi una posizione di lettura valida nella cache e salvarla nel checkpoint del flusso). Le esecuzioni successive del caricatore automatico individuano nuovi file leggendo direttamente dalla cache degli eventi di file usando la posizione di lettura archiviata e non richiedono l'elenco di directory.
Databricks consiglia di eseguire i flussi del caricatore automatico almeno una volta ogni sette giorni per sfruttare i vantaggi dell'individuazione incrementale dei file dalla cache. Se non si esegue Auto Loader almeno con questa frequenza, la posizione di lettura archiviata diventa non valida e Auto Loader deve eseguire un elenco completo della directory per sincronizzarsi con la cache degli eventi dei file.
Modalità eventi dei file rispetto alla modalità classica di notifica dei file
Questo diagramma confronta la modalità eventi di file e la modalità di notifica file classica.
In modalità eventi relativi ai file, un singolo servizio gestito per gli eventi relativi ai file si connette allo spazio di archiviazione cloud del cliente. Crea un argomento SNS condiviso, una coda SQS e una sottoscrizione SNS-to-SQS condivisi, utilizzati da più consumer, inclusi Auto Loader e Triggers. Nella modalità classica di notifica dei file, ogni consumer richiede una propria sottoscrizione agli eventi e una propria coda, con conseguente creazione di più pipeline di notifica distinte per ciascun bucket.
La modalità eventi file presenta diversi vantaggi rispetto alla modalità di notifica file classica. Principalmente, richiede una sola coda per tutti i flussi del caricatore automatico in un bucket, consentendo di evitare il limite di notifiche per bucket. Per altre informazioni, vedere Modalità di notifica file con e senza eventi di file abilitati in percorsi esterni.
Quando il caricatore automatico con eventi di file usa l'elenco di directory?
Il caricatore automatico esegue un elenco di directory completo quando:
- Avvio di un nuovo flusso.
- Migrazione di un flusso dall'elenco di directory o dalle notifiche di file classiche.
- Il caricatore automatico con eventi di file non viene eseguito per più di sette giorni.
- Si apportano aggiornamenti alla posizione esterna che invalidano la posizione di lettura di Auto Loader. Ad esempio, quando si disattivano e si riattivano gli eventi di file, quando si modifica il percorso della posizione esterna o quando si specifica una coda diversa per la posizione esterna.
Il caricatore automatico esegue sempre un elenco completo alla prima esecuzione, anche quando includeExistingFiles è impostato su false. Questo flag consente di inserire tutti i file creati dopo l'ora di inizio del flusso. Il caricatore automatico elenca l'intera directory per individuare tutti i file creati dopo l'ora di inizio del flusso, stabilisce una posizione di lettura nella cache degli eventi del file e lo archivia nel checkpoint. Le esecuzioni successive leggono direttamente dalla cache degli eventi di file e non richiedono un elenco di directory.
Il servizio di eventi relativi ai file di Azure Databricks esegue anche elenchi completi di directory sull'ubicazione esterna per verificare che non abbia perso alcun file (ad esempio, se la coda fornita non è configurata correttamente). Il primo elenco completo della directory inizia non appena gli eventi relativi ai file vengono abilitati nella posizione esterna. Ogni successivo elenco avviene 24 ore dopo l'ultima scansione completa, purché vi sia almeno un flusso Auto Loader che utilizza eventi di file per acquisire i dati.
Procedure consigliate per il caricatore automatico con eventi di file
Seguire queste procedure consigliate per ottimizzare le prestazioni e l'affidabilità quando si usa Il caricatore automatico con eventi di file.
Usare volumi per l'individuazione ottimale dei file
Per migliorare le prestazioni, Databricks consiglia di creare un volume esterno per ogni percorso o sottodirectory che il caricatore automatico carica i dati da e fornisce percorsi di volume (ad esempio, /Volumes/someCatalog/someSchema/someVolume) al caricatore automatico anziché ai percorsi cloud , ad esempio s3://bucket/path/to/volume. Questo consente di ottimizzare l'individuazione dei file perché il caricatore automatico può elencare il volume usando un modello di accesso ai dati ottimizzato.
Prendere in considerazione i trigger di arrivo dei file per le pipeline guidate dagli eventi
Per l'elaborazione dei dati basata su eventi, è consigliabile usare un trigger di arrivo dei file anziché una pipeline continua. I trigger di arrivo dei file avviano automaticamente la pipeline quando arrivano nuovi file, offrendo un migliore utilizzo delle risorse e un'efficienza dei costi perché il cluster viene eseguito solo quando sono presenti nuovi file da elaborare.
Configura intervalli adeguati con trigger continui
Databricks consiglia di usare i trigger di arrivo dei file per elaborare i file non appena arrivano. Tuttavia, se il caso d'uso richiede una latenza inferiore usando trigger continui come Trigger.ProcessingTime, Databricks consiglia di configurare gli intervalli di trigger in 1 minute o versione successiva. In Lakeflow Spark Declarative Pipelines, imposta questo valore usando pipelines.trigger.interval. Ciò riduce la frequenza di polling per verificare se sono arrivati nuovi file e consente l'esecuzione simultanea di un numero più elevato di flussi dall'area di lavoro.
Per i requisiti di bassa latenza, prendere in considerazione invece la modalità di notifica file classica . Gli eventi dei file introducono un ulteriore passaggio di memorizzazione nella cache tra l'archiviazione cloud e Auto Loader, che può aumentare la latenza rispetto alla lettura diretta dalla coda cloud.
Limitazioni del caricatore automatico con eventi di file
Il caricatore automatico non supporta la riscrittura del percorso. Le riscritture di percorso si applicano quando vengono montati più bucket o contenitori in DBFS, ovvero un modello di utilizzo deprecato.
Per un elenco generale delle limitazioni degli eventi di file, vedere Limitazioni degli eventi di file.