Partager via


Présentation des tables

Une table réside dans un schéma et contient des lignes de données. Toutes les tables créées dans Azure Databricks utilisent Delta Lake par défaut. Les tables reposant sur 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 inscrit les métadonnées de table au metastore au sein d’un catalogue et d’un schéma. Toutes les tables managées et tables de streaming Unity Catalog sont des tables Delta. Les tables externes Unity Catalog peuvent être des tables Delta, mais ce n’est pas toujours nécessairement le cas.

Il est possible de 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. Vous pouvez choisir de créer les types de tableaux suivants en utilisant des formats autres que Delta Lake :

  • Tables externes.
  • Tables étrangères.
  • Tables inscrites dans le metastore Hive hérité.

Dans Unity Catalog, les tables se trouvent au troisième niveau de l’espace de noms à trois niveaux (catalog.schema.table) :

Diagramme du modèle objet Unity Catalog, orienté table

Types de table Azure Databricks

Azure Databricks vous permet d’utiliser les types de tables suivants.

Tables managées

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

Tables externes

Les tables externes, parfois appelées tables non managées, dissocient la gestion des fichiers de données sous-jacents de l’inscription au metastore. Les tables externes Unity Catalog peuvent stocker des fichiers de données en utilisant des formats courants lisibles par des systèmes externes. Consultez Utiliser des tables externes.

Tables Delta

Le terme table Delta est utilisé pour décrire n’importe quelle table reposant sur Delta Lake. Étant donné que les tables Delta sont les tables par défaut sur Azure Databricks, la plupart des références aux tables décrivent le comportement des tables Delta, sauf indication contraire.

Databricks vous recommande de toujours interagir avec les tables Delta en utilisant des noms de table complets plutôt que des chemins de fichier.

Tables de diffusion en continu

Les tables de streaming sont des tables Delta principalement utilisées pour le traitement des données incrémentielles. La plupart des mises à jour des tables de streaming se produisent par le biais d’opérations d’actualisation.

Vous pouvez inscrire les tables de streaming dans Unity Catalog à l’aide de Databricks SQL ou les définir dans le cadre d’un pipeline Delta Live Tables. Consultez Charger des données à l’aide de tables de streaming dans Databricks SQL. et Qu’est-ce que Delta Live Tables ?.

Tables étrangères

Les tables étrangères représentent les données stockées dans des systèmes externes connectés à Azure Databricks via Lakehouse Federation. Les tables étrangères sont en lecture seule sur Azure Databricks. Consultez Présentation de Lakehouse Federation.

Tables de caractéristiques

Toute table Delta managée par Unity Catalog avec une clé primaire est une table de caractéristiques. Vous pouvez éventuellement configurer des tables de caractéristiques à l’aide du Magasin de caractéristiques en ligne pour les cas d’utilisation présentant une faible latence. Consultez Utiliser des tables de caractéristiques dans le magasin de caractéristiques d’espace de travail.

Tables Hive (héritées)

Les tables Hive décrivent deux concepts distincts sur Azure Databricks, qui sont tous deux des modèles hérités qui ne sont pas recommandés.

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

Apache Spark prend en charge l’inscription et l’interrogation des tables Hive, mais ces codecs ne sont pas optimisés pour Azure Databricks. Databricks recommande d’inscrire les 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 dynamiques fait référence à une implémentation antérieure d’une fonctionnalité désormais implémentée en tant que vues matérialisées. Tout code hérité faisant référence à des tables dynamiques doit être mis à jour afin d’utiliser la syntaxe pour les vues matérialisées. Consultez Qu’est-ce que Delta Live Tables ? et Utiliser des vues matérialisées dans Databricks SQL.

Autorisations de table de base

Pour créer une table, les utilisateurs doivent disposer des autorisations CREATE TABLE et USE SCHEMA sur le schéma, et de l’autorisation USE CATALOG sur son catalogue parent. Pour interroger une table, les utilisateurs doivent disposer de l’autorisation SELECT sur la table, de l’autorisation USE SCHEMA sur son schéma parent et de l’autorisation USE CATALOG sur son catalogue parent.

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