Cómo alterar una tabla

Modificar una tabla te permite desarrollar el esquema (por ejemplo, agregar columnas) y actualizar las propiedades de los metadatos de la tabla.

El catálogo de entorno de ejecución de Lakehouse administra las modificaciones y se confirman a través de la especificación de la API de catálogo de REST de Iceberg de código abierto (POST /v1/{prefix}/namespaces/{namespace}/tables/{table} para CommitTable/UpdateIcebergTable).

Antes de comenzar

Consulta el resumen de la tabla para comprender los diferentes tipos de tablas y las implicaciones de usarlas.

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

  2. Habilita la API de BigLake.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar la API

Roles obligatorios

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

  • Modificar la tabla en el modo de venta de credenciales: Editor de BigLake (roles/biglake.editor): El proyecto
  • Alterar la tabla en el modo de no venta de credenciales:
    • Editor de BigLake (roles/biglake.editor): El proyecto
    • Usuario de objetos de almacenamiento (roles/storage.objectUser): El bucket de Cloud Storage

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 a través de roles personalizados o cualquier otro rol predefinido.

Cómo modificar una tabla

Agrega una columna a la tabla:

Console

  1. En la consola de Google Cloud , ve a Lakehouse.

    Ir a Lakehouse

  2. Selecciona un catálogo existente o crea uno si no tienes.

  3. En la tabla Detalles del espacio de nombres, selecciona una tabla y expande las opciones del menú.

  4. Haz clic en Editar.

  5. Actualiza los valores de la tabla en el diálogo.

  6. Haz clic en Guardar.

Spark

spark.sql("ALTER TABLE TABLE_NAME ADD COLUMNS ( desc string);")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()

Trino

ALTER TABLE TABLE_NAME ADD COLUMN desc varchar;
DESCRIBE SCHEMA_NAME.TABLE_NAME;

REST

Para confirmar cambios en una tabla de Iceberg con la API de REST, realiza una solicitud POST al extremo UpdateIcebergTable (CommitTable):

POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME

El cuerpo de la solicitud debe contener una carga útil JSON de CommitTableRequest de Iceberg válida que defina el requisito básico y la lista de actualizaciones de metadatos que se aplicarán.

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • CATALOG_ID: Es el ID de tu catálogo del entorno de ejecución de Lakehouse.
  • NAMESPACE_NAME: Es el nombre de tu espacio de nombres del catálogo.
  • TABLE_NAME: Es el nombre de tu tabla de Iceberg.

¿Qué sigue?