Che cos'è il caricatore automatico?
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'archiviazione file cloud, l'origine cloudFiles
elabora automaticamente i nuovi file non appena arrivano, con la possibilità di elaborare anche i file esistenti in tale directory. Il caricatore automatico supporta sia Python che SQL in Delta Live Tables.
È possibile utilizzare Auto Loader per elaborare miliardi di file per eseguire la migrazione o il ripristino di un table. Ridimensionamento automatico del caricatore per supportare l'inserimento quasi in tempo reale di milioni di file all'ora.
Origini del caricatore automatico supportate
Il caricatore automatico può caricare i file di dati dalle origini seguenti:
Amazon S3 (
s3://
)Azure Data Lake Storage Gen2 (ADLS Gen2,
abfss://
)Google Cloud Storage (GCS,
gs://
)Archiviazione BLOB di Azure (
wasbs://
)Nota
Il driver BLOB di Windows Archiviazione di Azure legacy (WASB) è stato deprecato. ABFS offre numerosi vantaggi rispetto a WASB. Vedere la documentazione di Azure in ABFS. Per la documentazione relativa all'uso del driver WASB legacy, vedere Connettersi a Archiviazione BLOB di Azure con WASB (legacy).
ADLS Gen1 (
adl://
)Nota
Azure ha annunciato il ritiro in sospeso di Azure Data Lake Storage Gen1. Databricks consiglia di eseguire la migrazione di tutti i dati da Azure Data Lake Storage Gen1 ad Azure Data Lake Storage Gen2. Se non è ancora stata eseguita la migrazione, vedere Accesso ad Azure Data Lake Storage Gen1 da Azure Databricks.
File system di Databricks (DBFS,
dbfs:/
).
Il caricatore automatico può inserire JSON
i formati di file , CSV
XML
PARQUET
AVRO
ORC
TEXT
, , , e .BINARYFILE
In che modo il caricatore automatico tiene traccia dello stato di avanzamento dell'inserimento?
Man mano che 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 del caricatore automatico. Questo archivio chiave-valore garantisce che i dati vengano elaborati esattamente una volta.
In caso di errori, il caricatore automatico può riprendere da where interrotto dalle informazioni archiviate nel percorso del checkpoint e continuare a fornire garanzie di tipo exactly-once durante la scrittura di 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 Delta Live Tables
Databricks consiglia Auto Loader in Delta Live Tables per l'ingestione incrementale dei dati. Delta Live Tables estende la funzionalità di Apache Spark Structured Streaming e permette di scrivere solo alcune righe di Python dichiarativo o SQL per distribuire una pipeline di dati di livello professionale con:
- Scalabilità automatica dell'infrastruttura di calcolo per risparmiare sui costi
- Controlli di qualità dei dati con aspettative
- Gestione automatica schema
- Monitoraggio tramite metriche nel registro eventi
Non è necessario fornire un schema o una posizione di checkpoint, dato che Delta Live Tables gestisce automaticamente queste impostazioni per le tue pipeline. Vedere Caricare dati con Delta Live Tables.
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.
Get ha iniziato con Databricks Auto Loader
Vedere gli articoli seguenti per get iniziato a configurare l'inserimento incrementale dei dati usando il caricatore automatico con Delta Live Tables:
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
È possibile ottimizzare il caricatore automatico in base al volume di dati, alla varietà e alla velocità.
- Configurare l'inferenza e l'evoluzione di schema in Auto Loader
- Configurare il caricatore automatico per i carichi di lavoro di produzione
Per un list completo delle opzioni del caricatore automatico, vedere:
Se si verificano prestazioni impreviste, vedere le domande frequenti.
Configurare le modalità di rilevamento file del caricatore automatico
Il caricatore automatico supporta due modalità di rilevamento file. Vedere:
- Che cos'è la modalità elenco directory del caricatore automatico?
- Che cos'è la modalità di notifica file del caricatore automatico?
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 dell'individuazione dei file con il caricatore automatico viene ridimensionato con il numero di file inseriti invece del numero di directory in cui possono essere inseriti i file. Vedere Che cos'è la modalità elenco directory del caricatore automatico?.
- Schema supporto dell'inferenza e dell'evoluzione: il Auto Loader può rilevare schema deviazioni, notificare quando si verificano schema modifiche e recuperare i dati che sarebbero stati altrimenti ignorati o persi. Consulta Come funziona l'inferenza del caricatore automatico schema?.
- Costo: il caricatore automatico usa API cloud native per get elenchi di file presenti 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ò set automaticamente i servizi di notifica file nell'archiviazione per rendere l'individuazione dei file molto più economica.