Présentation des 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. Dans certains cas d'utilisation, les vues matérialisées réduisent le temps de traitement total et les frais associés en diminuant la quantité de données à analyser pour chaque requête. Vous pouvez interroger les vues matérialisées comme vous le feriez pour d'autres ressources de données.

Avantages des vues matérialisées

Les cas d'utilisation suivants mettent en évidence la valeur des vues matérialisées :

  • Prétraitement des données : améliorez les performances des requêtes en préparant des agrégations, des filtres, des jointures et des clusters.
  • Accélération des tableaux de bord : renforcez 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 les flux volumineux : fournissez 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 des ensembles de données volumineux.

Principales caractéristiques

Voici les principales caractéristiques des vues matérialisées :

  • Aucune maintenance nécessaire : BigQuery précalcule les vues matérialisées en arrière-plan lorsque les tables de base changent. BigQuery ajoute automatiquement les modifications incrémentielles apportées aux données depuis les tables de base aux vues matérialisées, sans aucune action de l'utilisateur.
  • Données à jour : les vues matérialisées renvoient des données actualisées. Si les modifications apportées aux tables de base peuvent invalider la vue matérialisée, BigQuery lit les données directement à partir des tables de base. Si les modifications apportées aux tables de base n'invalident pas la vue matérialisée, BigQuery lit le reste des données à partir de la vue matérialisée et ne lit que les modifications à partir des tables de base.
  • Réglage intelligent : si une partie d'une requête sur une table de base peut être résolue en interrogeant la vue matérialisée, BigQuery redirige la requête pour utiliser la vue matérialisée afin d'améliorer les performances et l'efficacité. Pour savoir comment et quand le réglage intelligent peut améliorer les requêtes, consultez la section Utiliser les vues matérialisées.

Types de vues matérialisées

Il existe deux types de vues matérialisées :

  • Les vues matérialisées incrémentielles sont compatibles avec un ensemble limité de fonctionnalités. Pour en savoir plus sur la syntaxe SQL acceptée pour les vues matérialisées, consultez la section Créer des vues matérialisées. Seules les vues matérialisées incrémentielles peuvent tirer parti du réglage intelligent.
  • Les vues matérialisées non incrémentielles sont compatibles avec la plupart des syntaxes non compatibles avec les vues matérialisées incrémentielles.

Lorsque vous créez des vues matérialisées, BigQuery ne vous permet par défaut de créer des vues que sur la base de requêtes incrémentielles. Pour créer une vue non incrémentielle, vous pouvez spécifier allow_non_incremental_definition = true dans la définition de la vue matérialisée.

Le type de vue matérialisée le plus adapté dépend de votre situation. Le tableau suivant compare les fonctionnalités des vues matérialisées incrémentielles et non incrémentielles :

Catégorie Incrémentielle Non incrémentielle
Requête compatible Limitée La plupart des requêtes
Coût de la maintenance Peut réduire le coût des requêtes fréquemment utilisées. Pour savoir comment les vues matérialisées sont mises à jour, consultez la section Mises à jour incrémentielles. Chaque actualisation exécute la requête complète.
Compatibilité avec le réglage intelligent Compatible avec la plupart des requêtes de vues. Non
Résultats toujours actualisés Compatible Les vues incrémentielles renvoient des résultats de requête actualisés même lorsque les tables de base ont été modifiées depuis la dernière actualisation. Non

Vues matérialisées autorisées

Vous pouvez créer une vue matérialisée 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. Les principaux peuvent interroger les données que vous fournissez dans une vue, mais ils ne peuvent pas accéder directement à l'ensemble de données source.

Les vues autorisées et les vues matérialisées autorisées sont autorisées de la même manière. Pour en savoir plus, consultez la section Vues autorisées.

Interaction avec d'autres fonctionnalités BigQuery

