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

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Vérifiez que la facturation est activée pour votre projet Google Cloud.

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 :

  1. Créez un ensemble de données dans une région compatible avec Amazon S3.
  2. Créez une table Amazon S3 BigLake dans l'ensemble de données que vous avez créé à l'étape 1. Activez la mise en cache des métadonnées lors de la création de la table.
  3. 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.
  4. Autorisez la vue matérialisée sur les ensembles de données contenant les tables Big Lake Amazon S3 sources utilisées dans la requête qui a créé la vue matérialisée.
  5. Si vous avez configuré l'actualisation manuelle du cache de métadonnées pour la table Amazon S3 BigLake, exécutez la procédure système BQ.REFRESH_EXTERNAL_METADATA_CACHE pour actualiser le cache de métadonnées.
  6. 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 exemple myproject.
  • 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 exemple bq_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 exemple my_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 exemple s3_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.