Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La cloudFiles.useManagedFileEvents opción con Auto Loader permite una detección de archivos eficaz.
¿Cómo funciona Auto Loader con eventos de archivo?
El cargador automático con eventos de archivo usa la funcionalidad de notificaciones de eventos de archivo proporcionada por proveedores en la nube. Puede configurar contenedores de almacenamiento en la nube para publicar notificaciones en eventos de archivo, como la creación y modificación de archivos nuevos. Por ejemplo, con las notificaciones de eventos de Amazon S3, una nueva llegada de archivos puede desencadenar una notificación a un tema de Amazon SNS. A continuación, puede suscribir una cola de Amazon SQS al tema de SNS para el procesamiento asincrónico del evento.
Los eventos de archivo de Azure Databricks son un servicio que configura recursos en la nube para escuchar eventos de archivo. Como alternativa, puede configurar los recursos en la nube usted mismo y proporcionar su propia cola de almacenamiento.
Después de configurar los recursos en la nube, el servicio escucha los eventos de archivo y almacena en caché la información de metadatos del archivo. Auto Loader usa esta memoria caché para detectar archivos cuando se ejecuta con el cloudFiles.useManagedFileEvents establecido en true.
Cuando una secuencia se ejecuta por primera vez con cloudFiles.useManagedFileEvents establecida en true, el cargador automático realiza una lista completa de directorios de la ruta de carga para descubrir todos los archivos y actualizarse con la caché de eventos de archivos (asegurar una posición de lectura válida en la caché y guardarla en el punto de comprobación de la secuencia). Las ejecuciones posteriores de Auto Loader detectan nuevos archivos leyendo directamente desde la memoria caché de eventos de archivo mediante la posición de lectura almacenada y no requieren la lista de directorios.
Databricks recomienda ejecutar los flujos de Auto Loader al menos una vez cada siete días para aprovechar la detección incremental de archivos de la memoria caché. Si no ejecuta Auto Loader al menos con esta frecuencia, la posición de lectura almacenada se vuelve inválida y Auto Loader debe realizar una lista de directorios completa para sincronizarse con la memoria caché de eventos de archivo.
¿Cuándo usa Auto Loader con eventos de archivo la lista de directorios?
Auto Loader realiza una lista de directorios completa cuando:
- Iniciar un nuevo flujo.
- Migración de un flujo desde un listado de directorios o notificaciones clásicas de archivos.
- El cargador automático con eventos de archivo no se ejecuta durante más de siete días.
- Realizas actualizaciones en la ubicación externa que invalidan la posición de lectura de Auto Loader. Entre los ejemplos se incluyen cuando se desactivan y vuelven a activar los eventos de archivo, cuando se cambia la ruta de acceso de la ubicación externa o cuando se proporciona una cola diferente para la ubicación externa.
Auto Loader siempre realiza una lista completa en la primera ejecución, incluso cuando includeExistingFiles se establece en false. Este indicador le permite ingerir todos los archivos creados después de la hora de inicio de la secuencia. Auto Loader enumera todo el directorio para detectar todos los archivos creados después de la hora de inicio de la secuencia, establece una posición de lectura en la memoria caché de eventos de archivo y la almacena en el punto de control. Las ejecuciones posteriores leen directamente desde la memoria caché de eventos de archivo y no requieren una lista de directorios.
El servicio de eventos de archivos de Azure Databricks también realiza listas de directorios completas en la ubicación externa para comprobar que no ha perdido ningún archivo (por ejemplo, si la cola proporcionada está mal configurada). La primera lista de directorios completa comienza en cuanto se habilitan los eventos de archivo en la ubicación externa. Cada lista posterior se produce 24 horas después del último escaneo completo, siempre y cuando haya al menos una secuencia del Cargador Automático que utilice eventos de archivo para ingerir datos.
Procedimientos recomendados para el cargador automático con eventos de archivo
Siga estos procedimientos recomendados para optimizar el rendimiento y la confiabilidad al usar Auto Loader con eventos de archivo.
Uso de volúmenes para una detección de archivos óptima
Para obtener un rendimiento mejorado, Databricks recomienda crear un volumen externo para cada ruta de acceso o subdirectorio desde el cual Auto Loader carga datos y proporcionar rutas de acceso de volumen (por ejemplo, /Volumes/someCatalog/someSchema/someVolume) a Auto Loader en lugar de rutas de acceso a la nube (por ejemplo, s3://bucket/path/to/volume). Esto optimiza la detección de archivos porque Auto Loader puede enumerar el volumen mediante un patrón de acceso a datos optimizado.
Considere usar activadores de llegada de archivos para canalizaciones impulsadas por eventos
En el caso del procesamiento de datos controlado por eventos, considere la posibilidad de usar un desencadenador de llegada de archivos en lugar de una canalización continua. Los desencadenadores de llegada de archivos inician automáticamente la canalización cuando llegan nuevos archivos, lo que proporciona un mejor uso de los recursos y la eficiencia de los costos, ya que el clúster solo se ejecuta cuando hay nuevos archivos que procesar.
Configura intervalos adecuados con desencadenadores continuos
Databricks recomienda usar desencadenadores de llegada de archivos para procesar archivos tan pronto como lleguen. Sin embargo, si el caso de uso requiere el uso de desencadenadores continuos como Trigger.ProcessingTime, Databricks recomienda configurar los intervalos de desencadenador en 1 minute o superior (se establece mediante pipelines.trigger.interval cuando se usan canalizaciones declarativas de Spark de Lakeflow). Esto reduce la frecuencia de consulta para comprobar si han llegado nuevos archivos y permite que un mayor número de secuencias se ejecuten simultáneamente desde el espacio de trabajo.
Limitaciones del cargador automático con eventos de archivo
- Auto Loader no admite reescrituras de rutas. Las reescrituras de rutas se aplican cuando se montan varios buckets o contenedores en DBFS, que es un patrón de uso en desuso.
Para obtener una lista general de las limitaciones de los eventos de archivo, consulte Limitaciones de eventos de archivo.
Preguntas más frecuentes
Encuentren respuestas a las preguntas más frecuentes acerca de Auto Loader con eventos de archivos.
¿Por qué es mejor el modo de eventos de archivo que el modo clásico de notificaciones de archivos?
En este diagrama se compara el modo de eventos de archivo y el modo de notificación de archivos clásico.
El modo de eventos de archivo tiene varias ventajas en comparación con el modo de notificación de archivos clásico. Principalmente, solo requiere una cola para todos los streams de Auto Loader en un bucket, lo que le ayuda a evitar el límite de notificaciones por bucket. Para obtener más información, vea Modo de notificación de archivos con y sin eventos de archivo habilitados en ubicaciones externas.
¿Cómo puedo confirmar que los eventos de archivo están configurados correctamente?
Haga clic en el botón Probar conexión en la página de ubicación externa. Si configura correctamente los eventos de archivo, verá una marca de verificación verde para el elemento Lectura de eventos de archivo. Si acaba de crear la ubicación externa y se habilitan los eventos de archivo en Automatic modo, la prueba muestra Skipped mientras Azure Databricks configura notificaciones para la ubicación externa. Espere unos minutos y, a continuación, haga clic en Probar conexión de nuevo. Si Azure Databricks no tiene los permisos necesarios para configurar o leer los eventos de archivo, verá un error para el elemento De lectura de eventos de archivo .
¿Puedo evitar una lista de directorios completa durante la ejecución inicial?
No. Incluso si includeExistingFiles se establece en false, el cargador automático realiza un listado de directorios para descubrir los archivos creados después del inicio de la secuencia y sincronizarse con la memoria caché de eventos de archivo (asegurar una posición de lectura válida en la memoria caché y almacenarla en el punto de control de la secuencia).
¿Es necesario establecer cloudFiles.backfillInterval para evitar que falten archivos?
No. Anteriormente, Azure Databricks recomendaba esta configuración para el modo de notificación de archivos clásico, ya que los sistemas de notificaciones de almacenamiento en la nube podían dar lugar a archivos que faltan o llegan tarde. Ahora, Azure Databricks realiza listas de directorios completas en la ubicación externa. La primera lista de directorios completa comienza en cuanto se habilitan los eventos de archivo en la ubicación externa. Cada registro posterior se produce 24 horas después del último escaneo completo, siempre y cuando haya al menos una secuencia de Auto Loader utilizando eventos de archivos para la ingesta de datos.
Configuré eventos de archivo con una cola de almacenamiento proporcionada, pero la cola estaba mal configurada y perdí archivos. ¿Cómo puedo asegurarme de que Auto Loader ingiere los archivos que faltan cuando mi cola estaba mal configurada?
En primer lugar, verifique que la configuración incorrecta de la cola proporcionada esté corregida. Para comprobarlo, haga clic en el botón Probar conexión en la página de ubicación externa. Si configura correctamente los eventos de archivo, aparece una marca de verificación verde para el elemento Lectura de eventos de archivo.
Azure Databricks realiza una lista completa de directorios para ubicaciones externas con eventos de archivo habilitados. Esta lista de directorios detecta los archivos que se han perdido durante el período de configuración incorrecta y los almacena en la caché de eventos de archivo.
Después de corregir la configuración incorrecta y Azure Databricks completa la lista de directorios, Auto Loader continúa leyendo desde la caché de eventos de archivo e ingiere automáticamente los archivos que faltan durante el período de configuración incorrecta.
¿Cómo obtiene Azure Databricks los permisos para crear recursos en la nube y leer y eliminar mensajes de la cola?
Azure Databricks usa los permisos concedidos en la credencial de almacenamiento asociada a la ubicación externa en la que se habilitan los eventos de archivo.