Notes
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.
Importante
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 Unity Catalog, 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 votre modèle 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.
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. 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.
Toutes les lectures et écritures dans des 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
Remarque
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.
Caractéristique | Avantages |
---|---|
Optimisation prédictive | Optimise la disposition et le calcul de vos données à l’aide de l’IA, en dimensionnant automatiquement les tâches de calcul, de binpacking pour optimiser l’efficacité et de journaliser les résultats afin de pouvoir observer ce qui s’est passé. L’optimisation prédictive s’exécute automatiquement :
Cette fonctionnalité réduit les coûts de calcul et de stockage en économisant la taille du stockage. Consultez Optimisation prédictive pour les tables managées Unity Catalog. |
Regroupement automatique de liquides | Les données sont automatiquement regroupées en clusters de manière la plus efficace, en fonction des modèles d’accès aux requêtes de table, ce qui augmente les performances des requêtes pour tous les clients (Databricks et non-Databricks). Consultez Clustering liquide automatique. |
Statistiques automatiques | La collecte de statistiques améliore les performances des requêtes en ignorant les données et en mettant en place des stratégies de jointures efficacement. Collecte automatique des statistiques essentielles, telles que les valeurs minimales et maximales pour les colonnes, Azure Databricks peut déterminer quels fichiers ne sont pas pertinents et les exclure pendant l’exécution de la requête. Cela réduit la surcharge de calcul. Tables externes du catalogue Unity qui génèrent des statistiques basées sur les 32 premières colonnes par défaut, tandis que les tables gérées par le catalogue Unity collectent dynamiquement des statistiques pour les colonnes les plus pertinentes pour les charges de travail de requête. |
Mise en cache des métadonnées | Mise en cache en mémoire des métadonnées de transaction pour réduire les demandes adressées au journal des transactions stockés dans le cloud. Cette fonctionnalité améliore les performances des requêtes. |
Optimisation de la taille des fichiers | Azure Databricks compacte automatiquement les tailles des fichiers afin qu'elles soient optimales, en apprenant à partir des données recueillies de milliers de déploiements en production en coulisses. Azure Databricks détermine automatiquement la taille de fichier cible et ajuste les écritures pour mieux se conformer à ces tailles de fichier, ce qui peut contribuer à améliorer les performances des requêtes et à réduire les coûts de stockage. Consultez Configurer Delta Lake pour contrôler la taille du fichier de données. |
DROP TABLE |
Si vous SUPPRIMEZ une table gérée, les données sont supprimées automatiquement dans le stockage cloud après 7 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. |
Créer une table managée
Pour créer une table managée, vous devez disposer des options suivantes :
-
USE SCHEMA
sur le schéma parent de la table. -
USE CATALOG
sur le catalogue parent de la table. -
CREATE TABLE
sur 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.
Remarque
Pour créer une table Iceberg, spécifiez USING iceberg
explicitement . 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 :
-
MANAGE
sur la table ou vous devez être le propriétaire de la table. -
USE SCHEMA
sur le schéma parent de la table. -
USE CATALOG
sur 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 7 jours. Au bout de 7 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.