Concepts des tables Databricks
Databricks prend en charge trois types de tables principaux (gérées, externes et étrangères) et deux formats de stockage ouverts (Delta Lake et Apache Iceberg). Choisir la bonne combinaison détermine la manière dont les données sont stockées, régies et optimisées.
Une table Databricks réside dans un schéma et contient des lignes de données. Le type de table default créé dans Databricks est une table gérée par Unity Catalog.
Formats de stockage
Les formats de stockage définissent la manière dont les données sont physiquement structurées et suivies dans le stockage d'objets.
Databricks prend en charge deux principaux formats de stockage de table ouverts :
- Delta Lake est le format de stockage par default pour les tables gérées et externes dans Databricks. Delta est également pris en charge pour les tables étrangères.
- Apache Iceberg est pris en charge pour les tables gérées et étrangères dans Databricks. Ce format est utile lorsque vous vous intégrez à l'écosystème Iceberg.
Les deux formats ajoutent une couche de stockage transactionnel qui assure le suivi des métadonnées et prend en charge la conformité ACID (atomicité, cohérence, isolement et durabilité), le time travel et d'autres fonctionnalités.
Types de table
Les types de tables dans Databricks définissent comment les données sont possédées et accédées.
Databricks prend en charge trois types de tables primaires. Les types de tables sont déterminés par le catalogue qui possède et gère les fichiers de données sous-jacents, comme décrit dans le tableau suivant :
Type de table | Gestion du catalogue | Prise en charge de la lecture/écriture | Optimisation des performances | Optimisation du coût de stockage |
|---|---|---|---|---|
Unity Catalog | Oui | Oui | Oui | |
Temporaire | Aucun (table gérée à portée de session) | Oui | Oui | Oui |
Aucun (fichiers uniquement) | Oui | Manuel uniquement | Manuel uniquement | |
Un système externe ou un service de catalogue | Lecture seule | Non | Non |
Pour savoir comment sélectionner le bon type de table pour votre cas d'utilisation, consultez Sélectionner un type de table.
Tables gérées
Pour les tables gérées, Unity Catalog gère à la fois les fichiers de données et les métadonnées de la table. Les fichiers de données sont stockés dans l'emplacement de stockage géré de Unity Catalog dans le stockage cloud. Les tables gérées par Unity Catalog sont le comportement par default lorsque vous créez des tables dans Databricks.
Databricks vous recommande d’utiliser des tables gérées chaque fois que vous créez une nouvelle table. Les tables gérées mettent automatiquement en œuvre des améliorations de performance, réduisent les coûts de stockage et de compute, et permettent l’accès à des systèmes externes, tels que Trino. Veuillez consulter les tables gérées.
L'exemple suivant montre une table gérée nommée prod.people_ops_employees qui contient des données sur cinq employés :

Tables externes
Les tables externes, parfois appelées tables non gérées , référencent les données stockées dans un système de stockage externe, tel que le stockage d'objets cloud. Databricks enregistre les métadonnées de la table, mais ne gère pas les fichiers de données sous-jacents. Unity Catalog prend en charge les tables externes dans plusieurs formats, y compris Delta Lake, ce qui vous permet de les lire avec des systèmes externes. Consultez les tables externes.
Tables étrangères
Les tables étrangères représentent des données stockées dans des systèmes externes connectés à Databricks via la Lakehouse Federation. Les tables étrangères sont en lecture seule sur Databricks. Consultez Tables étrangères.
Tables temporaires
Les tables temporaires sont des tables délimitées par la session qui stockent les données pendant la durée d'une session Databricks. Ils sont utiles pour matérialiser les résultats intermédiaires sans créer de tables permanentes dans votre catalogue. Databricks supprime automatiquement les tables temporaires à la fin de la session, et vous n'avez pas besoin de privilèges de catalogue ou de schéma pour les créer. Consultez Tables temporaires dans Databricks SQL et Databricks Runtime.
Sélectionnez un type de table
Utilisez les tables gérées pour la plupart des nouvelles tables. Databricks automatise l'optimisation, la gestion du cycle de vie du stockage et l'accès externe.
Utilisez les tables externes lorsque :
- Vous devez enregistrer les données existantes dans le stockage cloud sans les déplacer.
- Vous avez besoin d'un accès direct basé sur le chemin à partir de clients non-Databricks.
- Vous travaillez avec des formats de fichiers non pris en charge par les tables gérées, tels que CSV ou JSON.
- La suppression de la table ne doit pas supprimer les fichiers de données sous-jacents.
Utilisez les tables étrangères lorsque vous avez besoin d'un accès en lecture seule aux données dans un système externe connecté via Lakehouse Federation, tel qu'un Hive metastore ou un catalogue AWS Glue.
Pour le format de stockage, Delta Lake est le format default et recommandé pour la plupart des charges de travail. Utilisez Apache Iceberg lors de l'intégration avec des systèmes externes qui nécessitent le format Iceberg.
Tables dans Unity Catalog
Dans Unity Catalog, les tables existent au troisième niveau de l'espace de noms à trois niveaux (catalog.schema.table), comme illustré dans le schéma suivant :

Autorisations de table de base
La plupart des opérations de table nécessitent les autorisations USE CATALOG et USE SCHEMA sur le catalogue et le schéma contenant une table.
Le tableau suivant récapitule les autorisations supplémentaires requises pour les opérations de table courantes dans Unity Catalog :
Opérations | Autorisations |
|---|---|
Créer une table |
|
Interroger une table |
|
Mettre à jour, supprimer, Merge ou insérer des données dans une table |
|
Supprimer une table |
|
Remplacer une table |
|
Pour une référence de la syntaxe SQL pour ces opérations, consultez :
Pour plus d’informations sur les autorisations Unity Catalog, consultez Gérer les privilèges dans Unity Catalog.