¿Qué es el cargador automático?

El cargador automático procesa de forma incremental y eficaz nuevos archivos de datos a medida que llegan al almacenamiento en la nube sin necesidad de configuración adicional.

¿Cómo funciona Auto Loader?

El cargador automático procesa de forma incremental y eficaz nuevos archivos de datos a medida que llegan al almacenamiento en la nube. Auto Loader puede cargar archivos de datos de AWS S3 (s3://), Azure Data Lake Storage Gen2 (ADLS Gen2, abfss://), Google Cloud Storage (GCS, gs://), Azure Blob Storage (wasbs://), ADLS Gen1 (adl://) y el sistema de archivos de Databricks (DBFS, dbfs:/). El cargador automático puede ingerir los formatos de archivo JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT y BINARYFILE.

Nota:

El cargador automático proporciona un origen de streaming estructurado denominado cloudFiles. Dada una ruta de acceso del directorio de entrada en el almacenamiento de archivos en la nube, el origen cloudFiles procesa automáticamente los nuevos archivos a medida que llegan, con la opción de procesar también los archivos existentes en ese directorio. Auto Loader admite Python y SQL en Delta Live Tables.

Puede usar Auto Loader para procesar miles de millones de archivos para migrar a una tabla o reponer una. Auto Loader se escala para admitir la ingesta casi en tiempo real de millones de archivos por hora.

¿Cómo realiza Auto Loader el seguimiento del progreso de la ingesta?

A medida que se detectan los archivos, sus metadatos se conservan en un almacén de clave-valor escalable (RocksDB) en la ubicación del punto de control de la canalización del cargador automático. Este almacén de clave-valor garantiza que los datos se procesan exactamente una vez.

En caso de errores, el cargador automático puede reanudarse desde donde lo dejó mediante la información almacenada en la ubicación del punto de control y seguir proporcionando garantías de que los datos se procesan exactamente una vez al escribirlos en Delta Lake. No es necesario que mantenga ni administre ningún estado para lograr la tolerancia a errores o la semántica de datos procesados exactamente una vez.

Ingesta incremental mediante Auto Loader con Delta Live Tables

Databricks recomienda usar el cargador automático en Delta Live Tables para la ingesta de datos incremental. Delta Live Tables amplía la funcionalidad en Structured Streaming de Apache Spark y le permite escribir solo unas pocas líneas de Python o SQL declarativo para implementar una canalización de datos con calidad de producción con:

No es necesario proporcionar un esquema ni una ubicación de punto de comprobación, ya que Delta Live Tables administra automáticamente esta configuración para las canalizaciones. Consulte Carga de datos con Delta Live Tables.

Databricks también recomienda Auto Loader siempre que use Apache Spark Structured Streaming para ingerir datos del almacenamiento de objetos en la nube. Las API están disponibles en Python y Scala.

Introducción a Databricks Auto Loader

Consulte los artículos siguientes para empezar a configurar la ingesta de datos incrementales mediante Auto Loader con Delta Live Tables:

Ejemplos: Patrones comunes de Auto Loader

Para obtener ejemplos de patrones comunes de Auto Loader, consulte Patrones comunes de carga de datos.

Configuración de las opciones de Auto Loader

Puede ajustar Auto Loader en función del volumen, la variedad y la velocidad de los datos.

Para obtener una lista completa de las opciones de Auto Loader, consulte:

Si se produce un rendimiento inesperado, consulte las preguntas más frecuentes.

Configuración de los modos de detección de archivos de Auto Loader

Auto Loader admite dos modos de detección de archivos. Vea:

Ventajas del cargador automático sobre el uso de Structured Streaming directamente en archivos

En Apache Spark, puede leer archivos de forma incremental mediante spark.readStream.format(fileFormat).load(directory). Auto Loader ofrece las siguientes ventajas con respecto al origen del archivo:

  • Escalabilidad: Auto Loader puede detectar miles de millones de archivos de forma eficaz. Las reposiciones se pueden hacer de forma asincrónica para evitar malgastar los recursos de proceso.
  • Rendimiento: el costo de detectar archivos con Auto Loader se escala con el número de archivos que se ingieren en lugar de con el número de directorios a los que pueden llegar los archivos. Consulte ¿Qué es el modo de lista de directorios de Auto Loader?
  • Compatibilidad con la inferencia y la evolución de los esquemas: Auto Loader puede detectar desviaciones del esquema, notificarle cuándo se producen cambios en el mismo y rescatar datos que, de otro modo, se habrían ignorado o perdido. Consulte ¿Cómo funciona la inferencia de esquemas de Auto Loader?
  • Costo: Auto Loader usa API nativas en la nube para obtener listas de archivos que existen en el almacenamiento. Además, el modo de notificación de archivos de Auto Loader puede ayudar a reducir aún más los costos en la nube al evitar la lista de directorios por completo. El cargador automático puede configurar automáticamente los servicios de notificación de archivos en el almacenamiento para que la detección de archivos sea mucho más económica.