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'Autoloader elabora in modo incrementale ed efficiente nuovi file di dati man mano che arrivano nell'archiviazione cloud senza alcuna configurazione aggiuntiva.
Come funziona il caricatore automatico?
Il caricatore automatico elabora in modo incrementale ed efficiente i nuovi file di dati man mano che raggiungono la memorizzazione cloud. Fornisce un'origine Structured Streaming denominata cloudFiles. Dato un percorso di directory di input nell'archivio di file cloud, l'origine cloudFiles elabora automaticamente i nuovi file non appena arrivano, con la possibilità di elaborare anche i file già presenti in tale directory. Il caricatore automatico supporta sia le pipeline di Python che SQL in Lakeflow.
È possibile usare il caricatore automatico per elaborare miliardi di file per eseguire la migrazione o il riempimento di una tabella. Ridimensionamento automatico del caricatore per supportare l'inserimento quasi in tempo reale di milioni di file all'ora.
Sorgenti del caricatore automatico supportate
Il caricatore automatico può caricare i file di dati dalle origini seguenti:
Amazon S3 (
s3://)Azure Data Lake Storage (ADLS,
abfss://)Google Cloud Storage (GCS,
gs://)Volumi del catalogo Unity (
/Volumes/)Archiviazione BLOB di Azure (
wasbs://)Note
Il driver legacy Windows Archiviazione di Azure Blob (WASB) non è più supportato. ABFS offre numerosi vantaggi rispetto a WASB. Vedi la documentazione di Azure su ABFS. Per la documentazione relativa all'uso del driver WASB legacy, vedere Connect to Archiviazione BLOB di Azure with WASB (legacy).
Il caricatore automatico può ingerire i formati di file JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT e BINARYFILE. Il caricatore automatico supporta anche la lettura di file precompressi in questi formati. Per i tipi di compressione supportati in base al formato, vedere Opzioni di formato dati.
In che modo il caricatore automatico tiene traccia dello stato di avanzamento dell'inserimento?
Quando vengono individuati i file, i relativi metadati vengono salvati in modo permanente in un archivio chiave-valore scalabile (RocksDB) nel percorso del checkpoint della pipeline dell'Auto Loader. Questo archivio chiave-valore garantisce che i dati vengano elaborati esattamente una volta.
In caso di errori, il Caricatore Automatico può riprendere grazie alle informazioni archiviate nella posizione del checkpoint e continuare a fornire garanzie di esecuzione unica durante la scrittura dei dati in Delta Lake. Non è necessario mantenere o gestire uno stato per ottenere la tolleranza di errore o la semantica esattamente una volta.
Inserimento incrementale tramite il caricatore automatico con le pipeline Lakeflow
Databricks consiglia il caricatore automatico nelle pipeline di Lakeflow per l'inserimento incrementale dei dati. Non è necessario specificare uno schema o una posizione del checkpoint perché le pipeline di Lakeflow gestiscono automaticamente queste impostazioni per le pipeline. Vedere Configurare il caricatore automatico per i carichi di lavoro di produzione per la configurazione consigliata.
Databricks consiglia anche il caricamento automatico ogni volta che si usa Apache Spark Structured Streaming per inserire dati dall'archiviazione di oggetti cloud. Le API sono disponibili in Python e Scala.
Introduzione al caricatore automatico di Databricks
Consulta i seguenti articoli per iniziare a configurare l'inserimento incrementale dei dati con Auto Loader e le pipeline Lakeflow:
- Tutorial: Creazione di una pipeline ETL con le pipeline Lakeflow
- Impostare l'inserimento incrementale da Azure Data Lake Storage
Esempi: modelli comuni di caricatore automatico
Per esempi di modelli comuni di caricamento automatico, vedere Modelli comuni di caricamento dei dati.
Configurare le opzioni del caricatore automatico
Per un riferimento completo delle opzioni di configurazione che controllano la modalità di lettura e elaborazione dei file da parte del caricatore automatico, vedere Caricamento automatico.
Personalizzare il caricatore automatico
È possibile ottimizzare il caricatore automatico in base al volume di dati, alla varietà e alla velocità.
- Configurare l'inferenza dello schema e l'evoluzione nel caricatore automatico: configurare il modo in cui il caricatore automatico deduce ed evolve lo schema dei dati nel tempo, inclusa la gestione di nuove colonne e modifiche al tipo.
- Estensione automatica dei tipi con caricatore automatico
- Configurare il caricatore automatico per i carichi di lavoro di produzione: ottimizzare il caricatore automatico per l'affidabilità e le prestazioni nell'ambiente di produzione, inclusi checkpoint, gestione degli errori e gestione della conservazione dei file.
- Conservazione dei dati di origine: archiviare o eliminare automaticamente i file dopo l'inserimento per ridurre i costi di archiviazione e velocizzare l'individuazione dei file.
- Monitorare e osservare il caricatore automatico: monitorare le metriche chiave, eseguire query sullo stato di inserimento a livello di file, compilare dashboard di osservabilità e risolvere i problemi comuni.
Se si verificano prestazioni impreviste, vedere Domande frequenti sul caricatore automatico.
Configurare le modalità di rilevamento file di Auto Loader
Il caricatore automatico supporta due modalità di rilevamento file. Per impostazione predefinita, Auto Loader usa la modalità di elenco delle directory. Databricks consiglia tuttavia la modalità di notifica dei file usando gli eventi di file per la maggior parte dei carichi di lavoro. See:
- Configurare i flussi di Auto Loader in modalità elenco directory
- Configurare i flussi di Auto Loader in modalità notifica file
Gestire i dati non ordinati
Il caricatore automatico non garantisce l'ordine in cui i file vengono individuati o elaborati, indipendentemente dal fatto che si usi la modalità di elenco di directory o di notifica file. Usare le strategie seguenti per progettare le pipeline per gestire gli arrivi di file non ordinati.
Pipeline di Lakeflow con AUTO CDC
Se si utilizzano le pipeline Lakeflow con Auto Loader e AUTO CDC, configurare la conservazione dei tombstone in modo che i record eliminati vengano mantenuti abbastanza a lungo da gestire gli arrivi di file fuori ordine. Impostare la proprietà pipelines.cdc.tombstoneGCThresholdInSeconds sulla tabella di streaming di destinazione a un valore che supera il ritardo massimo previsto tra l'arrivo degli eventi e l'esecuzione della pipeline. La conservazione predefinita è di due giorni. Per informazioni dettagliate, vedere create_auto_cdc_flow.
Structured Streaming senza pipeline di Lakeflow
Se si utilizza Apache Spark Structured Streaming direttamente con Auto Loader (senza pipeline Lakeflow), considerare i seguenti schemi per gestire i dati fuori ordine:
- Preferisci le eliminazioni temporanee alle eliminazioni permanenti: tieni traccia di un flag e di un
deletedtimestamp anziché rimuovere le righe, in modo che un'eliminazione ritardata non entri in conflitto con i record precedenti. - Confrontare i timestamp prima di applicare gli aggiornamenti: quando si esegue l'upserting, confrontare il timestamp di aggiornamento del record in ingresso con il timestamp corrente della riga di destinazione per evitare la sovrascrittura con dati non aggiornati.
Vantaggi del caricatore automatico sull'uso di Structured Streaming direttamente nei file
In Apache Spark è possibile leggere i file in modo incrementale usando spark.readStream.format(fileFormat).load(directory). Il caricatore automatico offre i vantaggi seguenti rispetto all'origine file:
- Scalabilità: il caricatore automatico può individuare miliardi di file in modo efficiente. I backfill possono essere eseguiti in modo asincrono per evitare di sprecare risorse di calcolo.
- Prestazioni: Il costo di scoperta dei file con il Caricatore Automatico si ridimensiona in base al numero di file importati anziché al numero di directory in cui possono essere posizionati. Consulta le configurazioni di stream del caricatore automatico in modalità elenco directory.
- Supporto dell'inferenza e dell'evoluzione dello schema: il caricatore automatico può rilevare le deviazioni dello schema, notificare quando si verificano modifiche dello schema e salvare i dati che sarebbero stati altrimenti ignorati o persi. Vedere Come funziona l'inferenza dello schema del caricatore automatico?.
- Costo: il caricatore automatico usa API cloud native per ottenere elenchi di file esistenti nell'archiviazione. Inoltre, la modalità di notifica file del caricatore automatico può contribuire a ridurre ulteriormente i costi del cloud evitando completamente l'elenco delle directory. Il caricatore automatico può configurare automaticamente i servizi di notifica file nell'archiviazione per rendere l'individuazione dei file molto più economica.