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

Remarque

Pour tous les comptes créés après le 11 novembre 2024, Databricks active l’optimisation prédictive par défaut.

L’optimisation prédictive supprime la nécessité de gérer manuellement les opérations de maintenance pour les tables managées Unity Catalog sur Azure Databricks.

Avec l’optimisation prédictive activée, Azure Databricks identifie automatiquement les tables qui bénéficieraient des opérations de maintenance et les exécute pour l’utilisateur. Les opérations de maintenance ne sont exécutées que si nécessaire, ce qui élimine les exécutions inutiles pour les opérations de maintenance et la charge associée au suivi et à la résolution des problèmes de performances.

Important

L’optimisation prédictive s’exécute uniquement sur les tables gérées par le catalogue Unity.

L’optimisation prédictive ne s’exécute pas sur des tables de streaming ou des vues matérialisées créées dans Databricks SQL ou à l’aide de pipelines Delta Live Tables.

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

L’optimisation prédictive exécute automatiquement les opérations suivantes pour les tables activées :

Operation Description
OPTIMIZE(1) Déclenche le clustering incrémentiel pour les tables activées. Consultez Utilisation des clustering liquides pour les tableaux Delta.

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(2) Déclenche la mise à jour incrémentielle des statistiques pour améliorer les performances des requêtes.

(1) OPTIMIZE ne s’exécute ZORDER pas lorsqu’elle est exécutée avec l’optimisation prédictive.

(2) L’optimisation prédictive avec est ANALYZE en préversion publique. Il inclut une collection stastistique intelligente pendant les écritures. Utilisez ce formulaire pour vous inscrire à la préversion publique. Pendant la préversion publique initiale, ANALYZE les commandes peuvent s’exécuter sur des tables avec jusqu’à 1 To de données et 500 colonnes ou moins.

Avertissement

La fenêtre de rétention de la commande VACUUM est déterminée par la propriété de table delta.deletedFileRetentionDuration, qui est définie par défaut sur 7 jours. Cela signifie que VACUUM supprime les fichiers de données qui ne sont plus référencés par une version de table Delta au cours des 7 derniers jours. Si vous souhaitez conserver des données plus longtemps (par exemple, pour prendre en charge les voyages dans le temps pendant des durées plus longues), vous devez définir cette propriété de table de manière appropriée avant d’activer l’optimisation prédictive, comme dans l’exemple suivant :

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

Où s’exécute l’optimisation prédictive ?

L’optimisation prédictive identifie les tables qui bénéficieraient des ANALYZEOPTIMIZEopérations et VACUUM des files d’attente pour les exécuter à l’aide de calcul serverless pour les travaux. Votre compte est facturé pour le calcul associé à ces charges de travail à l’aide d’une référence SKU spécifique à Databricks Managed Services. Consultez la tarification des services managés Databricks. Azure Databricks fournit des tables système permettant d’observer les opérations, les coûts et l’impact de l’optimisation prédictive. Consultez Utiliser des tables système pour suivre l’optimisation prédictive.

Prérequis pour l’optimisation prédictive

Vous devez respecter les exigences suivantes pour activer l’optimisation prédictive :

  • Votre espace de travail Azure Databricks doit se trouver sur le plan Premium dans une région qui prend en charge l’optimisation prédictive. Voir les régions Azure Databricks.

  • Vous devez utiliser des entrepôts SQL ou Databricks Runtime 12.2 LTS ou des versions ultérieures lorsque vous activez l’optimisation prédictive.

  • Seules les tables managées par Unity Catalog sont prises en charge.

  • Si vous avez besoin d’une connectivité privée pour vos comptes de stockage, vous devez configurer la connectivité privée serverless. Consultez Configurer la connectivité privée à partir du calcul serverless.

Activer l’optimisation prédictive

Vous devez activer l’optimisation prédictive au niveau du compte.

Remarque

Si votre compte a été créé après le 11 novembre 2024, l’optimisation prédictive est activée par défaut.

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

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

Remarque

Lorsque vous activez l’optimisation prédictive pour la première fois, Azure Databricks crée automatiquement un principal de service dans votre compte Azure Databricks. Azure Databricks utilise ce principal de service pour effectuer les opérations de maintenance demandées. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Gérer les principaux de service.

Activer l’optimisation prédictive pour votre compte

Un administrateur de compte doit effectuer les étapes suivantes pour activer l’optimisation prédictive pour tous les metastores d’un compte :

  1. Accédez à la console des comptes.
  2. Accédez à Paramètres, puis Activation de la fonctionnalité.
  3. Sélectionnez Activé en regard de 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.

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 héritent de la propriété. Les tables d’un schéma activé héritent de l’optimisation prédictive. Pour remplacer ce comportement d’héritage, vous pouvez désactiver explicitement l’optimisation prédictive pour un catalogue ou un schéma.

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 activée ultérieurement sur le compte, elle est bloquée pour les tables de ces objets.

Utilisez la syntaxe suivante pour activer ou désactiver l’optimisation prédictive :

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

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

Le champ Predictive Optimization est une propriété de Unity Catalog qui détaille si l’optimisation prédictive est activée. Si l’optimisation prédictive est héritée d’un objet parent, cela est indiqué dans la valeur du champ.

Important

Vous devez activer l’optimisation prédictive au niveau du compte pour afficher ce champ.

Utilisez la syntaxe suivante pour voir si l’optimisation prédictive est activée :

DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

Utiliser des tables système pour suivre l’optimisation prédictive

Azure Databricks fournit une table système pour suivre l’historique des opérations d’optimisation prédictive. Consultez Référence de table système d’optimisation prédictive.

Si la table système marque les opérations comme ayant échoué avec FAILED: PRIVATE_LINK_SETUP_ERROR, vous n’avez peut-être pas configuré correctement la liaison privée pour le calcul serverless. Consultez Configurer la connectivité privée à partir du calcul serverless.

Limites

L’optimisation prédictive n’est pas disponible dans toutes les régions. Voir les régions Azure Databricks.

L’optimisation prédictive n’exécute pas de commandes OPTIMIZE sur les tables qui utilisent l’ordre de plan.

L’optimisation prédictive n’exécute pas les opérations VACUUM sur les tables avec une fenêtre de rétention de fichiers configurée sous la valeur par défaut de 7 jours. Voir Configurer la conservation des données pour des requêtes de voyage dans le temps.

L’optimisation prédictive n’effectue pas d’opérations de maintenance sur les tables suivantes :