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:
FILE El tipo requiere la versión 6 o superior del entorno en portátiles serverless. Para elegir la versión del entorno para un portátil, consulte Seleccionar un entorno base.
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 MANAGED y FILE EXTERNAL, incluyendo diagramas de arquitectura, véase FILE MANAGED y FILE EXTERNAL.
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. - Para previsualizar el contenido de un archivo en los resultados de la consulta, consulte Archivos de vista previa en columnas de ARCHIVO. La vista previa lee el contenido del archivo, lo que requiere acceso al archivo además de la tabla. Consulta Metadatos y acceso al contenido.
Examples
Para declarar una tabla con una columna gestionada FILE , establece la databricks.filespace-preview propiedad de la tabla en la ruta de volumen que utiliza Unity Catalog como almacenamiento gestionado:
CREATE TABLE reports (id BIGINT, attachment FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/filespace/');
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;