Validations de catalogue

Les validations de catalogue déplacent la coordination des validations du système de fichiers vers Unity Catalog, faisant de ce catalogue la seule source de vérité pour l’état des tables Delta Lake et Apache Iceberg. Cela permet des transactions multi-tables, une planification des requêtes plus rapide et un accès régi sur toutes les opérations de table.

Les transactions Delta Lake traditionnelles coordonnent les validations au niveau de la table individuelle. Chaque table gère indépendamment son propre journal des transactions et la détection des conflits. En déplaçant la coordination de la validation au niveau du catalogue, cela permet aux organisations de régir de manière cohérente tous les accès à Lakehouse via Unity Catalog. Il permet également à Unity Catalog d’orchestrer les validations sur plusieurs tables au sein d’une limite de transaction unique tout en conservant les garanties ACID de Delta Lake.

Avantages

Les commits de catalogue fournissent les fonctionnalités suivantes :

  • Transactions couvrant plusieurs tables : exécutez plusieurs instructions SQL sur plusieurs tables en tant que validation atomique unique. Toutes les modifications réussissent ensemble ou échouent ensemble. Voir Transactions.

    Important

    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, envoyez le formulaire d’inscription en préversion des tables Iceberg managées.

  • Accès régi : les lectures et les écritures sont coordonnées via le catalogue Unity, de sorte que les moteurs voient le dernier état validé et que les stratégies de gouvernance sont appliquées.

  • Planification et écritures de requêtes plus rapides : Unity Catalog informe un client Delta des métadonnées au niveau de la table directement lorsqu’il accède à une table, ignore le stockage cloud et supprime une source majeure de latence de métadonnées.

  • Contraintes applicables : Unity Catalog valide ou rejette les modifications de schéma et de contrainte, empêchant les mises à jour incompatibles susceptibles d’interrompre 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 le catalogue Unity à partir de moteurs externes. Le catalogue Unity coordonne les transactions pour éviter la corruption et les conflits de concurrence. Consultez Accéder aux données de Databricks à l’aide de systèmes externes.

    Important

    Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.

Requirements

  • Les tables doivent être des tables gérées par le catalogue Unity (Delta ou Iceberg), y compris les tables en streaming, ou des vues matérialisées.
  • Databricks Runtime 16.4 ou une version ultérieure est requis pour lire depuis des tables gérées, y écrire ou en créer lorsque les validations du catalogue sont activées.
  • Databricks Runtime 18.0 ou version ultérieure est requis pour activer ou désactiver les validations du catalogue sur les tables gérées existantes.
  • La version 17.3 ou ultérieure de Databricks Runtime est requise pour lire depuis ou écrire dans des tables de streaming ou des vues matérialisées avec les commits de catalogue activés.
  • Dans les pipelines déclaratifs Spark, un calcul sans serveur ou un calcul classique avec Databricks Runtime 17.3 ou version ultérieure est requis pour lire, écrire dans, créer ou mettre à niveau des tables en streaming ou des vues matérialisées lorsque les validations de catalogue sont activées.
  • Databricks Runtime 18 LTS ou version ultérieure est requis pour désactiver les commits de catalogue sur les tables de streaming ou les vues matérialisées existantes.

Activer les validations de catalogue

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

Activez les commits de catalogue pour les nouvelles tables gérées

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

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

Activez les commits de catalogue pour les tables gérées existantes

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

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

Important

L’activation des validations de catalogue sur une table existante synchronise l’état de la table avec le catalogue. Cette opération peut prendre plusieurs minutes pour les tables qui enregistrent un volume élevé d’opérations d’écriture.

Activez 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 en streaming ou de la vue matérialisée, puis exécutez une mise à jour. Pour un objet existant, mettez à jour sa définition originale. La fonction ALTER TABLE ... SET TBLPROPERTIES n'est pas prise en charge.

L’exemple suivant permet des commits de catalogue pour une table de streaming nouvelle ou existante :

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 tableau dans sa CREATE OR REFRESH MATERIALIZED VIEW définition.

Vérifier si les validations de catalogue sont activées

Pour vérifier si une table a les validations de catalogue activées :

DESCRIBE DETAIL sales_data;

Si cette option est activée, catalogManaged apparaît dans la tableFeatures colonne.

Désactiver les commits du catalogue

Utilisez Databricks Runtime 18.0 et versions supérieures pour désactiver les commits de catalogue sur une table gérée existante.

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

Consultez Supprimer une fonctionnalité de table Delta Lake et passer à une version antérieure du protocole de table.

Warning

N’annulez pas les opérations de mise à niveau ou de rétrogradation lors de l’exécution ALTER ou DROP des instructions. L’interruption peut laisser la table dans un état partiellement mis à niveau ou rétrogradé, la verrouillant et empêchant toutes les lectures et écritures futures. Pour rétablir, réexécutez la commande appropriée au lieu d’annuler. Contactez le support Databricks si la table devient verrouillée.

Limitations

  • Vous ne pouvez pas activer ou désactiver les commits de catalogue sur des tables gérées existantes en utilisant 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 le désactiver dans une table gérée existante.
  • Les commits de catalogue ne sont pas compatibles avec l’accès externe aux données sur les tables de streaming ou les vues matérialisées. Pour utiliser les validations de catalogue, vous devez d’abord désactiver l’accès externe. Consultez Activer l’accès à des données externes pour les tables en continu et les vues matérialisées.
  • Les tables avec validations de catalogue activées 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 pour lesquelles les validations du catalogue sont activées.

Ressources supplémentaires