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
- 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.
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:
- Crea un conjunto de datos en una región que admita Amazon S3.
- 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:
- Una tabla de Amazon S3 BigLake que tiene el almacenamiento en caché de metadatos habilitado y que no usa un formato de archivo de Iceberg
- Una tabla de Apache Iceberg BigLake
- Una tabla de Salesforce Data Cloud
- 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.
- 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.
- 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. - 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.