Commits de catalogue
Les commits de catalogue déplacent la coordination des commits du système de fichiers vers Unity Catalog, faisant du catalogue la source unique de vérité pour l'état des tables Delta Lake et Apache Iceberg. Cela permet des transactions multi-tables, une planification de query plus rapide et un accès gouverné à toutes les opérations de table.
Les transactions Delta Lake traditionnelles coordonnent les commits au niveau de chaque table. Chaque table gère son propre logs de transactions et la détection des conflits de manière indépendante. En déplaçant la coordination des commits au niveau du catalogue, cela permet aux organisations de gouverner de manière cohérente tout l'accès au Lakehouse via Unity Catalog. Il permet également à Unity Catalog d'orchestrer les commits sur plusieurs tables dans les limites d'une seule transaction tout en maintenant les garanties ACID de Delta Lake.
Avantages
Les commits de catalogue offrent les capacités suivantes :
- Transactions sur plusieurs tables : exécutez plusieurs instructions SQL sur plusieurs tables sous la forme d'un seul commit atomique. Toutes les modifications s'effectuent ensemble ou échouent ensemble. Voir Transactions.
Aperçu
Les transactions qui écrivent dans les tables Iceberg gérées par Unity Catalog sont en préversion privée. Pour rejoindre cette préversion, soumettez le formulaire d'inscription à la préversion des tables Iceberg gérées.
-
**Accès régi :** Les lectures et écritures sont coordonnées via Unity Catalog, de sorte que les moteurs voient le dernier état validé et que les politiques de gouvernance sont appliquées.
-
Planification et écritures des query plus rapides : Unity Catalog informe un client Delta des métadonnées au niveau de la table directement lorsqu'il accède à une table, contournant le stockage cloud et éliminant une source majeure de latence des métadonnées.
-
Contraintes applicables : Unity Catalog valide ou rejette les modifications de schéma et de contraintes, empêchant les mises à jour incompatibles qui pourraient compromettre l'intégrité des données ou les charges de travail en aval.
-
Accès externe : écrivez en toute sécurité dans des tables gérées par Unity Catalog depuis des moteurs externes. Unity Catalog coordonne les commits pour éviter la corruption et les conflits de concurrence. Voir Accéder aux données Databricks à l'aide de systèmes externes.
Bêta
Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.
Exigences
- Les tables doivent être des tables gérées par Unity Catalog (Delta ou Iceberg).
- Databricks Runtime 16,4 et versions supérieures sont requis pour lire, écrire ou créer des tables avec des commits de catalogue activés.
- Databricks Runtime 18.0 et versions ultérieures est requis pour activer ou désactiver les commits de catalogue sur les tables existantes.
Activer les commits de catalogue
Vous pouvez activer les commits du catalogue sur les tables nouvelles et existantes.
Activer les commits de catalogue pour les nouvelles tables
Utilisez la propriété de table delta.feature.catalogManaged lors de la création d'une table :
CREATE TABLE sales_data (
sale_id BIGINT,
amount DECIMAL(10,2),
sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Activer les commits de catalogue pour les tables existantes
Utilisez ALTER TABLE pour ajouter des commits de catalogue à une table existante :
ALTER TABLE sales_data SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
L'activation des commits de catalogue sur une table existante synchronise l'état de la table avec le catalogue. Cette opération peut prendre plusieurs minutes sur des tables avec des volumes élevés d'opérations d'écriture.
Vérifier si le catalog commit est activé
Pour vérifier si une table a les commits de catalogue activés :
DESCRIBE DETAIL sales_data;
Si activé, catalogManaged apparaît dans la colonne tableFeatures.
Désactiver les commits de catalogue
Vous pouvez désactiver les commits de catalogue à l'aide de Databricks Runtime 18.0 et versions ultérieures. Voir supprimer une fonctionnalité de table Delta Lake et rétrograder le protocole de table.
N'annulez pas les opérations de mise à niveau ou de déclassement pendant l'exécution des instructions ALTER ou DROP. Une interruption pourrait laisser la table dans un état partiellement mis à niveau ou déclassé, la bloquant pour toutes les lectures et écritures futures. Pour annuler, exécutez à nouveau la commande appropriée plutôt que d'annuler. Veuillez contacter le support Databricks si la table se verrouille.
Limitations
-
Vous ne pouvez pas activer ou désactiver les commits de catalogue sur les tables existantes à l'aide de
CREATE OR REPLACE TABLEouREPLACE TABLE. UtilisezCREATE TABLEavec la propriétédelta.feature.catalogManagedpour l'activer lors de la création d'une table, ouALTER TABLEpour l'activer ou la désactiver sur une table existante. -
Pour utiliser les commits de catalogue sur les tables de streaming, vous devez contacter votre équipe de compte Databricks et demander l'accès à la préversion publique.
-
Les commits de catalogue ne sont pas compatibles avec l'accès aux données externes sur les tables de streaming. Pour utiliser les commits de catalogue, vous devez d'abord désactiver l'accès externe. Consultez Activer l'accès aux données externes aux tables de streaming et aux vues matérialisées.
-
Les tables pour lesquelles les commits du catalogue sont activés sont partagées via OpenSharing à l'aide d'URL pré-signées au lieu de jetons cloud.
-
Les vues matérialisées ne peuvent pas avoir de commits de catalogue activés.
-
Les clusters mono-utilisateur ne peuvent pas accéder aux tables de streaming dont les commits de catalogue Unity Catalog sont activés.