Configura tablas de Apache Iceberg en BigQuery

En esta página, se describe cómo configurar Datastream para la replicación en tablas de Apache Iceberg en BigQuery.

Las tablas de Apache Iceberg ofrecen la misma experiencia completamente administrada que las tablas estándar de BigQuery, pero almacenan datos en buckets de Cloud Storage que son propiedad del cliente en el formato de tabla Apache Iceberg y el formato de archivo Parquet. Puedes consultar y analizar datos con las capacidades de BigQuery mientras los mantienes en tus propios buckets de almacenamiento.

Metadatos de tabla

Datastream agrega una columna STRUCT llamada datastream_metadata a cada tabla que se escribe en el destino de BigQuery.

La columna datastream_metadata contiene los siguientes campos:

  • UUID: Este campo tiene el tipo de datos STRING.
  • SOURCE_TIMESTAMP: Este campo tiene el tipo de datos INTEGER.
  • CHANGE_SEQUENCE_NUMBER: Este campo tiene el tipo de datos STRING. Es un número de secuencia interno que usa Datastream para cada evento de cambio.
  • CHANGE_TYPE: Este campo tiene el tipo de datos STRING. Indica el tipo de evento de cambio. Para el modo de escritura de solo agregado, el valor es INSERT.
  • SORT_KEYS: Este campo contiene un array de valores STRING. Puedes usar los valores para ordenar los eventos de cambio.

Configura la transmisión a tablas de Apache Iceberg

Para configurar tu transmisión y transferir datos a las tablas de Apache Iceberg, haz lo siguiente:

  1. Crea un bucket de Cloud Storage en el que desees almacenar tus datos.
  2. Crea una conexión al recurso de Cloud en BigQuery. Para obtener información sobre cómo crear este tipo de conexión, consulta Crea y configura una conexión al recurso de Cloud.
  3. Obtén el identificador de la cuenta de servicio de conexión:

    bq show --location=LOCATION --connection --project_id=PROJECT_ID
    CONNECTION_NAME
    
  4. Otórgale acceso a la conexión de recursos de Cloud al bucket de Cloud Storage que creaste. Para ello, agrega el permiso de IAM storage.admin a la cuenta de servicio de conexión:

    gcloud storage buckets add-iam-policy-binding gs://YOUR_GCS_BUCKET \
    --member=serviceAccount:YOUR_SERVICE_ACCOUNT_ID \
    --role=roles/storage.admin
    
  5. Crea una transmisión de tablas de Apache Iceberg.

    Para obtener información sobre cómo crear una transmisión de tablas de Apache Iceberg con la Google Cloud consola, consulta Crea una transmisión.

    Para obtener información sobre cómo crear una solicitud para transmitir datos a tablas de Apache Iceberg con REST, Google Cloud CLI o Terraform, consulta Administra transmisiones con la API.

¿Qué sigue?