Configura un destino de BigQuery

En esta página, se describe cómo configurar Datastream para que puedas escribir datos en conjuntos de datos de BigQuery.

Permisos necesarios

Datastream usa la compatibilidad integrada de BigQuery para las actualizaciones de captura de datos modificados (CDC). Datastream actualiza las tablas de BigQuery procesando y aplicando los cambios transmitidos con la API de BigQuery Storage Write.

Los permisos necesarios para usar la API y transferir datos a BigQuery se otorgan al rol de agente de servicio de Datastream.

Configura BigQuery como destino

Para configurar Datastream para la transmisión a BigQuery, realiza los siguientes pasos:

  1. Asegúrate de que la API de BigQuery esté habilitada en tu proyecto Google Cloud.
  2. Si deseas usar la opción Un solo conjunto de datos para todos los esquemas, crea un conjunto de datos en BigQuery.
  3. Configura el conjunto de datos de destino para tu flujo.
  4. Configura el modo de escritura.
  5. Especifica el límite máximo de inactividad de los datos para tu transmisión.

Configura los conjuntos de datos de destino

Los conjuntos de datos son contenedores de nivel superior que se usan para organizar y controlar el acceso a tus tablas de BigQuery.

Cuando configuras conjuntos de datos para el destino de BigQuery con Datastream, puedes seleccionar una de las siguientes opciones:

  • Dataset for each schema: Datastream selecciona o crea automáticamente el conjunto de datos en la ubicación de BigQuery especificada, según el nombre del esquema de la fuente. Como resultado, cada esquema de la fuente tiene un conjunto de datos correspondiente en BigQuery. Por ejemplo, si tienes una fuente de MySQL y esta fuente tiene una base de datos mydb y una tabla employees dentro de la base de datos, Datastream crea el conjunto de datos mydb y la tabla employees en BigQuery.

    Si seleccionas esta opción, Datastream creará conjuntos de datos en el proyecto que contiene la transmisión. Aunque no es necesario que crees los conjuntos de datos en la misma región que tu transmisión, te recomendamos que mantengas todos los recursos de la transmisión, así como los conjuntos de datos, en la misma región para optimizar el costo y el rendimiento.

  • Conjunto de datos único para todos los esquemas: Selecciona un conjunto de datos de BigQuery para la transmisión. Datastream transmite todos los datos a este conjunto de datos. Para el conjunto de datos que selecciones, Datastream crea todas las tablas como <schema>_<table>.

    Por ejemplo, si tienes una fuente de MySQL y esta fuente tiene una base de datos mydb y una tabla employees dentro de la base de datos, Datastream crea la tabla mydb_employees en el conjunto de datos que selecciones.

Cómo configurar el modo de escritura

Existen dos modos que puedes usar para definir cómo deseas que se escriban tus datos en BigQuery:

  • Combinar: Este es el modo de escritura predeterminado. Cuando se selecciona esta opción, BigQuery refleja la forma en que se almacenan tus datos en la base de datos de origen. Esto significa que Datastream escribe todos los cambios en tus datos en BigQuery, y BigQuery luego consolida los cambios con los datos existentes, lo que crea tablas finales que son réplicas de las tablas de origen. Con el modo de combinación, no se mantiene ningún registro histórico de los eventos de cambio. Por ejemplo, si insertas y, luego, actualizas una fila, BigQuery solo conserva los datos actualizados. Si luego borras la fila de la tabla de origen, BigQuery ya no conservará ningún registro de esa fila.

  • Solo agregar: El modo de escritura de solo agregar te permite agregar datos a BigQuery como un flujo de cambios (eventos INSERT, UPDATE-INSERT, UPDATE-DELETE y DELETE). Usa este modo cuando necesites conservar el estado histórico de tus datos. Para comprender mejor el modo de escritura de solo anexar, considera las siguientes situaciones:

    • Carga inicial de datos históricos: Después de la carga inicial de datos históricos, todos los eventos se escriben en BigQuery como eventos de tipo INSERT, con la misma marca de tiempo, el mismo identificador único universal (UUID) y el mismo número de secuencia de cambios.
    • Actualización de clave primaria: Cuando cambia una clave primaria, se escriben dos filas en BigQuery:
      • Una fila UPDATE-DELETE con la clave primaria original
      • Una fila UPDATE-INSERT con la nueva clave primaria
    • Actualización de fila: Cuando actualizas una fila, se escribe una sola fila UPDATE-INSERT en BigQuery.
    • Borrado de filas: Cuando borras una fila, se escribe una sola fila de DELETE en BigQuery.

Especifica el límite de inactividad de los datos

BigQuery aplica las modificaciones de la fuente en segundo plano de manera continua o en el tiempo de ejecución de la consulta, de acuerdo con el límite de inactividad de los datos configurado. Cuando Datastream crea una tabla nueva en BigQuery, la opción max_staleness de la tabla se establece según el valor actual del límite de inactividad de los datos para la transmisión.

Para obtener más información sobre el uso de tablas de BigQuery con la opción max_staleness, consulta Antigüedad de la tabla.