Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Type
S’applique à :
Databricks SQL
Databricks Runtime 18 LTS et versions ultérieures
Important
Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.
Le FILE type représente une référence à un fichier non structuré et à ses métadonnées. Utilisez-le pour gérer et traiter des documents, des images et des audios en parallèle des données structurées dans Unity Catalog.
FILE type est pris en charge uniquement pour les tables Delta Lake.
Remarque
Ce FILE type n’est pas pris en charge sur les portables serverless. Il est pris en charge sur les notebooks connectés aux entrepôts SQL Databricks serverless.
Syntax
{ FILE MANAGED | FILE EXTERNAL }
Utilisez FILE MANAGED ou FILE EXTERNAL comme type de colonne lorsque vous déclarez une colonne de table avec CREATE TABLE. Vous ne pouvez pas déclarer une colonne de tableau comme FILE sans spécifier ni l’un ni MANAGEDEXTERNALl’autre .
FILE est autorisé uniquement comme paramètre ou type de retour dans une UDF, une procédure stockée ou lors du lancement.
Pour une comparaison de FILE MANAGED et FILE EXTERNAL, y compris les diagrammes d’architecture, voir FILE MANAGED et FILE EXTERNAL.
Champs
Une FILE valeur contient les champs suivants :
| Champ | Type | Description |
|---|---|---|
uri |
STRING |
L’URI du fichier. Ce domaine ne peut pas être null. |
offset |
BIGINT |
Un décalage dans le fichier, en octets. |
size |
BIGINT |
Taille du fichier en octets. |
content_type |
STRING |
Le type MIME du fichier, quand il est connu. |
checksum |
STRING |
Un jeton d’intégrité pour les octets du fichier, de la forme <algorithm>:<digest>. Pour les algorithmes reconnus, voir Sommes de contrôle. |
Limites
- Ce
FILEtype ne garantit pas la commande. Vous ne pouvez pas utiliser uneFILEcolonne comme colonne de partition, colonne de clustering,MAPclé, clé de jointure ou expression de groupement. Pour regrouper par un fichier, regroupez plutôt par sonurichamp.
Literals
Pour créer une FILE valeur, voir les fonctions suivantes :
-
to_filefonction crée uneFILEréférence à partir d’un chemin. -
try_to_fileFunction crée uneFILEréférence à partir d’un chemin, et la renvoieNULLsi le fichier n’existe pas. -
create_filefonction télécharge le contenu sur un chemin et renvoie uneFILEréférence. -
copy_filefonction copie un fichier sur un chemin cible et renvoie uneFILEréférence.
À CAST une VARIANT valeur STRUCT à FILE:
- A
STRUCTdoit avoir exactement ces champs, avec ces noms et types :struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. - A
VARIANTdoit inclure leurichamp. Tous les autres champs sont optionnels, et toute touche supplémentaire est ignorée.
Lancer vers FILE, pas vers FILE EXTERNAL ou FILE MANAGED. La colonne cible détermine si la référence résultante est externe ou gérée. Lorsque vous écrivez une référence externe à une FILE MANAGED colonne, Databricks l’intègre dans un stockage géré.
Remarques
- En tant que colonne de table de premier niveau,
FILEdoit être déclaré commeFILE MANAGEDouFILE EXTERNAL. UtilisationFILEdans tous les autres cas :- Comme paramètre ou type de retour dans SQL, Python et Scala fonctions définies par l’utilisateur (UDF) et dans les procédures stockées SQL.
- Comme type cible de a
CASTà partir d’uneVARIANTvaleurSTRUCTou - Imbriqués à l’intérieur d’un
STRUCT, unARRAY, la valeur d’unMAP, ou unVARIANT. Seuls les fichiers externes sont pris en charge dans unVARIANTfichier .
- Pour lire les métadonnées des fichiers, utilisez les
urichamps ,offset,size,content_type, etchecksumles champs avec notation en points, parfile_column.uriexemple . - Pour extraire du contenu structuré d’un fichier, passez une
FILEvaleur à laai_parse_documentfonction fonction.
Examples
Pour déclarer une table avec une colonne gérée FILE , définissez la databricks.filespace-preview propriété de la table sur le chemin de volume que Unity Catalogue utilise comme stockage géré :
CREATE TABLE reports (id BIGINT, attachment FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/filespace/');
Pour déclarer une table avec une colonne externe FILE :
CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);
Pour le peupler à partir de fichiers déjà existants dans un volume :
INSERT INTO attachments
SELECT row_number() OVER (ORDER BY file.uri), file
FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');
Pour lire les métadonnées de fichiers en notation à points :
SELECT attachment.uri, attachment.size, attachment.checksum
FROM attachments;
Pour construire une FILE valeur à partir d’une struc :
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;