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.
Preguntas más frecuentes sobre el cargador automático de Databricks.
¿El cargador automático procesa el archivo de nuevo cuando el archivo se anexa o se sobrescribe?
Con la configuración predeterminada (cloudFiles.allowOverwrites
= false
), los archivos se procesan exactamente una vez. Cuando se anexa o se sobrescribe un archivo, Auto Loader no puede garantizar la versión del archivo que se procesará.
Para permitir que el cargador automático procese el archivo de nuevo cuando se anexe o sobrescriba, puede configurar cloudFiles.allowOverwrites
como true
. En este caso, se garantiza que el cargador automático procese la versión más reciente del archivo. Sin embargo, el cargador automático no puede garantizar qué versión intermedia se procesa.
Tenga cuidado si habilita cloudFiles.allowOverwrites
en modo de notificación de archivo. En el modo de notificación de archivos, el cargador automático podría identificar archivos nuevos a través de notificaciones de archivos y lista de directorios. Dado que la hora del evento de notificación de archivo y el tiempo de modificación de archivos pueden diferir, Auto Loader podría recibir dos marcas de tiempo diferentes e ingerir el mismo archivo dos veces, incluso si el archivo no se ha actualizado.
Con cloudFiles.allowOverwrites
habilitado, debe controlar los registros duplicados usted mismo. Auto Loader volverá a procesar todo el archivo incluso cuando se anexe a o se actualice parcialmente. En general, Azure Databricks recomienda usar Auto Loader para ingerir solo archivos inmutables y usar la configuración cloudFiles.allowOverwrites
= false
predeterminada . Si tiene más preguntas, póngase en contacto con el equipo de la cuenta de Azure Databricks.
Si mis archivos de datos no llegan continuamente, sino a intervalos regulares, por ejemplo, una vez al día, ¿debo seguir utilizando este origen? ¿Hay alguna ventaja?
En este caso, puede configurar un trabajo de streaming estructurado Trigger.AvailableNow
(disponible en Databricks Runtime 10.4 LTS y versiones superiores) y programarlo para que se ejecute después de la hora prevista de llegada del archivo. El cargador automático funciona bien tanto con actualizaciones poco frecuentes como con actualizaciones frecuentes. Incluso si las actualizaciones finales son muy grandes, el cargador automático se adapta bien al tamaño de la entrada. Las técnicas eficaces de detección de archivos y las funcionalidades de evolución del esquema de Auto Loader hacen que Auto Loader sea el método recomendado para la ingesta incremental de datos.
¿Qué ocurre si cambio la ubicación del punto de control al reiniciar la secuencia?
La ubicación de un punto de control mantiene una importante información de identificación de una corriente. Cambiar la ubicación del punto de control de forma eficaz significa que ha abandonado la secuencia anterior e iniciado una nueva secuencia.
¿Es necesario crear previamente servicios de notificación de eventos?
No. Si elige el modo de notificación de archivos y proporciona los permisos necesarios, el cargador automático puede crear servicios de notificación de archivos automáticamente. Consulte Administración de colas de notificaciones de archivos para cada flujo del cargador automático por separado (heredado).
Si los eventos de archivo están habilitados en la ubicación externa del catálogo de Unity, el servicio de eventos de archivo puede crear los eventos de archivo en el proveedor de nube y no es necesario configurar el cargador automático para crearlos para cada secuencia. Vea Uso del modo de notificación de archivos con eventos de archivo
¿Cómo se limpian los recursos de notificación de eventos creados por el cargador automático?
Puede usar el administrador de recursos en la nube para enumerar y destruir recursos. También puede eliminar estos recursos manualmente mediante la interfaz de usuario o las API del proveedor de nube.
¿Puedo ejecutar varias consultas de streaming desde directorios de entrada diferentes en el mismo cubo o contenedor?
Sí, siempre que no sean directorios primarios y secundarios; por ejemplo, prod-logs/
y prod-logs/usage/
no funcionarían porque /usage
es un directorio secundario de /prod-logs
.
¿Puedo usar esta característica cuando hay notificaciones de archivos existentes en mi cubo o contenedor?
Sí, siempre y cuando el directorio de entrada no entre en conflicto con el prefijo de notificación existente (por ejemplo, los directorios primarios y secundarios anteriores).
¿Qué hace el cargador automático para inferir el esquema?
Cuando se define el DataFrame por primera vez, el cargador automático muestra el directorio de origen y elige los 50 GB de datos o los 1000 archivos más recientes (por hora de modificación de los archivos) y los usa para inferir el esquema de datos.
El cargador automático también infiere columnas de partición mediante el examen de la estructura de los directorios de origen y busca rutas de acceso de archivo que contengan la estructura /key=value/
. Si el directorio de origen tiene una estructura incoherente, por ejemplo:
base/path/partition=1/date=2020-12-31/file1.json
// inconsistent because date and partition directories are in different orders
base/path/date=2020-12-31/partition=2/file2.json
// inconsistent because the date directory is missing
base/path/partition=3/file3.json
El cargador automático infiere las columnas de partición como vacías. Use cloudFiles.partitionColumns
para analizar explícitamente columnas de la estructura de directorios.
¿Cómo se comporta el cargador automático cuando la carpeta de origen está vacía?
Si el directorio de origen está vacío, el cargador automático le pide que proporcione un esquema, ya que no hay datos para realizar la inferencia.
¿En qué momento el cargador automático infiere el esquema? ¿Evoluciona automáticamente después de cada microlote?
El esquema se infiere cuando el DataFrame se define por primera vez en el código. Durante cada micro-lote, los cambios de esquema se evalúan sobre la marcha; por lo tanto, no es necesario preocuparse por el impacto en el rendimiento. Cuando se reinicia la secuencia, recoge el esquema evolucionado de la ubicación del esquema y comienza a ejecutarse sin sobrecarga de inferencia.
¿Cuál es el impacto en el rendimiento de la ingesta de los datos al usar la inferencia de esquemas de Auto Loader?
La inferencia de esquema podría tardar un par de minutos en el caso de directorios de origen muy grandes durante la inferencia inicial del esquema. No debería observar ninguna degradación significativa en el rendimiento durante la ejecución de la secuencia. Si ejecuta el código en un cuaderno de Azure Databricks, puede ver actualizaciones de estado que especifican el momento en el que el cargador automático enumerará el directorio para el muestreo e inferirá del esquema de datos.
Debido a un error, un archivo incorrecto ha cambiado drásticamente el esquema. ¿Qué debo hacer para revertir un cambio de esquema?
Póngase en contacto con el soporte técnico de Databricks para solicitar ayuda.