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.
Se aplica a:
Databricks SQL
Databricks Runtime 18 LTS y versiones posteriores
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 representa una referencia a un archivo no estructurado y sus metadatos. Úsalo para gestionar y procesar documentos, imágenes y audio junto con datos estructurados en el Catálogo de Unity.
FILE type solo es compatible con tablas Delta Lake.
Nota:
Este FILE tipo no está soportado en portátiles serverless. Está soportado en cuadernos conectados a almacenes SQL de Databricks sin servidor.
Syntax
{ FILE MANAGED | FILE EXTERNAL }
Usar FILE MANAGED o FILE EXTERNAL como tipo de columna cuando declaras una columna de tabla con CREATE TABLE. No puedes declarar una columna de tabla como FILE sin especificar ni uno ni MANAGEDEXTERNALotro .
FILE solo se permite como parámetro o tipo de retorno en una UDF, procedimiento almacenado o durante la fundición.
Para una comparación de FILE EXTERNAL y FILE MANAGED, incluyendo diagramas de arquitectura, véase FILE EXTERNAL y FILE MANAGED.
Campos
Un FILE valor contiene los siguientes campos:
| Campo | Tipo | Descripción |
|---|---|---|
uri |
STRING |
El URI del archivo. Este campo no puede ser null. |
offset |
BIGINT |
Un desplazamiento hacia el archivo, en bytes. |
size |
BIGINT |
Tamaño de archivo en bytes. |
content_type |
STRING |
El tipo MIME del archivo, cuando se conoce. |
checksum |
STRING |
Un token de integridad para los bytes del archivo, de la forma <algorithm>:<digest>. Para los algoritmos reconocidos, véase Sumas de comprobación. |
Límites
- El
FILEtipo no garantiza el pedido. No puedes usar unaFILEcolumna como columna de partición, columna de clustering,MAPclave, clave de join o expresión de agrupamiento. Para agrupar por un archivo, agrupa por suuricampo en su lugar.
Literals
Para crear un FILE valor, véanse las siguientes funciones:
-
to_filefunción crea unaFILEreferencia a partir de un camino. -
try_to_fileFunction crea unaFILEreferencia a partir de una ruta y la devuelveNULLsi el archivo no existe. -
create_fileFunction sube contenido a una ruta y devuelve unaFILEreferencia. -
copy_filefunción copia un archivo a una ruta de destino y devuelve unaFILEreferencia.
A CASTVARIANT o STRUCT valor a FILE:
- A
STRUCTdebe tener exactamente estos campos, con estos nombres y tipos:struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. - Imprescindible
VARIANTincluir eluricampo. Todos los demás campos son opcionales y cualquier clave adicional se ignora.
Lanza a FILE, no a FILE EXTERNAL o FILE MANAGED. La columna objetivo determina si la referencia resultante es externa o gestionada. Cuando escribes una referencia externa a una FILE MANAGED columna, Databricks la ingiere en almacenamiento gestionado.
Notas
- Como columna de tabla de nivel superior,
FILEdebe declararse comoFILE MANAGEDoFILE EXTERNAL. UsoFILEen todos los demás casos:- Como parámetro o tipo de retorno en SQL, Python y Scala funciones definidas por el usuario (UDFs) y en procedimientos almacenados SQL.
- Como tipo objetivo de un
CASTvalor de aVARIANToSTRUCT. - Anidado dentro de un
STRUCT, unARRAY, el valor de unMAP, o unVARIANT. Solo se admiten archivos externos dentro de unVARIANTarchivo .
- Para leer metadatos de archivos, utiliza los
uricampos ,offset,size,content_type, ychecksumcon notación de puntos, porfile_column.uriejemplo . - Para extraer contenido estructurado de un archivo, pasa un
FILEvalor a laai_parse_documentfunción funcional.
Examples
Para declarar una tabla con una columna externa FILE :
CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);
Para poblarlo a partir de archivos que ya existen en un volumen:
INSERT INTO attachments
SELECT row_number() OVER (ORDER BY file.uri), file
FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');
Para leer los metadatos de los archivos usando notación de puntos:
SELECT attachment.uri, attachment.size, attachment.checksum
FROM attachments;
Para construir un FILE valor a partir de una struct:
SELECT named_struct(
'uri', '/Volumes/my_catalog/my_schema/my_volume/report.pdf',
'offset', null,
'size', CAST(19494 AS BIGINT),
'content_type', 'application/pdf',
'checksum', 'ETAG:v1')::FILE;