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. Il ne stocke aucune donnée physique. Au lieu de cela, elle stocke la logique de requête nécessaire pour récupérer les données 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. Cela signifie que BigQuery réexécute la vue chaque fois qu'elle est appelée.
Voici quelques avantages des vues logiques :
- Aucun espace de stockage supplémentaire n'est nécessaire. Comme 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 : Comme 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 : Compatible avec l'ensemble des fonctionnalités BigQuery SQL, 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 avoir à traiter plusieurs fois les données de base brutes. Cela peut réduire la latence des requêtes pour les grands ensembles de données en prétraitant les requêtes, et les coûts de calcul pour les requêtes fréquemment utilisées.
Les vues matérialisées BigQuery combinent la rapidité des données précalculées et la précision d'une vue en direct. Pour ce faire, ils doivent procéder 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 exécuté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ête 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 | Aucune (virtuelle) | Physique (stocké sur le 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épendante 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 |
| Frais 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 les vues logiques ?
- Structure sémantique en couches. Renommez les noms de colonnes complexes en termes adaptés aux utilisateurs métier non techniques.
- Développement rapide : À utiliser 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 Looker Studio ou BigQuery Sharing (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 : Donnez aux outils de BI, comme Looker, la possibilité d'interroger fréquemment les mêmes métriques agrégées (par exemple, les utilisateurs actifs quotidiens).
- 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 à grande vitesse.
- Gestion des coûts : Réduisez le coût des requêtes coûteuses et répétitives 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 avec une vue dans un ensemble de données secondaire. Vous pouvez ensuite partager cette vue avec des utilisateurs et des groupes spécifiques (principaux) 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 architecturé, 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 savoir comment surveiller l'utilisation et les performances des vues matérialisées, consultez la vue MATERIALIZED_VIEWS.
Étapes suivantes
- Présentation des vues logiques
- Créer des vues logiques
- Présentation des vues matérialisées
- Créer des vues matérialisées