Optimisation prédictive pour Delta Lake

Important

Cette fonctionnalité est disponible en préversion publique.

L’optimisation prédictive supprime la nécessité de gérer manuellement les opérations de maintenance pour les tables Delta 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.

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 Delta activées :

Opération Description
OPTIMIZE Améliore les performances des requêtes en optimisant les tailles de fichier. Voir Compacter des fichiers de données avec l’optimisation sur Delta Lake.
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.

Remarque

OPTIMIZE n’exécute pas ZORDER lorsqu’il est exécuté avec l’optimisation prédictive.

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 opérations OPTIMIZE et VACUUM, et les met en file d’attente pour les exécuter à l’aide du calcul des 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.

Remarque

L’optimisation prédictive n’exécute pas OPTIMIZE commandes sur les tables qui utilisent le clustering liquide.

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.

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.

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.

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 OPTIMIZE commandes sur les tables qui utilisent le clustering liquide ou l’ordre Z.

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