Condividi tramite


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'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 Python che SQL nelle pipeline dichiarative di 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://)

  • Archiviazione BLOB di Azure (wasbs://)

    Nota

    Il driver Blob di Archiviazione di Windows Azure obsoleto (WASB) è stato ritirato. ABFS offre numerosi vantaggi rispetto a WASB. Consulta la documentazione di Azure sull'ABFS. Per la documentazione relativa all'uso del driver WASB legacy, vedere Connettersi all'archiviazione BLOB di Azure con WASB (legacy).

  • File system di Databricks (DBFS, dbfs:/).

Il caricatore automatico può ingerire i formati di file JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT e BINARYFILE.

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 dichiarative di Lakeflow

Databricks consiglia il caricatore automatico nelle pipeline dichiarative di Lakeflow per l'inserimento incrementale dei dati. Le pipeline dichiarative di Lakeflow estendono la funzionalità in Apache Spark Structured Streaming e consentono di scrivere solo alcune righe di Python dichiarativo o SQL per distribuire una pipeline di dati di qualità di produzione con:

  • Scalabilità automatica dell'infrastruttura di calcolo per risparmiare sui costi
  • Controlli di qualità dei dati con aspettative
  • Gestione automatica dell'evoluzione dello schema
  • Monitoraggio tramite metriche nel registro eventi

Non è necessario specificare uno schema o un percorso di checkpoint perché le impostazioni sono gestite automaticamente dalle pipeline dichiarative di Lakeflow per le tue pipeline. Consulta Carica dati attraverso le pipeline dichiarative di Lakeflow.

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

Vedere gli articoli seguenti per iniziare a configurare l'inserimento incrementale dei dati usando il caricatore automatico con le pipeline dichiarative di Lakeflow:

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à.

Per un elenco completo delle opzioni del caricatore automatico, vedere:

Se si verificano prestazioni impreviste, vedere le domande frequenti.

Configurare le modalità di rilevamento file di Auto Loader

Il caricatore automatico supporta due modalità di rilevamento file. Vedere:

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 Flussi del caricatore automatico con la 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.