Crea réplicas de vista materializadas

Este documento describe cómo crear réplicas de vista materializada en BigQuery. Una réplica de vista materializada es una replicación de datos externos de Amazon Simple Storage Service (Amazon S3), Apache Iceberg o Salesforce Data Cloud en un conjunto de datos de BigQuery para que los datos estén disponibles de forma local en BigQuery, lo que puede ayudarte a evitar los costos de salida de datos y mejorar el rendimiento de las consultas.

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.

  6. Asegúrate de tener los permisos de Identity and Access Management (IAM) necesarios para realizar las tareas de este documento.

Roles obligatorios

Para obtener los permisos que necesitas para realizar las tareas de este documento, pídele a tu administrador que te otorgue el rol de IAM de administrador de BigQuery (roles/bigquery.admin). Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para realizar las tareas de este documento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para hacer las tareas de este documento:

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

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para obtener más información sobre IAM de BigQuery, consulta Introducción a IAM en BigQuery.

Prepara un conjunto de datos para las réplicas de vistas materializadas

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 fuente en el conjunto de datos que creaste en el paso anterior. La tabla de origen puede ser cualquiera de los siguientes tipos de tablas:

Crea réplicas de vista materializadas

Selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, navega al proyecto y al conjunto de datos en el que deseas crear la réplica de vista materializada y, luego, haz clic en Ver acciones > Crear tabla.

  3. En la sección Fuente del cuadro de diálogo Crear tabla, haz lo siguiente:

    1. En Crear tabla desde, selecciona Tabla o vista existente.
    2. En Proyecto, ingresa el proyecto en el que se encuentra la tabla o vista de origen.
    3. En Conjunto de datos (Dataset), ingresa el conjunto de datos en el que se encuentra la tabla o vista de origen.
    4. En Vista, ingresa la tabla o vista de origen que deseas replicar. Si eliges una vista, debe ser una vista autorizada. De lo contrario, todas las tablas que se usan para generar esa vista deben estar en el conjunto de datos de la vista.
  4. Opcional: En Inactividad máxima de la vista materializada local, ingresa un valor max_staleness para tu vista materializada local.

  5. En la sección Destino del diálogo Crear tabla, haz lo siguiente:

    1. En Proyecto, ingresa el proyecto en el que deseas crear la réplica de la vista materializada.
    2. En Conjunto de datos, ingresa el conjunto de datos en el que deseas crear la réplica de vista materializada.
    3. En Nombre de la vista materializada de réplica, ingresa un nombre para la réplica.
  6. Opcional: Especifica etiquetas y opciones avanzadas para la réplica de la vista materializada. Si no especificas un conjunto de datos para Conjunto de datos de vista materializada local, se creará uno automáticamente en el mismo proyecto y la misma región que los datos de origen y se llamará bq_auto_generated_local_mv_dataset. Si no especificas un nombre para el Nombre de la vista materializada local, se creará uno automáticamente en el mismo proyecto y región que los datos de origen y se le asignará el prefijo bq_auto_generated_local_mv_.

  7. Haz clic en Crear tabla.

Se crea una nueva vista materializada local (si no se especificó) y se autoriza en el conjunto de datos fuente. Luego, se crea la réplica de vista materializada en el conjunto de datos de destino.

SQL

  1. Crea una vista materializada sobre la tabla base en el conjunto de datos que creaste. También puedes crear la vista materializada en un conjunto de datos diferente que esté en una región de Amazon S3.
  2. Autoriza la vista materializada en los conjuntos de datos que contienen las tablas de origen que se usan en la consulta que creó la vista materializada.
  3. Si configuraste una actualización de caché de metadatos manual para la tabla de origen, ejecuta el procedimiento del sistema BQ.REFRESH_EXTERNAL_METADATA_CACHE para actualizar la caché de metadatos.
  4. Ejecuta el procedimiento del sistema BQ.REFRESH_MATERIALIZED_VIEW para actualizar la vista materializada.
  5. Crea réplicas de vista materializada con la sentencia 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;

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el nombre de tu proyecto en el que deseas crear la réplica de vista materializada, 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ón replication_interval_seconds o max_staleness. 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.