Optimisation prédictive pour les tables managées Unity Catalog
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 ANALYZE
OPTIMIZE
opé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.
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 :
- Accédez à la console des comptes.
- Accédez à Paramètres, puis Activation de la fonctionnalité.
- 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.
Message d’erreur de liaison privée
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 :
- Tables chargées dans un espace de travail en tant que destinataires de partage Delta.
- Tables externes.
- Vues matérialisées. Consultez Utiliser des vues matérialisées dans Databricks SQL.
- Tables de diffusion en continu. Consultez Charger des données à l’aide de tables de streaming dans Databricks SQL.