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.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
-
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 permisoserviceusage.services.enable. Obtén más información para otorgar roles.
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
- Editor de BigLake (
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
En la consola de Google Cloud , ve a Lakehouse.
Selecciona un catálogo existente o crea uno si no tienes.
En la tabla Detalles del espacio de nombres, selecciona una tabla y expande las opciones del menú.
Haz clic en Editar.
Actualiza los valores de la tabla en el diálogo.
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?
- Obtén más información para borrar una tabla.