Partager via


Qu’est-ce qu’une table ?

Une table réside dans un schéma et contient des lignes de données. Le type de table par défaut créé dans Azure Databricks est une table gérée par le catalogue Unity.

Le différentiateur principal pour les types de tables dans Azure Databricks est le catalogue propriétaire, comme décrit dans le tableau suivant :

Type de table Gestion du catalogue
Adresses IP gérées Unity Catalog
Externe Aucun
Étranger Un système externe ou un service catalogue

L’exemple suivant montre une table nommée prod.people_ops_employees qui contient des données sur cinq employés. Les métadonnées sont inscrites dans le catalogue Unity et les données sont stockées dans le stockage cloud.

Exemple de table contenant des données d’employé

Tables managées

Les tables managées gèrent les fichiers de données sous-jacents en même temps que l’inscription du metastore. Databricks vous recommande d’utiliser des tables managées chaque fois que vous créez une table. Les tables gérées par le catalogue Unity sont les tables par défaut lorsque vous créez des tables dans Azure Databricks. Ils utilisent toujours Delta Lake. Consultez Utiliser des tables managées.

Tables externes

Les tables externes, parfois appelées tables non managées, référencent les données stockées en dehors de Databricks dans un système de stockage externe, comme le stockage d’objets cloud. Ils dissocient la gestion des fichiers de données sous-jacents de l'enregistrement dans le métastore. Unity Catalog >prend en charge les tables externes dans plusieurs formats, notamment Delta Lake. Les tables externes du catalogue Unity peuvent stocker des fichiers de données à l’aide de formats courants lisibles par des systèmes externes. Consultez Utiliser des tables externes.

Tables étrangères

Les tables étrangères représentent les données stockées dans des systèmes externes connectés à Azure Databricks via la fédération Lakehouse ou la fédération de metastore Hive. Les tables étrangères sont en lecture seule sur Azure Databricks. Voir Utiliser des tables étrangères.

Tables dans le catalogue Unity

Dans le catalogue Unity, les tables se trouvent au troisième niveau de l’espace de noms à trois niveaux (catalog.schema.table), comme illustré dans le diagramme suivant.

Diagramme du modèle objet Unity Catalog, centré sur la table

Autorisations de table de base

La plupart des opérations de table nécessitent des 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 nécessaires pour les opérations de table courantes dans le catalogue Unity :

Opération Autorisations
Créer une table CREATE TABLE sur le schéma conteneur
Interrogation d’une table SELECT sur la table
Mettre à jour, supprimer, fusionner ou insérer des données dans une table SELECT et MODIFY sur la table
Suppression d’une table MANAGE sur la table
Remplacer une table MANAGE sur la table, CREATE TABLE sur le schéma conteneur

Pour plus d’informations sur les autorisations du catalogue Unity, consultez Gérer les privilèges dans le catalogue Unity.

Qu’est-ce qu’une table Delta ?

Les tables soutenues par Delta Lake sont également appelées tables Delta.

Une table Delta stocke les données sous la forme d’un répertoire de fichiers dans le stockage d’objets cloud et enregistre les métadonnées de table dans le metastore au sein d’un catalogue et d’un schéma. Consultez Présentation de Delta Lake.

Delta Lake est le format par défaut utilisé chaque fois que vous enregistrez des données ou créez une table dans Azure Databricks. Étant donné que les tables Delta sont la valeur par défaut sur Databricks, la plupart des références aux tables décrivent le comportement des tables Delta, sauf indication contraire.

Databricks recommande d’interagir toujours avec des tables Delta à l’aide de noms de tables complets plutôt que de chemins d’accès aux fichiers.

Vous pouvez créer des tables sur Databricks qui n’utilisent pas Delta Lake. Ces tables ne fournissent pas les garanties transactionnelles ni les performances optimisées des tables Delta.

Le tableau suivant décrit les tables Delta courantes que vous pouvez rencontrer dans Azure Databricks :

