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.
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 stocke une référence gouvernée à un fichier non structuré, avec des métadonnées telles que le chemin et la taille. Utilisez FILE les colonnes dans le catalogue Unity pour stocker des documents, des images et de l’audio aux côtés des données structurées.
Avec les FILE MANAGED colonnes, Unity Catalog stocke des copies des fichiers et les gère avec la table : supprimer les lignes rend les fichiers référencés éligibles à la collecte des ordures, afin que la table et ses fichiers restent synchronisés.
Pour la référence typographique, voir FILE type.
Le schéma suivant montre une FILE colonne nommée video qui fait référence aux extraits de conduite aux côtés de colonnes structurées telles que l’itinéraire, la description de la scène et l’étiquette de danger :
Métadonnées et stockage du fichier
Pour chaque ligne, le FILE type stocke des métadonnées et un lien régi vers le fichier en stockage. Une valeur inclut , , , et FILE les champs uri de métadonnées. sizecontent_typechecksum Les requêtes de métadonnées ne nécessitent pas de lectures complètes de fichiers, ce qui améliore la performance des requêtes.
Vous pouvez transmettre FILE des valeurs à des fonctions IA, telles que ai_parse_document la fonction, et aux fonctions définies par l’utilisateur (UDF).
Le diagramme suivant montre un exemple de colonne gérée FILE , contenant les métadonnées de chemin et de taille ainsi que des références aux fichiers en stockage :
Pourquoi utiliser FILE au lieu de BINARY ou STRING
Le tableau suivant détaille les défis liés à la gestion de gros fichiers non structurés avec BINARY ou STRING types :
| Type de colonne | Description | Diagramme |
|---|---|---|
BINARY |
Matérialise l’objet complet à chaque lecture, même si vous n’avez besoin que de métadonnées comme la taille ou le chemin du fichier. Cela entraîne des calculs inutiles et des requêtes lentes. |
|
STRING |
Stocke un chemin de fichier sans métadonnées, telles que la taille ou les informations de version, et sans lien régi entre la table et le fichier. Si une autre charge de travail supprime le fichier, la table contient des informations obsolètes. Si vous supprimez une ligne de tableau, le fichier référencé reste en stockage jusqu’à ce que vous le retiriez manuellement. |
|
Sommes de contrôle
Le checksum champ est un jeton d’intégrité pour les octets du fichier, de la forme <prefix>:<digest>. Utilisez-le pour comparer des fichiers ou vérifier qu’un fichier n’a pas changé. Les lecteurs ignorent une somme de chèque avec un préfixe non reconnu.
Une somme de contrôle n’est pas toujours disponible.
to_file Fonction, create_file fonction et copy_file fonction remplissent la somme de contrôle lorsque le magasin d’objets retourne un ETAGfichier .
list_files La fonction à valeurs de table et read_files la fonction à valeurs de table ne remplissent pas la somme de contrôle.
Le checksum champ utilise l’un des préfixes suivants :
| Préfixe | Codage digest | Description |
|---|---|---|
ETAG |
Opaque | L’eTag du magasin d’objets pour tout le fichier. Fourni mot pour mot par le magasin, utilisé uniquement pour la comparaison d’égalité, et non recalculable. |
MD5 |
Malédiction minuscule | Un résumé MD5 (RFC 1321), 32 caractères hexadécimaux. |
CRC32 |
Malédiction minuscule | Une somme de contrôle CRC32 (RFC 2083), 8 caractères hexadécimaux. |
CRC32C |
Malédiction minuscule | Une somme de contrôle CRC32C (RFC 3385), 8 caractères hexadécimaux. |
SHA-256 |
Malédiction minuscule | Un digest SHA-256 (RFC 6234), 64 caractères hexadécimaux. |
Par exemple, une somme de contrôle MD5 ressemble à MD5:d41d8cd98f00b204e9800998ecf8427e, et un eTag de stockage d’objets ressemble à ETAG:"686897696a7c876b7e", incluant les doubles guillemets environnants retournés par le magasin d’objets.
Sélectionnez entre FILE et BINARY
Le tableau suivant compare les options pour travailler avec des fichiers non structurés :
| Type de colonne | Values | Cas d’utilisation |
|---|---|---|
FILE |
Une référence gouvernée à un fichier, plus les métadonnées (uri, size, content_type, checksum). |
Utilisation pour gérer et traiter des fichiers non structurés en parallèle de données structurées, et pour passer des fichiers vers des fonctions intégrées et IA. |
BINARY |
Les octets bruts d’un fichier, en ligne dans une colonne. | Utilisez pour de petits objets (jusqu’à 64 Ko par défaut) stockés directement dans le fichier de données. C’est utile lorsque vous avez besoin d’une surcharge de métadonnées faible et d’une gestion simplifiée des fichiers. Par exemple, utilisez cela pour stocker des vignettes en ligne avec les données de lignes. |
FILE MANAGED et FICHIER EXTERNE
Le FILE type prend en compte deux approches pour gérer les fichiers :
-
FILE MANAGEDles colonnes copient les fichiers vers le stockage géré. Les permissions sont simplifiées et gérées via la table. Lorsque vous supprimez des lignes ou les mettez à jour pour référencer différents fichiers, les fichiers non référencés deviennent éligibles à la collecte des ordures, de sorte que la table et ses fichiers restent synchronisés. Utilisez cette approche pour les charges de travail qui accèdent aux fichiers via une table, comme l’entraînement ML ou la génération augmentée par récupération (RAG), ainsi que pour les fichiers ingérés à partir de sources externes. Pour les schémas d’ingestion, voir les fichiers Ingest comme type de FICHIER. -
FILE EXTERNALles colonnes font référence à des fichiers existants dans un volume du catalogue Unity. Les fichiers sont sécurisés grâce aux permissions de volume du catalogue Unity, mais leur cycle de vie n’est pas géré par le catalogue Unity, et ils ne sont pas copiés. Utilisez cette approche lorsque vous devez référencer des fichiers sans déplacer les données ni perturber les outils qui lisent depuis un volume existant.
Azure Databricks recommande FILE MANAGED pour les charges de travail bénéficiant des autorisations au niveau des fichiers et d’une conformité intégrée : l’accès à chaque fichier est géré par la table qui le référence, et supprimer des lignes rend les fichiers référencés éligibles à la collecte des ordures. À utiliser FILE EXTERNAL lorsque les fichiers doivent rester sur leurs chemins de volume existants pour les outils qui les lisent en dehors de la table.
Pour les requêtes, il n’y a aucune différence entre fichiers gérés et fichiers externes.
Le schéma suivant montre comment ce FILE type relie votre code aux fichiers dans le stockage d’objets cloud :
FILE MANAGED
FILE MANAGED les colonnes stockent des copies de fichiers dans un FileSpace, un volume du catalogue Unity que vous déclarez pour que la table l’utilise comme stockage géré. Leur cycle de vie est lié aux tables qui les font référence : supprimer les lignes rend les fichiers référencés éligibles à la collecte des ordures, afin que la table et ses fichiers restent synchronisés.
Les comportements suivants s’appliquent à FILE MANAGED:
- Déclarer le
FileSpacenécessite ladatabricks.filespace-previewpropriété de la table. - La lecture ou l’écriture d’un fichier géré nécessite l’accès à la fois à la table et au volume qui soutient le
FileSpacefichier . - La collecte automatique des fichiers non référencés n’est pas prise en charge en version Bêta.
Les fichiers non structurés stockés dans des sources externes telles que SharePoint, Google Drive, OneDrive et SFTP doivent être ingérés en tant que fichiers gérés avant de pouvoir les utiliser avec des fonctions telles que ai_parse_document les fonctions et les fonctions définies par l’utilisateur (UDF). Pour les schémas d’ingestion, voir les fichiers Ingest comme type de FICHIER.
Pour utiliser des fichiers gérés, créez une table avec une FILE MANAGED colonne et déclarez un volume comme le FileSpace en définissant la databricks.filespace-preview propriété de la table sur un chemin de volume :
'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'
Pour des exemples complets, voir les exemples suivants FILE MANAGED .
Exemples FILE MANAGED
Pour créer un tableau avec une FILE MANAGED colonne :
CREATE TABLE reports (id BIGINT, file FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
Pour ajouter une FILE MANAGED colonne à une table existante, définissez la databricks.filespace-preview propriété table avant d’ajouter la colonne, comme dans le code suivant :
ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;
Ajouter une FILE MANAGED colonne à une table qui n’a pas FileSpace d’échecs.
Supprimer les fichiers gérés non référencés
Comme la collecte automatique des déchets n’est pas prise en charge, supprimez vous-même les fichiers non référencés. Le carnet suivant trouve les fichiers dans un FileSpace que aucune version de table ne mentionne, et les supprime éventuellement :
Carnet de notes de collecte des déchets FileType
Obtenir un ordinateur portable
FILE EXTERNAL
FILE EXTERNAL les colonnes sont des références à des fichiers déjà existants dans un volume du catalogue Unity.
Si vous disposez des privilèges requis sur le volume, vous pouvez mettre à jour ou supprimer ces fichiers. Databricks recommande d’utiliser des fichiers immuables. Une attribution de table expose les métadonnées du fichier, mais la lecture des octets du fichier nécessite également le READ VOLUME privilège sur le volume sous-jacent.
Un fichier externe associe chaque ligne de table à un fichier situé sur son chemin existant dans un volume du catalogue Unity :
Exemples FILE EXTERNAL
Pour créer un tableau avec une FILE EXTERNAL colonne :
CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);
Pour ajouter une FILE EXTERNAL colonne à une table existante :
ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;
Pour créer et remplir une table à partir d’un volume, en attribuant des identifiants uniques à chaque fichier :
CREATE TABLE documents AS
SELECT monotonically_increasing_id() AS id, file
FROM list_files('/Volumes/samples/sec/contracts/');
Gouvernance et comparaison du cycle de vie
Le tableau suivant compare comment FILE MANAGED et FILE EXTERNAL gouvernent l’accès aux fichiers ainsi que le cycle de vie des fichiers :
| Type de colonne | FILE MANAGED |
FILE EXTERNAL |
|---|---|---|
| Contrôle d’accès aux fichiers | Régis par les permissions de table et de volume, telles que SELECT sur la table et READ VOLUME sur le volume. |
Régis par des permissions de volume, telles que READ VOLUME. |
| Cycle de vie et garbage collection | Les fichiers sont liés aux lignes qui les référencent. Supprimer ces lignes rend les fichiers éligibles à la collecte des ordures. La collecte automatique des déchets n’est pas prise en charge. | Vous gérez les dossiers vous-même. Supprimer une ligne de table n’affecte pas le fichier sous-jacent dans le volume. |
Cas d’utilisation de type FICHIER
Les types gérés et externes FILE répondent tous deux aux défis suivants pour les cas d’utilisation utilisant des données non structurées :
| Défi | Type supporté FILE |
Benefits |
|---|---|---|
Fichiers trop volumineux pour être stockés en ligne BINARY |
FILE MANAGED ou FILE EXTERNAL |
Une FILE colonne stocke une référence, donc un fichier n’est lu que lorsqu’une fonction IA ou une UDF le traite. Cela évite de matérialiser de gros objets en ligne sur la table. |
| Cycle de vie et gouvernance déconnectés entre le système de fichiers et la table | FILE MANAGED |
Azure Databricks lie le cycle de vie de chaque fichier à la table, donc supprimer les lignes rend les fichiers éligibles au nettoyage au lieu de laisser des fichiers orphelins en stockage. |
| Charges de travail concurrentes qui nécessitent que les fichiers restent au même emplacement | FILE EXTERNAL |
Les fichiers restent sur leurs chemins de volume existants, sans être affectés par le cycle de vie de la table, donc les autres outils qui lisent les mêmes fichiers ne sont pas perturbés. |