Aller au contenu principal

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.
info

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.

info

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), y compris les tables de streaming, ou des vues matérialisées.
  • Databricks Runtime 16.4 ou version supérieure est requis pour lire, écrire ou créer des tables gérées avec les catalog commits activés.
  • Databricks Runtime 18.0 ou version supérieure est requis pour activer ou désactiver les commits de catalogue sur les tables gérées existantes.
  • Databricks Runtime 17.3 ou une version ultérieure est requis pour lire ou écrire dans des tables de streaming ou des vues matérialisées avec les commits de catalogue activés.
  • Dans Spark Declarative Pipelines, un compute serverless ou un compute classique avec Databricks Runtime 17.3 ou version supérieure est requis pour lire, écrire, créer ou mettre à niveau des tables de streaming ou des vues matérialisées avec les catalog commits activés.
  • Databricks Runtime 18 LTS et versions supérieures sont requis pour désactiver les commit de catalogue sur les tables de streaming ou les vues matérialisées existantes.

Activer les commits de catalogue

Activez les commits de catalogue pour les tables gérées, les tables de streaming et les vues matérialisées, nouvelles ou existantes.

Activer les commit de catalogue pour les nouvelles tables gérées

Utilisez la propriété de table delta.feature.catalogManaged lors de la création d’une table gérée :

SQL
CREATE TABLE sales_data (
sale_id BIGINT,
amount DECIMAL(10,2),
sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');

Activer les commit de catalogue pour les tables gérées existantes

Utilisez ALTER TABLE pour ajouter des commits de catalogue à une table gérée existante :

SQL
ALTER TABLE sales_data SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
important

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.

Activer les commits de catalogue pour les tables de streaming ou les vues matérialisées nouvelles ou existantes

Ajoutez la propriété de table delta.feature.catalogManaged à la définition de la table de streaming ou de la vue matérialisée, puis exécutez une mise à jour. Pour un objet existant, mettez à jour sa définition d’origine. ALTER TABLE ... SET TBLPROPERTIES n’est pas pris en charge.

L’exemple suivant active les commits de catalogue pour une table de streaming nouvelle ou existante :

SQL
CREATE OR REFRESH STREAMING TABLE streaming_sales_data
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported')
AS SELECT * FROM STREAM sales_data;

Pour une vue matérialisée, utilisez la même propriété de table dans sa définition CREATE OR REFRESH MATERIALIZED VIEW.

Vérifier si le catalog commit est activé

Pour vérifier si une table a les commits de catalogue activés :

SQL
DESCRIBE DETAIL sales_data;

Si activé, catalogManaged apparaît dans la colonne tableFeatures.

Désactiver les commits de catalogue

Utilisez Databricks Runtime 18.0 ou une version ultérieure pour désactiver les commits de catalogue sur une table gérée existante.

Pour une table de streaming ou une vue matérialisée existante, utilisez Databricks Runtime 18 LTS ou une version supérieure.

Voir Supprimer une fonctionnalité de table Delta Lake et rétrograder le protocole de table.

attention

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 des tables gérées existantes à l’aide de CREATE OR REPLACE TABLE ou REPLACE TABLE. Utilisez CREATE TABLE avec la propriété delta.feature.catalogManaged pour l’activer lors de la création d’une table gérée, ou ALTER TABLE pour l’activer ou la désactiver sur une table gérée existante.

  • Les commits de catalogue ne sont pas compatibles avec l'accès aux données externes sur les tables de streaming ou les vues matérialisées. Pour utiliser les commits de catalogue, vous devez d'abord désactiver l'accès externe. Voir Activer l'accès aux données externes pour les tables de streaming et les 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 clusters mono-utilisateur ne peuvent pas accéder aux tables de streaming dont les commits de catalogue Unity Catalog sont activés.

Ressources supplémentaires