Les fonctionnalités BigQuery suivantes fonctionnent de manière transparente avec les vues matérialisées :

  • Explication du plan de requête. le plan de requête indique les vues matérialisées analysées (le cas échéant) et le nombre d'octets lus à partir de la vue matérialisée et des tables de base.

  • Mise en cache de requêtes. les résultats d'une requête que BigQuery réécrit à l'aide d'une vue matérialisée peuvent être mis en cache sous réserve des limites habituelles (utilisation de fonctions déterministes, aucun flux dans les tables de base, etc.).

  • Restriction de coût. si vous spécifiez un nombre maximal d'octets facturés et qu'une requête lit des données au-delà de cette limite, elle échoue sans engendrer de frais, qu'elle utilise des vues matérialisées, les tables de base ou les deux.

  • Estimation des coûts à l'aide d'un dry run (test à blanc). un dry run répète la logique de réécriture des requêtes à l'aide des vues matérialisées disponibles et fournit une estimation des coûts. Vous pouvez vous en servir pour vérifier si une requête spécifique utilise des vues matérialisées.

  • Réplication des données interrégionale. les vues matérialisées peuvent être créées sur des tables BigQuery pour lesquelles la réplication interrégionale est activée, mais uniquement dans la région principale. Si vous utilisez la région secondaire, le message d'erreur suivant peut s'afficher : The dataset replica of the cross region dataset {PROJECT}:{DATASET} in region {REGION} is read-only because it's not the primary replica.

Outre ces fonctionnalités, vous pouvez créer des vues matérialisées sur des tables dotées de fonctionnalités spécifiques, comme décrit dans les sections suivantes.

Tables avec capture des données modifiées active

Vous pouvez créer des vues matérialisées sur des tables avec capture des données modifiées (CDC) active . Ces vues matérialisées fonctionnent comme les vues matérialisées sur des tables BigQuery, ce qui inclut les avantages de l'actualisation automatique. Les vues matérialisées ne peuvent pas effectuer de requêtes de fusion au moment de l'exécution, vous devez donc les configurer avec une valeur max_staleness suffisante pour éviter les tâches de fusion au moment de l'exécution. Pour en savoir plus, consultez la section Limites des vues matérialisées sur des tables avec capture des données modifiées active.

Tarification des vues matérialisées

Les vues matérialisées entraînent des coûts de plusieurs manières :

  • Interrogation des vues matérialisées
  • Gestion des vues matérialisées, par exemple lorsqu'elles sont actualisées Le coût de l'actualisation automatique est facturé dans le projet où se trouve la vue. Le coût de l'actualisation manuelle est facturé dans le projet dans lequel la tâche d'actualisation manuelle est exécutée. Pour en savoir plus sur le contrôle des coûts de maintenance, consultez la section Maintenance des tâches d'actualisation.
  • Stockage des tables de vues matérialisées

Le tableau suivant présente les composants de tarification des vues matérialisées :

Composant Tarifs à la demande Tarifs en fonction de la capacité
Requête Octets traités par les vues matérialisées et toutes les parties nécessaires des tables de base.1 Les emplacements sont consommés lors de la requête.
Maintenance Octets traités pendant l'actualisation. Les emplacements sont consommés pendant l'actualisation.
Stockage Octets stockés dans les vues matérialisées. Octets stockés dans les vues matérialisées.

1 Dans la mesure du possible, BigQuery ne lit que les modifications depuis la dernière actualisation de la vue. Pour en savoir plus, consultez la section Mises à jour incrémentielles.

Détails des coûts de stockage

La façon dont BigQuery stocke certaines valeurs agrégées affecte le calcul de la taille de stockage. Pour les valeurs agrégées AVG, ARRAY_AGG et APPROX_COUNT_DISTINCT dans une vue matérialisée, la valeur finale n'est pas stockée directement. Au lieu de cela, BigQuery stocke une vue matérialisée en interne sous forme d' esquisse intermédiaire, qui est utilisée pour générer la valeur finale.

Prenons l'exemple d'une vue matérialisée créée à l'aide de la commande suivante :

CREATE MATERIALIZED VIEW project-id.my_dataset.my_mv_table AS
SELECT date, AVG(net_paid) AS avg_paid
FROM project-id.my_dataset.my_base_table
GROUP BY date

La colonne avg_paid s'affiche en tant que NUMERIC ou FLOAT64, mais en interne, elle est stockée en tant que BYTES, son contenu étant une esquisse intermédiaire au format propriétaire. Pour le calcul de la taille des données, la colonne est traitée comme BYTES.

Étape suivante