Revenir au contenu principal

Vues matérialisées

Essayer Gratuitement Databricks

Qu’est-ce qu’une vue matérialisée ?

Une vue matérialisée est un objet de base de données qui stocke les résultats d’une requête (query) dans une table physique. Les vues matérialisées sont différentes des vues de base de données classiques qui sont virtuelles et tirent leurs données des tables sous-jacentes. Elles contiennent des données précalculées mises à jour de manière progressive selon un planning ou à la demande. Ce calcul préalable des données permet d’accélérer les temps de réponse des requêtes et d’améliorer les performances dans certains scénarios.

Les vues matérialisées sont très pratiques pour effectuer des requêtes ou des agrégations complexes de manière régulière et lorsque les données sous-jacentes changent peu souvent. La base de données peut accélérer les temps de réponse en stockant les résultats précalculés, évitant ainsi l’exécution répétée de requêtes complexes.

Les vues matérialisées dans Databricks SQL

Les vues matérialisées dans Databricks SQL sont gérées via Unity Catalog. Elles enregistrent des résultats précalculés basés sur les données les plus récentes des tables sources. Contrairement aux implémentations traditionnelles, elles conservent l’état des données tel qu’il était lors du dernier rafraîchissement plutôt que de les mettre à jour chaque fois qu’elles sont interrogées. Vous pouvez choisir d’actualiser manuellement ou de programmer des refresh automatiques pour les vues matérialisées.

Les vues matérialisées Databricks SQL sont particulièrement utiles pour le traitement ETL (extraire, transformer et charger). Elles offrent une approche simple et déclarative pour gérer la conformité, les corrections, les agrégations et la capture des changements de données (Change Data Capture / CDC). En précalculant les requêtes lentes et les calculs fréquemment utilisés, ces vues réduisent les coûts et améliorent la rapidité des recherches. De plus, elles permettent des transformations transparentes en nettoyant, enrichissant et dénormalisant les tables de base. Dans certains cas, elles peuvent même effectuer des calculs incrémentaux à partir des tables de base, ce qui réduit les coûts et simplifie l’expérience utilisateur.

Databricks a d’abord introduit les vues matérialisées dans le cadre de l’architecture Lakehouse, avec le lancement de Delta Live Tables. Créer une vue matérialisée dans un warehouse DB SQL déclenche la création automatique d’un pipeline Delta Live Tables qui gère les refresh de vue. Vous pouvez facilement surveiller l’état des opérations de refresh en utilisant l’interface utilisateur de Delta Live Tables, l’API ou la CLI.

Créer une vue matérialisée

L’exemple suivant montre comment créer la vue matérialisée commandes_clients à partir des tables de base commandes et clients :


CREATE MATERIALED VIEW commandes_clients
AS 
SELECT
 clients.nom,
  sum(commandes.montant),
  commandes.datecommande
FROM commandes LEFT JOIN clients ON 
 commandes.custkey = clients.c_custkey
GROUP BY
  nom,
  datecommande;

Effectuer le refresh d’une vue matérialisée

Dans Databricks SQL, vous avez la possibilité de configurer le refresh automatique d’une vue matérialisée sur la base d’une planification prédéfinie. Cette planification peut être configurée lors de la création de la vue matérialisée à l’aide de la clause SCHEDULE, ou ajoutée ultérieurement à l’aide de l’instruction ALTER VIEW. Une fois la planification établie, un job Databricks est automatiquement créé pour gérer les mises à jour.

Vous pouvez revoir les détails de la planification à tout moment en utilisant l’instruction DESCRIBE EXTENDED. Cette instruction permet de consulter la planification configurée pour la vue matérialisée. Cela vous permet de superviser et de gérer facilement la planification automatique de refresh pour votre vue matérialisée dans Databricks SQL.

Pour plus d’informations sur les vues matérialisées, reportez-vous à la documentation du produit Databricks ou consultez le blog d’introduction.

    Retour au glossaire