Usa Datastream para transferir datos a tablas particionadas en BigQuery

Es posible que debas particionar tus tablas de BigQuery en segmentos más pequeños para mejorar el rendimiento de las consultas y controlar los costos. Como Datastream no admite el particionamiento de tablas en BigQuery, debes agregar las particiones de forma manual antes de iniciar el flujo. Para obtener información general sobre el particionamiento en BigQuery, consulta Introducción a las tablas particionadas.

Cómo particionar tablas en BigQuery

Para particionar tus tablas en BigQuery, usa una de las opciones que se describen en las siguientes secciones, según tu caso de uso.

Opción 1: La tabla ya existe en BigQuery y se incluye en un flujo

  1. Excluye la tabla de la configuración de la fuente de tu transmisión. Para obtener más información sobre cómo incluir y excluir objetos de tu configuración de origen, consulta Configura bases de datos de origen.
  2. Espera unos minutos para asegurarte de que Datastream haya completado el procesamiento de todos los eventos de la tabla.
  3. Crea tu tabla particionada en BigQuery. Si deseas conservar los datos que ya estaban en la tabla original de BigQuery, asigna a la tabla un nombre temporal diferente.
  4. Copia los datos de la tabla original a la nueva tabla particionada.
  5. Suelta o cambia el nombre de la tabla original.
  6. Cambia el nombre temporal de la tabla nueva al nombre de la tabla original.
  7. Agrega la tabla de origen a la configuración de tu transmisión.

Opción 2: La tabla no existe en BigQuery

  1. Crea la tabla en BigQuery con uno de los siguientes enfoques:

    • Usa el kit de herramientas de migración de BigQuery.
    • Crea manualmente una tabla de BigQuery compatible con Datastream. Por ejemplo, si deseas crear una tabla y particionar los datos en función de la columna TIMESTAMP, puedes usar una consulta similar a la siguiente:

      CREATE TABLE dataset.partitioned_table (
      'id' INT64,
      'name' STRING
      'update_date' DATETIME,
      'datastream_metadata' STRUCT<'uuid' STRING, 'source_timestamp' INT64>,
      PRIMARY KEY ('id') NOT ENFORCED
      )
      PARTITION BY TIMESTAMP(update_date)
      
  2. Después de crear la tabla particionada, asegúrate de que su valor de max_staleness se configure según tus requisitos. Si no estableces el valor, se establece el valor predeterminado de 0. Para obtener más información, consulta Cómo usar tablas de BigQuery con la opción max_staleness.

  3. Agrega la tabla de origen a la configuración de tu transmisión.

  4. De manera opcional, si configuraste el reabastecimiento manual para el flujo, inicia el reabastecimiento para la tabla.