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
Les tables managées du catalogue Unity sont généralement disponibles pour les tables Delta Lake. Pour les tables Apache Iceberg, cette fonctionnalité est disponible en préversion publique et disponible dans Databricks Runtime 16.4 LTS et versions ultérieures.
Cette page décrit les tables managées du catalogue Unity dans Delta Lake et Apache Iceberg, le type de table par défaut et recommandé dans Azure Databricks. Ces tables sont entièrement régies et optimisées par le catalogue Unity, offrant des performances, des avantages opérationnels et des coûts de stockage et de calcul inférieurs par rapport aux tables externes et étrangères, car les tables managées apprennent à partir de vos modèles de lecture et d’écriture. Unity Catalog gère toutes les responsabilités de lecture, d’écriture, de stockage et d’optimisation pour les tables managées. Consultez Convertir une table externe en table de catalogue Unity managée.
Les fichiers de données pour les tables managées sont stockés dans le schéma ou le catalogue qui les contient. Consultez Spécifier un emplacement de stockage managé dans Unity Catalog.
Databricks recommande d’utiliser des tables managées pour tirer parti des points suivants :
- Réduction des coûts de stockage et de calcul.
- Performances des requêtes plus rapides sur tous les types de clients.
- Maintenance et optimisation automatiques des tables.
- Sécuriser l’accès pour les clients non Databricks via des API ouvertes.
- Prise en charge des formats Delta Lake et Iceberg.
- Mises à niveau automatiques vers les dernières fonctionnalités de la plateforme.
Les tables managées prennent en charge l’interopérabilité en autorisant l’accès à partir de clients Delta Lake et Iceberg. Grâce aux API ouvertes et à la distribution de justificatifs, Unity Catalog permet aux moteurs externes tels que Trino, DuckDB, Apache Spark, Daft et aux moteurs intégrés aux catalogues REST comme Iceberg et Dremio d'accéder aux tables managées. Pour les clients externes qui ne prennent pas en charge les API ouvertes, vous pouvez utiliser le mode de compatibilité pour lire des tables gérées à l’aide de n’importe quel client Delta Lake ou Iceberg. Le partage Delta, un protocole open source, permet un partage de données sécurisé et régi avec des partenaires externes et des plateformes.
Vous pouvez utiliser des tables managées dans tous les langages et produits pris en charge dans Azure Databricks. Vous avez besoin de certains privilèges pour créer, mettre à jour, supprimer ou interroger des tables gérées. Consultez Gérer les privilèges dans Unity Catalog.
Note
Cette page se concentre sur les tables gérées par le catalogue Unity. Pour les tables managées dans le metastore Hive hérité, consultez Objets de base de données dans le metastore Hive hérité.
Pourquoi utiliser des tables managées du catalogue Unity ?
Les tables gérées par le catalogue Unity optimisent automatiquement les coûts de stockage et les vitesses de requête à l’aide de technologies pilotées par l’IA, telles que le clustering automatique, le compactage de taille de fichier et la collecte de statistiques intelligentes. Ces tables simplifient la gestion des données avec des fonctionnalités telles que le nettoyage automatique et la mise en cache des métadonnées, tout en garantissant l’interopérabilité avec les outils tiers Delta et Iceberg.
Les fonctionnalités suivantes sont uniques aux tables managées du catalogue Unity et ne sont pas disponibles pour les tables externes et les tables étrangères.
| Feature | Benefits | Activée par défaut ? | Paramétrable? |
|---|---|---|---|
| Optimisation prédictive | Optimise automatiquement la disposition et le calcul de vos données à l’aide de l’IA. Vous n’avez donc pas besoin de gérer manuellement les opérations pour les tables managées. Databricks recommande d’activer l’optimisation prédictive pour toutes les tables managées afin de réduire les coûts de stockage et de calcul. L’optimisation prédictive s’exécute automatiquement :
|
Oui, pour tous les nouveaux comptes créés le ou après le 11 novembre 2024. Pour les comptes actuels, Azure Databricks commence à déployer l’optimisation prédictive par défaut. Consultez Vérifier si l’optimisation prédictive est activée. |
Yes. Consultez Activer l’optimisation prédictive. |
| Clustering liquide automatique | Pour les tables avec optimisation prédictive, l’activation du clustering liquide automatique permet à Azure Databricks de sélectionner intelligemment des clés de clustering. À mesure que les modèles de requête changent, Azure Databricks met automatiquement à jour les clés de clustering pour améliorer les performances et réduire les coûts. | Non | Yes. Consultez Activer le clustering liquide. |
| Mise en cache des métadonnées | La mise en cache en mémoire des métadonnées de transaction améliore les performances des requêtes en minimisant les demandes adressées au journal des transactions stockés dans le cloud. Cette fonctionnalité améliore les performances des requêtes. | Oui | Non. La mise en cache des métadonnées est toujours activée pour les tables managées. |
Suppression automatique de fichiers après une DROP TABLE commande |
Si vous SUPPRIMEz une table managée, Azure Databricks supprime les données dans le stockage cloud après 8 jours, ce qui réduit les coûts de stockage. Pour les tables externes, vous devez accéder manuellement à votre compartiment de stockage et supprimer les fichiers. | Oui | Non. Pour les tables managées, les fichiers sont toujours supprimés automatiquement après 8 jours. |
Accéder aux données Databricks à l’aide de systèmes externes
Les tables managées prennent en charge l’interopérabilité en autorisant l’accès à partir de clients Delta Lake et Iceberg. Grâce aux API ouvertes et à l'octroi d'informations d'identification, Unity Catalog permet aux moteurs externes tels que Trino, DuckDB, Apache Spark, Daft et aux moteurs intégrés au catalogue REST comme Iceberg, ainsi qu'à des moteurs tels que Dremio et Snowflake, d’accéder aux tables gérées. Consultez les intégrations pour obtenir la liste des moteurs externes pris en charge ou consultez la documentation de votre moteur si elle n’est pas incluse dans cette liste.
Les API ouvertes suivantes fournissent un accès aux systèmes externes aux tables gérées par le catalogue Unity :
- API REST Unity : fournit un accès en lecture seule pour les clients Delta à des tables Delta gérées.
- Catalogue REST Iceberg (IRC) : fournit un accès en lecture-écriture pour les clients Iceberg aux tables Iceberg gérées et un accès en lecture seule aux tables Delta avec les lectures Iceberg activées (UniForm).
Les deux API prennent en charge la vente d’informations d’identification, qui fournit des informations d’identification temporaires et délimitées qui héritent des privilèges du principal Azure Databricks demandeur, en conservant les contrôles de gouvernance et de sécurité.
En outre, Delta Sharing est un protocole open source qui permet un accès sécurisé et régi aux données aux partenaires et plateformes externes. Vous pouvez utiliser le partage Delta pour accorder aux partenaires un accès temporaire en lecture seule.
Toutes les lectures et écritures dans les tables gérées doivent utiliser des noms de tables et des noms de catalogue et de schéma où elles existent. Par exemple : catalog_name.schema_name.table_name. L’accès basé sur le chemin d’accès aux tables managées du catalogue Unity n’est pas pris en charge (sauf en mode de compatibilité), car il contourne les contrôles d’accès du catalogue Unity et empêche les fonctionnalités de table managée de fonctionner correctement.
Créer une table managée
Pour créer une table managée, vous devez disposer des options suivantes :
-
USE SCHEMAsur le schéma parent de la table. -
USE CATALOGsur le catalogue parent de la table. -
CREATE TABLEsur le schéma parent de la table.
Utilisez la syntaxe SQL suivante pour créer une table managée vide à l’aide de SQL. Remplacez les valeurs d’espace réservé :
-
<catalog-name>: nom du catalogue qui contiendra la table. -
<schema-name>: nom du schéma contenant la table. -
<table-name>: nom de la table. -
<column-specification>: nom et type de données de chaque colonne.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
);
-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
)
USING iceberg;
Pour maintenir les performances sur les lectures et les écritures, Azure Databricks exécute régulièrement des opérations pour optimiser les métadonnées de table Iceberg managées. Cette tâche est effectuée à l'aide du calcul serverless, qui dispose d'autorisations MODIFY sur la table Iceberg. Cette opération n'écrit que dans les métadonnées de la table, et le calcul ne conserve les autorisations sur la table que pendant la durée de la tâche.
Note
Pour créer une table Iceberg, spécifiez USING icebergexplicitement . Sinon, Azure Databricks crée une table Delta Lake par défaut.
Vous pouvez créer des tables gérées à partir de résultats de requête ou d’opérations d’écriture dataFrame. Les articles suivants illustrent certains des nombreux modèles que vous pouvez utiliser pour créer une table managée sur Azure Databricks :
- CREATE TABLE [AVEC]
- CREATE TABLE LIKE
- Créer ou modifier une table à l’aide du chargement de fichiers
Supprimer une table gérée
Pour supprimer une table managée, vous devez disposer des options suivantes :
-
MANAGEsur la table ou vous devez être le propriétaire de la table. -
USE SCHEMAsur le schéma parent de la table. -
USE CATALOGsur le catalogue parent de la table.
Pour supprimer une table managée, exécutez la commande SQL suivante :
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity Catalog prend en charge la UNDROP TABLE commande pour récupérer les tables managées supprimées pendant 8 jours. Au bout de 8 jours, Azure Databricks marque les données sous-jacentes à supprimer de votre locataire cloud et supprime les fichiers pendant la maintenance automatisée des tables. Voir UNDROP.