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

BigQuery accepte deux types de vues : les vues logiques (standards) et les vues matérialisées. Elles partagent une interface de requête commune, mais diffèrent par leurs mécanismes sous-jacents, leurs performances et leurs coûts. Ce document compare les caractéristiques, les avantages et les limites de chaque type pour vous aider à choisir la vue adaptée à votre charge de travail.

Vues logiques

Une vue logique (standard) est une table virtuelle définie par une requête SQL. Il ne stocke aucune donnée physique. Elle stocke plutôt la logique de requête requise pour récupérer les données des tables de base sous-jacentes. Lorsque vous interrogez une vue logique, le moteur de requête 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 :

  • Aucun impact sur le stockage Comme aucune donnée supplémentaire n'est stockée, vous ne payez que pour le stockage des tables de base.
  • Précision en temps réel Comme la requête est exécutée 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 une sécurité au niveau des lignes sans dupliquer les données.
  • Flexibilité de SQL Compatible avec l'ensemble des fonctionnalités SQL de BigQuery, y compris les fonctions de fenêtrage complexes, les fonctions définies par l'utilisateur (UDF) 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 avec la précision d'une vue en direct. Pour ce faire, ils procèdent comme suit :

  • 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 est effectuée 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êtes peut rediriger 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 Aucun (virtuel) Physique (stocké sur disque)
Exécution Chaque fois que la vue est appelée Précalculé ; 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érence et rapidité
Complexité SQL Illimité Limitée
Optimisé pour Sécurité et abstraction Réduction de la vitesse et des coûts
Coûts de maintenance et de stockage Non Oui

1 L'option --max_staleness 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. À utiliser lorsque la logique est en flux et que vous ne souhaitez pas gérer les frais généraux du stockage physique.
  • Sources de données consolidées. Fournir une source de données pour les outils de visualisation tels que Data Studio ou le partage BigQuery (anciennement Analytics Hub).

Quand utiliser les vues matérialisées

  • Prétraiter les données Améliorez les performances des requêtes en préparant les agrégats, les filtres, les jointures et les clusters.
  • Accélération des tableaux de bord. Améliorez les outils de BI tels que Looker qui interrogent fréquemment les mêmes métriques agrégées (par exemple, les utilisateurs actifs par jour).
  • Analyses en temps réel sur des flux volumineux. Peut fournir des réponses plus rapides sur les tables qui reçoivent des données de flux à grande 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 vers 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 schémas de requête spécifiques à fort trafic qui impliquent une agrégation importante.

Pour savoir comment surveiller l'utilisation et les performances des vues matérialisées, consultez Vue MATERIALIZED_VIEWS.

Étapes suivantes