Crea réplicas de vista materializadas

Este documento describe cómo crear réplicas de vista materializada en BigQuery. Puedes usar réplicas de vista materializada con el fin de que los datos de Amazon Simple Storage Service (Amazon S3) estén disponibles de forma local para las uniones.

Antes de comenzar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Permisos necesarios

Otorga roles de Identity and Access Management (IAM) que les brindan a los usuarios los permisos necesarios para realizar cada tarea de este documento.

Para crear réplicas de vista materializada, necesitas los siguientes permisos de IAM:

  • bigquery.tables.create
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.replicateData
  • bigquery.jobs.create

Cada uno de los siguientes roles predefinidos de IAM incluye los permisos que necesitas para crear una vista materializada:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Para obtener más información sobre Identity and Access Management (IAM) de BigQuery, consulta Introducción a IAM en BigQuery.

Requisitos previos

Antes de crear una réplica de vista materializada, debes completar las siguientes tareas:

  1. Crea un conjunto de datos en una región que admita Amazon S3.
  2. Crea una tabla base en el conjunto de datos que creaste en el paso 1. La tabla base puede ser cualquiera de los siguientes tipos de tablas:
  3. Crea una vista materializada en la tabla de BigLake de Amazon S3 en el conjunto de datos que creaste en el primer paso. También puedes crear la vista materializada en un conjunto de datos diferente que sea de una región que admite Amazon S3.
  4. Autoriza la vista materializada en los conjuntos de datos que contienen las tablas de Amazon S3 BigLake de origen que se usan en la consulta que creó la vista materializada.
  5. Si configuraste una actualización de caché de metadatos manual para la tabla de Amazon S3 BigLake, ejecuta el procedimiento del sistema BQ.REFRESH_EXTERNAL_METADATA_CACHE para actualizar la caché de metadatos.
  6. Ejecuta el procedimiento del sistema BQ.REFRESH_MATERIALIZED_VIEW para actualizar la vista materializada.

Crea réplicas de vista materializadas

Para crear réplicas de vista materializada, usa la CREATE MATERIALIZED VIEW AS REPLICA OF declaración:

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;

Reemplaza lo siguiente:

  • PROJECT_ID: Es el nombre de tu proyecto en el que deseas crear la réplica de vista materializada , como por ejemplo, myproject.
  • BQ_DATASET: el nombre del conjunto de datos de BigQuery en el que deseas crear la réplica de vista materializada, como por ejemplo, bq_dataset. El conjunto de datos debe estar en la región de BigQuery asignada a la región de la vista materializada de origen.
  • REPLICA_NAME: El nombre de la réplica de vista materializada que deseas crear, como por ejemplo, my_mv_replica.
  • REPLICATION_INTERVAL: Especifica en segundos la frecuencia con la que se replican los datos de la vista materializada fuente de la réplica. El valor debe ser de entre 60 y hasta 3,600 inclusive. El valor predeterminado es de 300 (5 minutos).
  • S3_DATASET: El nombre del conjunto de datos que contiene la vista materializada fuente, por ejemplo, s3_dataset.
  • MATERIALIZED_VIEW_NAME: Es el nombre de la vista materializada que se replicará, como por ejemplo, my_mv.

En el siguiente ejemplo, se crea una vista materializada llamada mv_replica en bq_dataset:

CREATE MATERIALIZED VIEW `myproject.bq_dataset.mv_replica`
OPTIONS(
  replication_interval_seconds=600
)
AS REPLICA OF `myproject.s3_dataset.my_s3_mv`

Después de haber creado la réplica de vista materializada, el proceso de replicación sondea la vista materializada fuente en busca de cambios y replica los datos en la réplica de vista materializada, lo que actualiza los datos en el intervalo que especificaste en la opciónreplication_interval_seconds. Si consultas la réplica antes de que se haya completado el primer reabastecimiento, recibirás un error backfill in progress. Puedes consultar los datos en la réplica de vista materializada después de que se complete la primera replicación.