Registra una tabla

Registrar una tabla de Apache Iceberg existente integra sus metadatos en el catálogo de entornos de ejecución de Lakehouse, lo que hace que los datos de la tabla estén disponibles para realizar consultas y administrarlos dentro de un espacio de nombres. Este proceso difiere de la creación de tablas, que inicializa una estructura de tabla nueva y vacía, y su almacenamiento asociado.

Antes de comenzar

  1. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  2. Habilita la API de BigLake.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol Propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol Administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles.

    Habilitar la API

  3. Configura el catálogo de entornos de ejecución de Lakehouse con el extremo del catálogo REST de Apache Iceberg.

Roles obligatorios

Para obtener los permisos que necesitas para registrar una tabla, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto y bucket de almacenamiento:

  • Registrar una tabla:
    • Administrador de BigLake (roles/biglake.admin) - tu proyecto
    • Administrador de almacenamiento (roles/storage.admin) - el bucket de Cloud Storage de destino

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Registra una tabla

Registra una tabla de Iceberg existente.

gcloud

Para registrar una tabla con gcloud, ejecuta el gcloud biglake iceberg tables register comando.

gcloud biglake iceberg tables register TABLE_NAME \
    --project="PROJECT_ID" \
    --catalog="CATALOG_ID" \
    --namespace="NAMESPACE_NAME" \
    --metadata-location="METADATA_LOCATION" \
    [--overwrite]

Reemplaza lo siguiente:

  • TABLE_NAME: Es el nombre que se asignará a la tabla registrada.
  • PROJECT_ID: Es el Google Cloud ID del proyecto.
  • CATALOG_ID: Es el ID del catálogo.
  • NAMESPACE_NAME: Es el nombre del espacio de nombres del catálogo.
  • METADATA_LOCATION: Es el URI de Cloud Storage del archivo JSON de metadatos más reciente de la tabla, por ejemplo, gs://my-bucket/path/to/metadata/00001.metadata.json.
  • --overwrite: (Opcional) Reemplaza la tabla si ya existe.

REST

Para registrar una tabla de Iceberg con la API de REST, haz una solicitud POST al RegisterIcebergTable extremo:

POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/register

El cuerpo de la solicitud debe contener una carga útil de JSON con la siguiente estructura:

{
  "name": "TABLE_NAME",
  "metadata-location": "METADATA_LOCATION",
  "overwrite": OVERWRITE
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el Google Cloud ID del proyecto.
  • CATALOG_ID: Es el ID del catálogo.
  • NAMESPACE_NAME: Es el nombre del espacio de nombres del catálogo.
  • TABLE_NAME: Es el nombre de la tabla registrada.
  • METADATA_LOCATION: Es el URI de Cloud Storage del archivo JSON de metadatos más reciente de la tabla.
  • OVERWRITE: true para reemplazar si existe la tabla; de lo contrario, false.

¿Qué sigue?