Compartir vía


¿Qué es el cargador automático?

Auto Loader 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. Proporciona un origen de Structured Streaming 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 canalizaciones declarativas de Python y SQL en Lakeflow Spark.

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.

Orígenes admitidos del cargador automático

El cargador automático puede cargar archivos de datos desde las siguientes fuentes:

  • Amazon S3 (s3://)

  • Azure Data Lake Storage (ADLS, abfss://)

  • Google Cloud Storage (GCS, gs://)

  • Azure Blob Storage (wasbs://)

    Note

    El controlador heredado para Windows de Azure Storage Blob (WASB) está en desuso. ABFS tiene numerosas ventajas sobre WASB. Consulte la documentación de Azure sobre ABFS. Para obtener documentación sobre el uso del controlador heredado WASB, consulte Conexión a Azure Blob Storage con WASB (heredado).

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

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

A medida que se detectan archivos, sus metadatos se conservan en un almacén escalable de clave-valor (RocksDB) en la ubicación del punto de control de la canalización de Auto Loader. 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ó la información almacenada en la ubicación del punto de control y seguir proporcionando garantías exactamente una vez al escribir datos en Delta Lake. No es necesario mantener ni administrar ningún estado para lograr la tolerancia a fallos o la semántica exactamente una vez.

Ingesta incremental mediante Auto Loader con canalizaciones declarativas de Lakeflow Spark

Databricks recomienda Auto Loader en pipelines declarativas de Lakeflow Spark para la ingesta incremental de datos. Las canalizaciones declarativas de Spark de Lakeflow amplían la funcionalidad en Apache Spark Structured Streaming y le permite escribir solo unas pocas líneas de Python declarativo o SQL para implementar una canalización de datos de calidad de producción con:

No es necesario proporcionar un esquema o una ubicación de punto de control porque Las canalizaciones declarativas de Spark de Lakeflow administran automáticamente esta configuración para las canalizaciones. Consulte Carga de datos en canalizaciones.

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 canalizaciones declarativas de Spark de Lakeflow:

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. See:

Gestión de datos desordenados

Auto Loader no garantiza el orden en el que se detectan o procesan los archivos, independientemente de si usa el modo de notificación de archivos o listados de directorios. Use las siguientes estrategias para diseñar las canalizaciones para controlar las llegadas de archivos desordenados.

Canalizaciones declarativas de Lakeflow Spark con AUTO CDC

Si usa canalizaciones declarativas de Spark de Lakeflow con el cargador automático y AUTO CDC, configure la retención de marcadores de borrado para que los registros eliminados se conserven durante suficiente tiempo para controlar las llegadas de archivos fuera de orden. Establezca la pipelines.cdc.tombstoneGCThresholdInSeconds propiedad table en la tabla de streaming de destino en un valor que supere el retraso máximo esperado entre la llegada de eventos y la ejecución de la canalización. La retención predeterminada es de dos días. Para obtener más información, consulte create_auto_cdc_flow.

Transmitir en streaming estructurado sin los pipelines declarativos de Spark de Lakeflow

Si usa Apache Spark Structured Streaming directamente con el cargador automático (sin canalizaciones declarativas de Spark de Lakeflow), tenga en cuenta los siguientes patrones para controlar los datos desordenados:

  • Preferir eliminaciones lógicas sobre eliminaciones duras: realice un seguimiento de una bandera y una marca de tiempo deleted en lugar de quitar filas, de modo que una eliminación que llegue tarde no entre en conflicto con los registros anteriores.
  • Comparar marcas de tiempo antes de aplicar actualizaciones: al actualizar, compare la marca de tiempo de actualización del registro entrante con la marca de tiempo actual de la fila de destino para evitar sobrescribir con datos obsoletos.

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 Configuración de flujos del cargador automático en modo de lista de directorios.
  • 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 del cargador automático puede ayudar a reducir aún más los costos en la nube evitando 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.

Recursos adicionales