Types de tables de catalogue Databricks Unity

Unity Catalog prend en charge trois types de tables principaux : tables managées, externes et étrangères. Chaque type diffère de la façon dont les données sont stockées, gérées et régies.

Tables managées

Les tables managées sont le type de table par défaut et recommandé. Unity Catalog gère le cycle de vie des données, l’emplacement de stockage et les optimisations. Lorsque vous supprimez une table managée, les métadonnées et les fichiers de données sous-jacents sont supprimés.

Les tables managées sont soutenues par Delta Lake ou Apache Iceberg et fournissent :

  • Optimisation automatique pour réduire les coûts de stockage et de calcul
  • Performances des requêtes plus rapides sur tous les types de clients
  • Maintenance automatique des tables
  • Sécuriser l’accès pour les clients non Databricks via des API ouvertes
  • Mises à niveau automatiques vers les dernières fonctionnalités de la plateforme

Les fichiers de données sont stockés dans le schéma ou le catalogue contenant la table. Consultez les tables gérées par le catalogue Unity dans Azure Databricks pour Delta Lake et Apache Iceberg.

Tables externes

Les tables externes référencent les données stockées dans le stockage d’objets cloud que vous gérez. Unity Catalog régit l’accès aux données, mais ne gère pas le cycle de vie des données, les optimisations ou la disposition du stockage. Lorsque vous supprimez une table externe, seules les métadonnées du catalogue sont supprimées et les fichiers de données sous-jacents restent.

Les tables externes du catalogue Unity prennent en charge les formats Delta Lake, CSV, JSON, AVRO, PARQUET, ORC et TEXT. Databricks vous recommande d’utiliser le format Delta Lake, car il offre des garanties transactionnelles et des optimisations de performances que les autres formats ne le font pas.

Utilisez des tables externes lorsque vous devez :

  • Inscrire des données existantes qui ne sont pas compatibles avec les tables gérées par le catalogue Unity
  • Fournir un accès direct aux données à partir de clients non Databricks qui ne prennent pas en charge d’autres modèles d’accès externe

Consultez Utiliser des tables externes.

Tables étrangères

Les tables étrangères (également appelées tables fédérées) sont des tables en lecture seule gérées par un catalogue étranger inscrit dans le catalogue Unity. Les systèmes externes gèrent les données et les métadonnées, tandis que Unity Catalog ajoute la gouvernance des données pour l’interrogation.

Azure Databricks prend en charge deux méthodes pour inscrire des tables étrangères :

  • Fédération de requêtes : utilise des connexions JDBC sécurisées à des systèmes de données externes tels que PostgreSQL et MySQL
  • Fédération de catalogue : connecte des catalogues externes pour interroger des données directement dans le stockage de fichiers

Les tables étrangères utilisant le format Delta Lake ne disposent pas de nombreuses optimisations disponibles dans les tables gérées par le catalogue Unity. Pour les charges de travail de production ou les jeux de données fréquemment interrogés, migrez vers des tables gérées par le catalogue Unity pour de meilleures performances. Voir Utiliser des tables étrangères.

Comparaison des types de tables

Le tableau suivant compare les trois types de tables :

Fonctionnalité Tables managées Tables externes Tables étrangères
Gestion du cycle de vie des données Unity Catalog gère Vous gérez Le système externe gère
Emplacement de stockage Unity Catalog gère Vous spécifiez Le système externe gère
Optimisations automatiques Yes Limité No
Formats pris en charge Delta Lake, Apache Iceberg Delta Lake (recommandé), CSV, JSON, AVRO, PARQUET, ORC, TEXT Dépend du système externe
Données supprimées sur DROP TABLE Yes No No
Idéal pour Charges de travail de production, données fréquemment interrogées Intégrations héritées, données existantes Migration à partir de systèmes externes, accès temporaire

Autres types de tables

Azure Databricks prend également en charge les types de tables spécialisés pour des cas d’usage spécifiques :

  • Tables de streaming : datasets associés à des pipelines déclaratifs Lakeflow Spark soutenus par Delta Lake avec une logique de traitement incrémentielle
  • Vues matérialisées : jeux de données des pipelines déclaratifs Spark Lakeflow pris en charge par Delta Lake qui matérialisent les résultats des requêtes à l’aide d’une logique de flux gérée automatiquement

Types de tables hérités

Les types de tables hérités suivants sont pris en charge pour assurer la rétrocompatibilité, mais ne sont pas recommandés pour de nouveaux développements.

Tables Hive

Les tables Hive sont gérées par le metastore Hive hérité et utilisent des modèles hérités, notamment des codecs Hive SerDe et la syntaxe Hive SQL. Par défaut, les tables inscrites à l’aide du metastore Hive hérité stockent les données dans la racine DBFS héritée.

Databricks vous recommande de migrer toutes les tables du HMS hérité vers le catalogue Unity. Consultez Objets de base de données dans le metastore hérité de Hive.

Vous pouvez éventuellement fédérer un metastore Hive au catalogue Unity et accéder aux tables en tant que tables étrangères dans le 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 les codecs Hive SerDe ne sont pas optimisés pour Azure Databricks. Inscrivez des tables Hive uniquement lorsque vous devez prendre en charge les requêtes sur les données écrites par des systèmes externes. Consultez la table Hive (héritée).

Tables dynamiques

Le terme tables dynamiques fait référence à une implémentation antérieure des fonctionnalités désormais disponibles en tant que vues matérialisées. Mettez à jour le code hérité qui référence des tables dynamiques pour utiliser la syntaxe de vue matérialisée. Consultez les pipelines déclaratifs Lakeflow Spark et les vues matérialisées.