Présentation des vues logiques et matérialisées

Ce document décrit et compare les vues logiques et matérialisées dans BigQuery. Dans l'entreposage de données moderne, les vues constituent une couche d'abstraction importante entre les données brutes et l'informatique décisionnelle. Dans BigQuery, les architectes choisissent généralement entre deux types de vues : les vues logiques (standards) et les vues matérialisées. Bien que ces vues partagent une interface commune, leurs mécanismes sous-jacents, leurs profils de performances et leurs implications en termes de coûts diffèrent.

Vues logiques

Une vue logique (standard) est une table virtuelle définie par une requête SQL. Elle ne stocke aucune donnée physique. Au lieu de cela, elle stocke la logique de requête requise pour récupérer des données à partir des tables de base sous-jacentes. Lorsque vous interrogez une vue logique, le moteur de requêtes BigQuery développe la vue dans sa requête sous-jacente. Ce processus signifie que BigQuery réexécute la vue chaque fois qu'elle est appelée.

Les avantages des vues logiques sont les suivants :

  • Aucune surcharge de stockage. Étant donné qu'aucune donnée supplémentaire n'est stockée, vous ne payez que le stockage des tables de base.
  • Précision en temps réel. Étant donné que la requête s'exécute au moment de l'exécution, les résultats reflètent toujours l'état le plus récent des tables de base.
  • Abstraction logique. Simplifie les jointures complexes ou applique la sécurité au niveau des lignes sans dupliquer les données.
  • Flexibilité SQL. Prend en charge l'ensemble de BigQuery SQL, y compris les fonctions de fenêtre complexes, les fonctions définies par l'utilisateur et tous les types de jointures.

Vues matérialisées

Les vues matérialisées sont des vues précalculées qui stockent régulièrement les résultats d'une requête SQL. Contrairement aux vues logiques, elles stockent physiquement les données calculées, ce qui permet à BigQuery de fournir des résultats plus rapidement sans traiter de manière répétée les données de base brutes. Cela peut réduire la latence des requêtes pour les ensembles de données volumineux en prétraitant les requêtes et réduire les coûts de calcul pour les requêtes fréquemment utilisées.

Les vues matérialisées BigQuery combinent la vitesse des données précalculées et la précision d'une vue en direct. Elles y parviennent grâce aux éléments suivants :

  • Actualisation automatique. Un processus en arrière-plan met à jour les vues matérialisées lorsque les tables de base changent.
  • Fraîcheur des données. Si une requête se produit alors qu'une actualisation en arrière-plan est en attente, BigQuery compense automatiquement les modifications non traitées de la table de base pour fournir des résultats à jour.
  • Réglage intelligent. L'optimiseur de requête peut réacheminer automatiquement les requêtes des tables de base vers la vue matérialisée s'il détermine que la vue matérialisée peut fournir la réponse plus efficacement.

Comparaison des vues logiques et matérialisées

Bien que les vues logiques soient le type de vue par défaut, si vous interrogez fréquemment une vue volumineuse ou exigeante en puissance de calcul, envisagez de créer une vue matérialisée. Les vues logiques sont virtuelles et fournissent une référence réutilisable pour un ensemble de données, mais ne stockent pas physiquement de données. Les vues matérialisées sont définies à l'aide de SQL, comme une vue logique, mais stockent physiquement les données que BigQuery utilise pour améliorer les performances.

Le tableau suivant récapitule les similitudes et les différences entre les vues logiques et les vues matérialisées de BigQuery :

Dimension Vue logique Vue matérialisée
Persistance des données Aucune (virtuelle) Physique (stockée sur le disque)
Exécution Chaque fois que la vue est appelée Précalculée ; actualisation en arrière-plan
Obsolescence des données Jamais Facultatif 1 (via l'actualisation)
Performances Variable (dépend de la table de base) Cohérentes et rapides
Complexité SQL Illimitée Limitée
Optimisé pour Sécurité et abstraction Vitesse et réduction des coûts
Coûts de maintenance et de stockage Non Oui

1 L'--max_staleness option améliore les performances des requêtes avec des coûts contrôlés lors du traitement de grands ensembles de données qui changent fréquemment.

Quand utiliser des vues logiques

  • Couche sémantique. Renommez les noms de colonnes complexes en termes adaptés aux utilisateurs non techniques.
  • Développement rapide. Utilisez cette option lorsque la logique est en flux et que vous ne souhaitez pas gérer la surcharge du stockage physique.
  • Sources de données consolidées. Fournissez une source de données pour les outils de visualisation tels que Data Studio ou le partage BigQuery (anciennement Analytics Hub).

Quand utiliser des vues matérialisées

  • Prétraiter les données. Améliorez les performances des requêtes en préparant des agrégations, des filtres, des jointures et des clusters.
  • Accélérer les tableaux de bord. Permettez aux outils de BI tels que Looker d'interroger fréquemment les mêmes métriques agrégées, par exemple les utilisateurs actifs par jour.
  • Analyses en temps réel sur les flux volumineux. Peut fournir des réponses plus rapides sur les tables qui reçoivent des données de streaming à haute vitesse.
  • Gestion des coûts. Réduisez le coût des requêtes répétitives et coûteuses sur de grands ensembles de données.

Vues autorisées

Vous pouvez également créer une vue autorisée pour partager un sous-ensemble de données d'un ensemble de données source dans une vue d'un ensemble de données secondaire. Vous pouvez ensuite partager cette vue avec des utilisateurs et des groupes (principaux) spécifiques qui peuvent afficher les données que vous partagez et exécuter des requêtes sur celles-ci, mais qui ne peuvent pas accéder directement à l'ensemble de données source.

Vous pouvez créer une vue autorisée pour une vue logique ou matérialisée. Une vue autorisée pour une vue matérialisée est appelée vue matérialisée autorisée.

Bonnes pratiques

Pour un environnement BigQuery bien conçu, les vues logiques sont un outil utile pour consolider les données dont vous avez besoin. Réservez les vues matérialisées pour les utiliser comme outil d'optimisation des performances pour des modèles de requêtes spécifiques à fort trafic qui impliquent une agrégation importante.

Pour découvrir comment surveiller l'utilisation et les performances des vues matérialisées, consultez la MATERIALIZED_VIEWS vue.

Étape suivante