Optimisation prédictive pour les tables gérées par Unity Catalog
L’optimisation prédictive exécute automatiquement OPTIMIZE, VACUUM et ANALYZE sur les tables gérées par Unity Catalog (Delta Lake et Iceberg) sur Databricks, ce qui élimine la maintenance manuelle et le temps passé à suivre les problèmes de performances.
L'optimisation prédictive est activée par default pour les comptes créés le ou après le 11 novembre 2024. Databricks active les comptes existants avec un déploiement progressif. Ce déploiement devrait être terminé d’ici août 2026. Pour vérifier si votre compte est déjà activé, consultez Vérifier si l'optimisation prédictive est activée.
Lorsque l'optimisation prédictive est activée, Databricks effectue automatiquement les opérations suivantes :
- Identifie les tables qui bénéficieraient d'opérations de maintenance et met ces opérations en file d'attente pour exécution.
- Collecte des statistiques lorsque des données sont écrites dans une table gérée.
Cela élimine les exécutions de maintenance inutiles et la charge liée au suivi et au dépannage manuel des performances.
Databricks recommande l'optimisation prédictive pour toutes les tables gérées par Unity Catalog. Par exemple, le clustering liquide automatique utilise une optimisation intelligente du Layout des données basée sur vos modèles d'utilisation des données. Consultez Utiliser le clustering liquide 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 Unity Catalog :
Opérations | Description |
|---|---|
| Déclenche le clustering incrémental pour les tables activées. Voir Utiliser le clustering liquide pour les tables. Améliore les performances des requêtes en optimisant la taille des fichiers. Voir Optimiser le layout des fichiers de données. |
| 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 vacuum. |
| Analyse la table et collecte des statistiques pour améliorer les performances des query. Voir ANALYZE TABLE … COMPUTE STATISTICS. Pour supprimer les statistiques collectées par l'optimisation prédictive, voir ANALYZE TABLE … DROP STATISTICS. |
OPTIMIZE n'exécute pas ZORDER lorsqu'il est exécuté par l'optimisation prédictive. Sur les tables qui utilisent Z-order, l'optimisation prédictive ignore les fichiers Z-ordered.
Si le clustering liquide automatique est activé, l'optimisation prédictive peut sélectionner de nouvelles clés de clustering avant de regrouper les données. Voir le clustering liquide automatique.
La fenêtre de rétention pour VACUUM est déterminée par la propriété de table delta.deletedFileRetentionDuration, qui est default de 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 de plus longues durées (par exemple, pour prendre en charge le Time Travel étendu), définissez cette propriété avant d'activer l'optimisation prédictive :
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Compute et facturation
L'optimisation prédictive exécute les opérations ANALYZE, OPTIMIZE et VACUUM à l'aide du compute serverless pour les jobs. Votre compte est facturé pour ce compute à l'aide d'un SKU de jobs serverless.
Consultez les tarifs des services gérés par Databricks. Consultez le suivi de l'optimisation prédictive avec les tables système.
Prérequis
Les exigences suivantes doivent être respectées pour utiliser l'optimisation prédictive :
- Votre Workspace Databricks doit être sur le forfait Premium ou supérieur dans une région prise en charge.
- Vous devez utiliser des SQL Warehouse ou Databricks Runtime 12.2 LTS ou version ultérieure.
- Seules les tables géré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, un schéma ou une table. Toutes les tables gérées par Unity Catalog héritent de la valeur du compte default. Vous pouvez remplacer le comportement default du compte au niveau du catalogue, du schéma ou de la table.
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 du catalogue, ou un utilisateur disposant du privilège |
Schéma | Propriétaire du schéma, ou un utilisateur disposant du privilège |
Table | Propriétaire de la table, ou un utilisateur disposant du privilège |
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 default, mais vous pouvez le remplacer à l'un ou l'autre niveau.
- Accédez à la console de compte.
- Accédez à Paramètres , puis à Activation des fonctionnalités .
- Sélectionnez l'option que vous souhaitez (par exemple, **Activé**) à côté d'**Optimisation prédictive**.
- Les metastores des 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ée.
Activer ou désactiver l'optimisation prédictive pour un catalogue, un schéma ou une table
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 du paramètre, et les tables au sein d'un schéma activé l'héritent également. Vous pouvez explicitement activer ou désactiver l'optimisation prédictive pour un catalogue, un schéma ou une table afin d'annuler ce comportement.
Vous pouvez désactiver l'optimisation prédictive au niveau du catalogue, du schéma ou de la table 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 objets qui l'ont spécifiquement désactivée.
Utilisez la syntaxe suivante pour activer, désactiver ou Reset l'optimisation prédictive afin qu'elle hérite de l'objet parent :
ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER TABLE table_name { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
See ALTER TABLE.
Vérifiez si l'optimisation prédictive est activée
Le champ Predictive Optimization est une propriété Unity Catalog 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 l'indique.
Utilisez la syntaxe suivante pour vérifier l'état :
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
Vérifier pourquoi l'optimisation prédictive a ignoré une table
Sur Databricks Runtime 18 et versions ultérieures, après que l'optimisation prédictive a évalué une table gérée, vous pouvez vérifier de deux façons la raison pour laquelle une opération a été omise :
- Interrogez la table avec
DESCRIBE TABLE EXTENDED ... AS JSON. - Utilisez la **tab Historique** dans l'Explorateur de catalogues.
Les résultats peuvent prendre jusqu'à 24 heures pour apparaître.
Utilisation DESCRIBE TABLE EXTENDED ... AS JSON
DESCRIBE TABLE EXTENDED ... AS JSON renvoie un champ predictive_optimization_evaluations dans la sortie. Ce champ répertorie chaque type d'opération et le résultat d'évaluation le plus récent pour celui-ci.
Pour vérifier les résultats d'évaluation pour une table, exécutez ce qui suit :
DESCRIBE TABLE EXTENDED catalog_name.schema_name.table_name AS JSON
Le champ predictive_optimization_evaluations affiche le résultat le plus récent pour chaque type d'opération. Seule la dernière évaluation est affichée, sans historique. Les types d'opération comprennent :
COMPACTIONCLUSTERINGAUTO_CLUSTERING_COLUMN_SELECTIONVACUUM
Le résultat de l'évaluation n'affiche pas les raisons d'omission pour ANALYZE opérations.
Utiliser le tab d'historique dans l'Explorateur de catalogue
Vous pouvez consulter les raisons d'ignorance dans la tab Historique d'une table dans l'explorateur de catalogue. Dans la colonne Opération , l'étiquette Auto indique que l'opération s'est exécutée et l'étiquette Non appliquée indique que l'opération a été ignorée. L'étiquette Auto inclut l'optimisation prédictive et d'autres opérations automatiques, telles que le streaming d'auto-compaction.
Pour afficher la raison de l'omission, cliquez sur une ligne portant l'étiquette *Non appliqué* dans la colonne **Opération**.

Le tableau suivant montre comment les types d'opération du résultat DESCRIBE TABLE EXTENDED sont mappés aux opérations affichées dans l'Explorateur de catalogues :
| Opération de l'Explorateur de catalogue | Description |
|---|---|---|
|
| Compactage de fichiers pour améliorer les performances des query |
|
| Clustering liquide incrémental. |
|
| Évaluation ou évolution des clés de clustering liquide |
|
| Suppression des fichiers de données qui ne sont plus référencés par la table |
Suivre l’optimisation prédictive avec des tables système
Databricks fournit la table système system.storage.predictive_optimization_operations_history pour une observabilité des opérations d'optimisation prédictive, de leurs coûts et de leur impact. Consultez la référence de la table système d'optimisation prédictive.
Limitations
L'optimisation prédictive ne s'exécute pas sur les types de tables suivants :
- Tables chargées dans un Workspace en tant que destinataires OpenSharing
- Tables externes