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 la partición de tablas en BigQuery, debes agregar las particiones de forma manual antes de iniciar tu transmisión. Para obtener información general sobre la partición en BigQuery, consulta Introducción a las tablas particionadas.

Tablas de particiones 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 una transmisión

  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 la configuración de origen, consulta Configura bases de datos de origen.
  2. Espera unos minutos para asegurarte de que Datastream haya terminado de procesar 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, asígnale un nombre diferente y temporal.
  4. Copia los datos de la tabla original a la nueva tabla particionada.
  5. Borra o cambia el nombre de la tabla original.
  6. Cambia el nombre temporal de la tabla nueva por el 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 BigQuery Migration Toolkit.
    • Crea manualmente una tabla de BigQuery compatible con Datastream. Por ejemplo, si deseas crear una tabla y particionar los datos según 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 esté configurado según tus requisitos. Si no estableces el valor, se configura el valor predeterminado de 0. Dejar este valor en 0 garantiza los datos más recientes, pero genera un costo significativo. Para obtener información sobre cómo encontrar el valor óptimo para tu tabla, consulta Usa 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 la transmisión, inicia el reabastecimiento para la tabla.