Aller au contenu principal

Mise en cache des query

La mise en cache est une technique essentielle pour améliorer les performances des systèmes de data warehouse en évitant de devoir recalculer ou récupérer les mêmes données plusieurs fois. Dans Databricks SQL, la mise en cache peut accélérer considérablement l'exécution des queries et minimiser l'utilisation du warehouse, ce qui réduit les coûts et optimise l'utilisation des ressources. Chaque couche de mise en cache améliore les performances des queries, minimise l'utilisation des clusters et optimise l'utilisation des ressources pour une expérience data warehouse fluide.

La mise en cache offre de nombreux avantages dans les data warehouses, notamment :

  • Vitesse : En stockant les résultats de query ou les données fréquemment consultées en mémoire ou sur d'autres supports de stockage rapides, la mise en cache peut réduire considérablement les temps d'exécution des query. Ce stockage est particulièrement avantageux pour les requêtes répétitives, car le système peut rapidement récupérer les résultats mis en cache au lieu de les recalculer.
  • Utilisation réduite du cluster : la mise en cache minimise le besoin de Ressources compute supplémentaires en réutilisant les résultats précédemment calculés. Cela réduit la durée de fonctionnement globale du warehouse et la demande de clusters compute supplémentaires, ce qui entraîne des économies et une meilleure allocation des ressources.

Types de caches de requête dans Databricks SQL

Databricks SQL effectue plusieurs types de mise en cache de requêtes.

query caches

  • Cache de l'interface utilisateur Databricks SQL : Mise en cache par utilisateur des résultats de query et des visualisations de l'éditeur SQL dans l'interface utilisateur Databricks SQL. Lorsqu'un utilisateur ouvre pour la première fois une SQL query ou un tableau de bord SQL hérité, le cache de l'interface utilisateur Databricks SQL affiche le résultat de query le plus récent, y compris les résultats des exécutions planifiées.
remarque

Le cache de l'interface utilisateur de Databricks SQL ne s'applique pas aux tableaux de bord AI/BI (anciennement tableaux de bord Lakeview). Les tableaux de bord AI/BI ont leur propre comportement de mise en cache. Consultez Optimisation et mise en cache des datasets.

Le cache de l'interface utilisateur de Databricks SQL a un cycle de vie de 7 jours au maximum. Le cache se trouve dans votre système de fichiers Databricks dans votre compte. Vous pouvez supprimer les résultats de query en réexécutant la query que vous ne souhaitez plus stocker. Une fois relancés, les anciens résultats de la requête sont supprimés du cache. De plus, le cache est invalidé une fois que les tables sous-jacentes ont été mises à jour.

  • Cache de résultats : Mise en cache par cluster des résultats de query pour toutes les queries via les SQL Warehouse. La mise en cache des résultats comprend des caches de résultats locaux et distants, qui fonctionnent ensemble pour améliorer les performances des query en stockant les résultats des query en mémoire ou sur des supports de stockage distants.

    • Cache local : le cache local est un cache en mémoire qui stocke les résultats des **query** pendant la durée de vie du **cluster** ou jusqu'à ce que le cache soit plein, selon la première éventualité. Ce cache est utile pour accélérer les query répétitives, éliminant le besoin de recalculer les mêmes résultats. Cependant, une fois le cluster arrêté ou redémarré, le cache est vidé et tous les résultats de la query sont supprimés.
    • Cache de résultats distant : Le cache de résultats distant est un système de cache Serverless qui conserve les résultats de query en les persistant comme données système Workspace. Par conséquent, ce cache n'est pas invalidé par l'arrêt ou le redémarrage d'un SQL Warehouse. Le cache de résultats distant résout un problème courant de la mise en cache des résultats de query en mémoire, qui ne reste disponible qu'aussi longtemps que les ressources compute sont en cours d'exécution. Le cache distant est un cache partagé persistant pour tous les warehouse dans un Workspace Databricks.

    L'accès au cache de résultats distant requiert un warehouse en cours d'exécution. Lors du traitement d'une query, un cluster vérifie d'abord dans son cache local, puis vérifie dans le cache de résultats distant si nécessaire. La query n'est exécutée que si son résultat n'est mis en cache dans aucun des caches. Les caches local et distant ont un cycle de vie de 24 heures, qui start à l'entrée du cache. Le cache de résultats distant persiste après l'arrêt ou le redémarrage d'un SQL Warehouse. Les deux caches sont invalidés lorsque les tables sous-jacentes sont mises à jour.

    Le cache de résultats distant est disponible pour les queries utilisant des clients ODBC/JDBC et l’API de Statement SQL.

    Pour désactiver la mise en cache des résultats de requête, vous pouvez exécuter SET use_cached_result = false dans l’éditeur SQL.

important

Vous ne devez utiliser cette option qu'à des fins de test ou de benchmarking.

  • Cache de disque : mise en cache SSD locale pour les données lues à partir du stockage de données pour les query via les SQL warehouses. Le cache de disque est conçu pour améliorer les performances des query en stockant les données sur le disque, ce qui permet des lectures de données accélérées. Les données sont automatiquement mises en cache lorsque les fichiers sont récupérés, en utilisant un format intermédiaire rapide. En stockant des copies des fichiers sur le stockage local attaché aux nœuds compute, le cache de disque garantit que les données sont situées plus près des Worker, ce qui améliore les performances des query. Consultez Optimiser les performances avec la mise en cache sur Databricks.

En plus de sa fonction principale, le cache de disque détecte automatiquement les modifications des fichiers de données sous-jacents. Lorsqu'il détecte des modifications, le cache est invalidé. Le cache de disque partage les mêmes caractéristiques de cycle de vie que le cache de résultats local. Cela signifie que lorsque le cluster est arrêté ou redémarré, le cache est nettoyé et doit être repeuplé.

La mise en cache des résultats des query et le cache disque affectent les query dans l'interface UI de Databricks SQL ainsi que les clients BI et autres clients externes.