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.
Importante
Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administrar versiones preliminares de Azure Databricks.
El FILE tipo almacena una referencia gobernada a un archivo no estructurado, con metadatos como ruta y tamaño. Utiliza FILE columnas en el Catálogo de Unity para almacenar documentos, imágenes y audio junto con datos estructurados.
Para la referencia tipográfica, véase FILE tipo.
El siguiente diagrama muestra una FILE columna llamada video que hace referencia a los clips de conducción junto a columnas estructuradas como ruta, descripción de escena y etiqueta de peligro:
Metadatos y almacenamiento de ARCHIVO
Para cada fila, el FILE tipo almacena metadatos y un enlace regulado al archivo almacenado. Un FILE valor incluye uri, size, content_type, y checksum campos de metadatos. Las consultas de metadatos no requieren lecturas completas de archivos, lo que mejora el rendimiento de las consultas.
Puedes pasar FILE valores a funciones de IA, como ai_parse_document la función, y a funciones definidas por el usuario (UDFs).
El siguiente diagrama muestra un ejemplo de columna gestionada FILE , que contiene metadatos de ruta y tamaño y referencias a los archivos almacenados:
¿Por qué usar FILE en lugar de BINARY o STRING?
La siguiente tabla detalla los desafíos al manejar archivos no estructurados grandes con BINARY o STRING tipos:
| Tipo de columna | Descripción | Diagrama |
|---|---|---|
BINARY |
Materializa el objeto completo en cada lectura, incluso cuando solo necesitas metadatos como el tamaño o la ruta del archivo. Esto resulta en cálculos innecesarios y consultas lentas. |
|
STRING |
Almacena una ruta de archivo sin metadatos, como información de tamaño o versión, y sin enlace regulado entre la tabla y el archivo. Si otra carga de trabajo elimina el archivo, la tabla tiene información obsoleta. Si eliminas una fila de tabla, el archivo referenciado permanece almacenado hasta que lo eliminas manualmente. |
|
Sumas de comprobación
El checksum campo es un token de integridad para los bytes del archivo, de la forma <prefix>:<digest>. Úsala para comparar archivos o verificar que no haya cambiado. Los lectores ignoran una suma de comprobación con un prefijo no reconocido.
No siempre hay una suma de comprobación disponible.
to_file función, create_file función y copy_file función pueblan la suma de comprobación cuando el almacén de objetos devuelve un ETAGarchivo .
list_files La función con valores de tabla y read_files la función con valores en tabla no completan la suma de comprobación.
El checksum campo utiliza uno de los siguientes prefijos:
| Prefijo | Codificación por digest | Descripción |
|---|---|---|
ETAG |
Opaque | El eTag del object store para todo el archivo. Suministrado literalmente por la tienda, usado solo para comparación de igualdad, y no recomputable. |
MD5 |
Hexágono minúsculo | Un resumen MD5 (RFC 1321), 32 caracteres hexadecimales. |
CRC32 |
Hexágono minúsculo | Una suma de comprobación CRC32 (RFC 2083), 8 caracteres hexadecimales. |
CRC32C |
Hexágono minúsculo | Una suma de comprobación CRC32C (RFC 3385), 8 caracteres hexadecimales. |
SHA-256 |
Hexágono minúsculo | Un resumen SHA-256 (RFC 6234), 64 caracteres hexadecimales. |
Por ejemplo, una suma de comprobación MD5 se parece MD5:d41d8cd98f00b204e9800998ecf8427ea , y una etiqueta de objeto de almacenamiento de objetos se muestra ETAG:"686897696a7c876b7e"a , incluyendo las comillas dobles que la rodea devueltas por el almacén de objetos.
Seleccione entre FILE y BINARY
La siguiente tabla compara las opciones para trabajar con archivos no estructurados:
| Tipo de columna | Values | Caso de uso |
|---|---|---|
FILE |
Una referencia gobernada a un archivo, más metadatos (uri, size, content_type, checksum). |
Úsalos para gestionar y procesar archivos no estructurados junto con datos estructurados, y para pasar archivos a funciones integradas y de IA. |
BINARY |
Los bytes en bruto de un archivo, en línea en una columna. | Úsalo para objetos pequeños (hasta 64 KB por defecto) almacenados directamente en el archivo de datos. Esto es útil cuando necesitas una baja sobrecarga de metadatos y una gestión de archivos simplificada. Por ejemplo, úsalo para almacenar miniaturas en línea con los datos de fila. |
ARCHIVO EXTERNO y ARCHIVO GESTIONADO
El FILE tipo soporta dos enfoques para gestionar los archivos:
-
FILE EXTERNALlas columnas hacen referencia a archivos existentes en un volumen del Catálogo de Unity. Los archivos están protegidos por permisos de volumen del Catálogo de Unity, pero su ciclo de vida no es gestionado por el Catálogo de Unity y no se copian. Utiliza este enfoque cuando necesites referenciar archivos sin mover datos ni interrumpir herramientas que leen desde un volumen existente. -
FILE MANAGEDlas columnas copian archivos a almacenamiento gestionado. Establece ladatabricks.filespace-previewpropiedad de la tabla en una ruta de volumen gestionado para que el Catálogo de Unity la use como almacenamiento. Utiliza este enfoque cuando quieras permisos simplificados que se gestionen a través de la tabla para cargas de trabajo que solo acceden a archivos a través de una tabla, como entrenamiento de aprendizaje automático o generación aumentada por recuperación (RAG). Para patrones de ingestión, véase archivos Ingest como el tipo de archivo.
Para consultas, no hay diferencia entre archivos externos y gestionados.
El siguiente diagrama muestra cómo el FILE tipo conecta tu código con archivos en almacenamiento de objetos en la nube:
FILE EXTERNAL
FILE EXTERNAL las columnas son referencias a archivos que ya existen en un volumen del Catálogo de Unity.
Si tienes los privilegios necesarios sobre el volumen, puedes actualizar o eliminar estos archivos. Databricks recomienda usar archivos inmutables. Una concesión de tabla expone los metadatos del archivo, pero leer los bytes del archivo también requiere el READ VOLUME privilegio sobre el volumen subyacente.
Un archivo externo asigna cada fila de tabla a un archivo en su ruta existente en un volumen del Catálogo de Unity:
ejemplos de FILE EXTERNAL
Para crear una tabla con una FILE EXTERNAL columna:
CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);
Para añadir una FILE EXTERNAL columna a una tabla existente:
ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;
Para crear y rellenar una tabla desde un volumen, asignando IDs únicos a cada archivo:
CREATE TABLE documents AS
SELECT monotonically_increasing_id() AS id, file
FROM list_files('/Volumes/samples/sec/contracts/');
FILE MANAGED
FILE MANAGED las columnas almacenan copias de archivos en un FileSpace, un volumen de Unity Catalog que declaras para que la tabla lo use como almacenamiento gestionado. Su ciclo de vida está ligado a las tablas que los referencian.
Los siguientes comportamientos se aplican a FILE MANAGED:
- Declarar el
FileSpacerequiere ladatabricks.filespace-previewpropiedad de la tabla. - Leer o escribir un archivo gestionado requiere acceso tanto a la tabla como al volumen que respalda el
FileSpacearchivo . - No se permite la recolección automática de archivos sin referencia.
Los archivos no estructurados almacenados en fuentes externas como SharePoint, Google Drive, OneDrive y SFTP deben ser ingeridos como archivos gestionados antes de poder usarlos con funciones como ai_parse_document funciones como funciones y funciones definidas por el usuario (UDFs). Para patrones de ingestión, véase archivos Ingest como el tipo de archivo.
Para usar archivos gestionados, crea una tabla con una FILE MANAGED columna y declara un volumen como el FileSpace estableciendo la databricks.filespace-preview propiedad de la tabla como una ruta de volumen:
'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'
Para ejemplos completos, véanse los siguientes FILE MANAGED ejemplos. El ciclo de vida de los archivos en un FileSpace está ligado a las filas que los referencian. Eliminar esas filas hace que los archivos sean elegibles para la recogida de basura.
ejemplos de FILE MANAGED
Para crear una tabla con una FILE MANAGED columna:
CREATE TABLE reports (id BIGINT, file FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
Para añadir una FILE MANAGED columna a una tabla existente, establece la propiedad de tabla databricks.filespace-preview antes de añadir la columna, como en el siguiente código:
ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;
Añadir una FILE MANAGED columna a una tabla que no FileSpace tiene fallos.
Gobernanza y comparación del ciclo de vida
La siguiente tabla compara cómo FILE EXTERNAL y FILE MANAGED gobiernan el acceso a archivos y gestionan el ciclo de vida del archivo:
| Tipo de columna | FILE EXTERNAL |
FILE MANAGED |
|---|---|---|
| Control de acceso a archivos | Regido por permisos de volumen, como READ VOLUME. |
Regido por permisos de tabla y volumen, como los SELECT de la tabla y READ VOLUME del volumen. |
| Ciclo de vida y recolección de elementos no utilizados | Tú gestionas los archivos. Eliminar una fila de tabla no afecta al archivo subyacente en el volumen. | Los archivos están vinculados a las filas que los referencian. Eliminar esas filas hace que los archivos sean elegibles para la recogida de basura. No se soporta la recogida automática de basura. |
Casos de uso tipo FILE
Tanto los tipos externos como gestionados FILE abordan los siguientes desafíos para casos de uso utilizando datos no estructurados:
| Desafío | Tipo soportado FILE |
Benefits |
|---|---|---|
Archivos demasiado grandes para almacenarlos en línea como BINARY |
FILE MANAGED o FILE EXTERNAL |
Una FILE columna almacena una referencia, por lo que un archivo solo se lee cuando una función de IA o un UDF lo procesa. Esto evita que los objetos grandes se materialifiquen en línea en la mesa. |
| Ciclo de vida y gobernanza desconectados entre el sistema de archivos y la tabla | FILE MANAGED |
Azure Databricks vincula el ciclo de vida de cada archivo a la tabla, así que eliminar filas hace que los archivos sean elegibles para limpieza en lugar de dejar archivos huérfanos en almacenamiento. |
| Cargas de trabajo concurrentes que requieren que los archivos permanezcan en la misma ubicación | FILE EXTERNAL |
Los archivos permanecen en sus rutas de volumen existentes, sin verse afectadas por el ciclo de vida de la tabla, por lo que otras herramientas que leen los mismos archivos no se ven interrumpidas. |