Partager via


Optimisation prédictive pour les tables managées Unity Catalog

Cette page décrit l’optimisation prédictive, qui exécute automatiquement les opérations de maintenance pour les tables managées Unity Catalog sur Azure Databricks.

Remarque

L’optimisation prédictive est activée par défaut pour les comptes créés le ou après le 11 novembre 2024. Databricks a commencé à activer les comptes existants le 7 mai 2025. Ce déploiement est progressif et devrait être terminé d’ici avril 2026. Pour vérifier si votre compte est déjà activé, consultez Vérifier si l’optimisation prédictive est activée.

Avec l’optimisation prédictive activée, Databricks effectue automatiquement les opérations suivantes :

  • Identifie les tables qui nécessitent des opérations de maintenance et met ces opérations en file d'attente pour exécution.
  • Collecte des statistiques lorsque les données sont écrites dans une table gérée.

Cela élimine les exécutions de maintenance inutiles et la charge du suivi et de la résolution des problèmes de performances manuellement.

Databricks recommande l’optimisation prédictive pour toutes les tables managées du catalogue Unity. Par exemple, le clustering liquide automatique utilise une optimisation intelligente de la disposition des données en fonction de vos modèles d’utilisation des données. Consultez Utilisation de Liquid Clustering pour les tables.

Quelles opérations l’optimisation prédictive exécute-t-elle ?

L’optimisation prédictive exécute les opérations suivantes sur les tables gérées par le catalogue Unity :

Opération Descriptif
OPTIMIZE Déclenche le clustering incrémentiel pour les tables activées. Consultez Utilisation de Liquid Clustering pour les tables. Améliore les performances des requêtes en optimisant les tailles de fichier. Consultez Optimiser la disposition des fichiers de données.
VACUUM Réduit les coûts de stockage en supprimant les fichiers de données qui ne sont plus référencés par la table. Consultez Supprimer les fichiers de données inutilisés avec le nettoyage.
ANALYZE Déclenche la mise à jour incrémentielle des statistiques pour améliorer les performances des requêtes. Voir ANALYZE TABLE ... STATISTIQUES DE CALCUL.

Remarque

OPTIMIZE ne s’exécute pas ZORDER lorsqu’il est exécuté par une optimisation prédictive. Sur les tables qui utilisent L’ordre Z, l’optimisation prédictive ignore les fichiers classés par Z.

Si le clustering liquide automatique est activé, l’optimisation prédictive peut sélectionner de nouvelles clés de clustering avant le clustering des données. Consultez Clustering liquide automatique.

Avertissement

La fenêtre de rétention pour VACUUM est déterminée par la propriété de table delta.deletedFileRetentionDuration, qui par défaut est fixée à 7 jours. VACUUM supprime les fichiers de données qui ne sont plus référencés par une version de table Delta dans cette fenêtre. Pour conserver les données pendant des durées plus longues (par exemple, pour prendre en charge les déplacements prolongés), définissez cette propriété avant d’activer l’optimisation prédictive :

ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');

Calcul et facturation

L’optimisation prédictive exécute les opérations ANALYZE, OPTIMIZE et VACUUM en utilisant le calcul serverless pour les tâches. Votre compte est facturé pour ce calcul à l’aide d’un SKU de tâches serverless.

Consultez la tarification des services managés Databricks. Consultez les tables système pour suivre l’optimisation prédictive.

Prerequisites

Les exigences suivantes doivent être remplies pour utiliser l’optimisation prédictive :

  • Votre espace de travail Azure Databricks doit se trouver sur le plan Premium dans une région prise en charge.
  • Vous devez utiliser des entrepôts SQL ou Databricks Runtime 12.2 LTS ou versions ultérieures.
  • Seules les tables managées par Unity Catalog sont prises en charge.

Activer l’optimisation prédictive

Vous pouvez activer l’optimisation prédictive pour un compte, un catalogue ou un schéma. Toutes les tables managées du catalogue Unity héritent par défaut de la valeur du compte. Vous pouvez remplacer la valeur par défaut du compte au niveau du catalogue ou du schéma.

Vous devez disposer des privilèges suivants pour activer ou désactiver l’optimisation prédictive :

Objet Unity Catalog Privilège
Compte Administrateur de compte
Catalogue Propriétaire de catalogue
schéma Propriétaire du schéma

Activer ou désactiver l’optimisation prédictive pour votre compte

Un administrateur de compte peut activer l’optimisation prédictive pour tous les metastores d’un compte. Les catalogues et les schémas héritent de ce paramètre par défaut, mais vous pouvez le remplacer à l’un ou l’autre niveau.

  1. Accédez à la console des comptes.
  2. Accédez à Paramètres, puis Activation de la fonctionnalité.
  3. Sélectionnez l’option souhaitée (par exemple, Activée) en regard de l’optimisation prédictive.

Remarque

  • Les metastores dans les régions qui ne prennent pas en charge l’optimisation prédictive ne sont pas activés.
  • La désactivation de l’optimisation prédictive au niveau du compte ne la désactive pas pour les catalogues ou les schémas qui l’ont spécifiquement activé.

Activer ou désactiver l’optimisation prédictive pour un catalogue ou un schéma

L’optimisation prédictive utilise un modèle d’héritage. Lorsqu’il est activé pour un catalogue, les schémas de ce catalogue héritent également du paramètre et des tables au sein d’un schéma activé l’héritent également. Vous pouvez activer ou désactiver explicitement l’optimisation prédictive d’un catalogue ou d’un schéma pour remplacer ce comportement.

Remarque

Vous pouvez désactiver l’optimisation prédictive au niveau du catalogue ou du schéma avant de l’activer au niveau du compte. Si l’optimisation prédictive est ultérieurement activée au niveau du compte, elle reste bloquée pour les tables de ces objets.

Utilisez la syntaxe suivante pour activer, désactiver ou réinitialiser l’optimisation prédictive pour hériter de l’objet parent :

ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;

Vérifier si l’optimisation prédictive est activée

Le Predictive Optimization champ est une propriété de catalogue Unity qui indique si l’optimisation prédictive est activée. Si le paramètre est hérité d’un objet parent, la valeur du champ indique ceci.

Utilisez la syntaxe suivante pour vérifier l’état :

DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

Suivre l’optimisation prédictive avec les tables du système

Databricks fournit la table système system.storage.predictive_optimization_operations_history pour l’observation des opérations d’optimisation prédictive, des coûts et de l’impact. Consultez Informations de référence des tables système d’optimisation prédictive.

Si la table système marque les opérations comme ayant échoué avec FAILED: PRIVATE_LINK_SETUP_ERROR, il se peut que le Serverless Private Link ne soit pas correctement configuré. Consultez Configurer la connectivité privée aux ressources Azure.

Limites

L’optimisation prédictive ne s’exécute pas sur les types de tableau suivants :

  • Tables chargées dans un espace de travail en tant que destinataires de Delta Sharing
  • Tables externes