Créer des instances dupliquées avec vue matérialisée
Ce document explique comment créer des instances dupliquées de vues matérialisées dans BigQuery. Vous pouvez utiliser des instances dupliquées de la vue matérialisée pour rendre les données Amazon Simple Storage Service (Amazon S3) disponibles localement pour les jointures.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Autorisations requises
Attribuez aux utilisateurs des rôles IAM (Identity and Access Management) incluant les autorisations nécessaires pour effectuer l'ensemble des tâches du présent document.
Pour créer des instances dupliquées de vues matérialisées, vous devez disposer des autorisations IAM suivantes :
bigquery.tables.create
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.replicateData
bigquery.jobs.create
Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour créer une vue matérialisée :
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Pour en savoir plus sur la gestion de l'authentification et des accès (IAM) dans BigQuery, consultez la page Présentation d'IAM dans BigQuery.
Prérequis
Avant de créer une instance dupliquée avec vue matérialisée, vous devez effectuer les tâches suivantes :
- Créez un ensemble de données dans une région compatible avec Amazon S3.
- Créez une table de base dans l'ensemble de données que vous avez créé à l'étape 1. La table de base peut présenter l'un des types de tables suivants :
- Table BigLake Amazon S3 avec la mise en cache des métadonnées activée et qui n'utilise pas de format de fichier Iceberg
- Table BigLake Apache Iceberg
- Table Salesforce Data Cloud
- Créez une vue matérialisée sur la table Amazon S3 BigLake dans l'ensemble de données que vous avez créé à l'étape 1. Vous pouvez également créer la vue matérialisée dans un autre ensemble de données situé dans une région compatible avec Amazon S3.
- Autorisez la vue matérialisée sur les ensembles de données contenant les tables sources BigLake Amazon S3 utilisées dans la requête qui a créé la vue matérialisée.
- Si vous avez configuré l'actualisation manuelle du cache de métadonnées pour la table BigLake Amazon S3, exécutez la procédure système
BQ.REFRESH_EXTERNAL_METADATA_CACHE
pour actualiser le cache de métadonnées. - Exécutez la procédure système
BQ.REFRESH_MATERIALIZED_VIEW
pour actualiser la vue matérialisée.
Créer des instances dupliquées avec vue matérialisée
Pour créer des instances dupliquées de vues matérialisées, utilisez l'instruction CREATE MATERIALIZED VIEW AS REPLICA OF
:
CREATE MATERIALIZED VIEW PROJECT_ID.BQ_DATASET.REPLICA_NAME OPTIONS(replication_interval_seconds=REPLICATION_INTERVAL) AS REPLICA OF PROJECT_ID.S3_DATASET.MATERIALIZED_VIEW_NAME;
Remplacez les éléments suivants :
PROJECT_ID
: nom du projet dans lequel vous souhaitez créer l'instance dupliquée de la vue matérialisée, par exemplemyproject
.BQ_DATASET
: nom de l'ensemble de données BigQuery dans lequel vous souhaitez créer l'instance dupliquée de la vue matérialisée, par exemplebq_dataset
. L'ensemble de données doit se trouver dans la région BigQuery qui correspond à la région de la vue matérialisée source.REPLICA_NAME
: nom de l'instance dupliquée de la vue matérialisée que vous souhaitez créer, par exemplemy_mv_replica
.REPLICATION_INTERVAL
: indique la fréquence à laquelle les données de la vue matérialisée source sont répliquées vers l'instance dupliquée, en secondes. Doit être une valeur comprise entre 60 et 3600, inclus. La valeur par défaut est 300 (5 minutes).S3_DATASET
: nom de l'ensemble de données contenant la vue matérialisée source, par exemples3_dataset
.MATERIALIZED_VIEW_NAME
: nom de la vue matérialisée à répliquer, par exemple,my_mv
.
L'exemple suivant crée une vue matérialisée nommée mv_replica
dans bq_dataset
:
CREATE MATERIALIZED VIEW `myproject.bq_dataset.mv_replica` OPTIONS( replication_interval_seconds=600 ) AS REPLICA OF `myproject.s3_dataset.my_s3_mv`
Une fois que vous avez créé l'instance dupliquée de la vue matérialisée, le processus de réplication interroge la vue matérialisée source pour rechercher les modifications et réplique les données sur l'instance dupliquée de la vue matérialisée, en actualisant les données à l'intervalle que vous avez spécifié dans replication_interval_seconds
. Si vous interrogez l'instance dupliquée avant la fin du premier remplissage, vous obtenez une erreur backfill in progress
. Vous pouvez interroger les données de l'instance dupliquée de la vue matérialisée une fois la première réplication terminée.