Type de la table Description
Table managée Unity Catalog Toujours soutenu par Delta Lake. Type de table par défaut et recommandé sur Azure Databricks. Fournit de nombreuses optimisations intégrées.
Table externe du catalogue Unity Peut éventuellement être soutenu par Delta Lake. Prend en charge certains modèles d’intégration hérités avec des clients Delta Lake externes.
Table de diffusion en continu Jeu de données DLT soutenu par Delta Lake qui inclut une définition de flux APPLY CHANGES INTO ou d’ajout pour le traitement incrémentiel.
Vue matérialisée Jeu de données DLT soutenu par Delta Lake qui matérialise les résultats d’une requête à l’aide de la logique de flux managé.
Tables de fonctionnalités Toute table managée du catalogue Unity ou table externe avec une clé primaire déclarée. Utilisé dans les charges de travail ML sur Azure Databricks.
Table étrangère d’Unity Catalog Est susceptible d’être prise en charge par Delta Lake, en fonction du catalogue externe. Les tables étrangères soutenues par Delta Lake n’ont pas beaucoup d’optimisations présentes dans les tables gérées par le catalogue Unity.
Table metastore Hive Les tables du metastore Hive incluent des tables étrangères dans un metastore Hive fédéré interne ou externe, ainsi que des tables dans le metastore Hive de l’espace de travail hérité. Les tables de metastore Hive managées et externes peuvent éventuellement être prises en charge par Delta Lake.

Autres types de tables

Bien que les tables gérées, externes et étrangères soient les types de tables fondamentaux dans Azure Databricks, certains produits, fonctionnalités et syntaxe font d’autres distinctions. Cette section décrit certaines de ces autres tables.

Tables de diffusion en continu

Les tables de streaming sont des tables Delta utilisées pour traiter les données incrémentielles dans DLT. La plupart des mises à jour des tables de diffusion en continu se produisent par le biais d’opérations d’actualisation.

Vous pouvez inscrire des tables de diffusion en continu dans Unity Catalog à l’aide de Databricks SQL ou les définir dans le cadre d’un pipeline DLT. Consultez les tables de diffusion en continu, utiliser des tables de diffusion en continu dans Databricks SQL et DLT.

Tables de fonctionnalités

Toute table Delta gérée par Unity Catalog qui a une clé primaire est une table de fonctionnalités. Consultez Utiliser des tables de fonctionnalités dans le catalogue Unity.

Tables en ligne

Une table en ligne est une copie en lecture seule d’une table Delta stockée dans un format orienté ligne optimisé pour l’accès en ligne. Consultez Utiliser des tables en ligne pour la mise en service de fonctionnalités en temps réel.

Tables Hive (héritées)

Les tables Hive décrivent les tables implémentées à l’aide de modèles hérités, notamment le metastore Hive hérité, les codecs Hive SerDe ou la syntaxe Hive SQL.

Par défaut, les tables enregistrées à l’aide du metastore Hive hérité stockent les données dans la racine DBFS héritée. Databricks recommande de migrer toutes les tables du HMS hérité vers le catalogue Unity. Consultez Objets de base de données dans le metastore Hive hérité.

Vous pouvez éventuellement fédérer un metastore Hive au catalogue Unity. Consultez Fédération du métastore Hive : activez le catalogue Unity pour gérer les tables inscrites dans un métastore Hive.

Apache Spark prend en charge l’inscription et l’interrogation de tables Hive, mais ces codecs ne sont pas optimisés pour Azure Databricks. Databricks recommande d’inscrire des tables Hive uniquement pour prendre en charge les requêtes sur les données écrites par des systèmes externes. Consultez Table Hive (héritée).

Tables dynamiques (déconseillées)

Le terme tables actives fait référence à une implémentation antérieure des fonctionnalités désormais implémentées en tant que vues matérialisées. Tout code hérité qui référence des tables dynamiques doit être mis à jour pour utiliser la syntaxe pour les vues matérialisées. Consultez DLT et Utiliser des vues matérialisées dans Databricks SQL.