Modificar una tabla te permite desarrollar el esquema (por ejemplo, agregar columnas) y actualizar las propiedades de los metadatos de la tabla.
Las modificaciones se administran con el catálogo de entorno de ejecución de Lakehouse.
Antes de comenzar
-
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. - Configura el catálogo de entornos de ejecución de Lakehouse con el extremo del catálogo de REST de Apache Iceberg.
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 -
Cómo 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.
Funciones y asistencia de tablas
Cuando se usan tablas en el catálogo del tiempo de ejecución de Lakehouse, es útil comprender los diferentes tipos de tablas y sus capacidades de habilitación. Para obtener más información sobre el uso específico de las tablas de Apache Iceberg, consulta Descripción general de las tablas de Apache Iceberg.
Tablas de Iceberg compatibles
Solo se admiten las tablas de Apache Iceberg V2 (GA) y V3 (versión preliminar). No se admiten las tablas de Iceberg V1. Para actualizar las tablas de la versión 1 existentes, consulta Actualiza las tablas de Iceberg de la versión 1 a la versión 2.
Usar opciones de tabla (vista previa)
Puedes habilitar el uso de las capacidades administradas de BigQuery, como el lenguaje de manipulación de datos (DML) de BigQuery y la administración automática de tablas, configurando propiedades específicas de la tabla. Estas funciones se habilitan de diferentes maneras según dónde se cree la tabla:
- Desde BigQuery: El LMD de BigQuery y la administración automática de tablas están habilitados de forma predeterminada.
- Desde motores de código abierto: Para habilitar la opción, debes configurar explícitamente las propiedades de la tabla. Consulta Configura opciones de tabla para obtener más información.
Consulta Configura opciones de tabla para obtener instrucciones detalladas.
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()
Para habilitar la interoperabilidad de lectura y escritura y la administración de tablas, establece las propiedades con la cláusula SET TBLPROPERTIES:
SET TBLPROPERTIES (
'gcp.biglake.bigquery-dml.enabled' = true,
'gcp.biglake.table-management.enabled' = true
)
Trino
ALTER TABLE TABLE_NAME ADD COLUMN desc varchar;
DESCRIBE SCHEMA_NAME.TABLE_NAME;
Para habilitar la interoperabilidad de lectura y escritura y la administración de tablas, puedes configurar las siguientes propiedades de la tabla:
'gcp.biglake.bigquery-dml.enabled' = true'gcp.biglake.table-management.enabled' = true
gcloud
Para actualizar las propiedades de la tabla con gcloud, ejecuta el comando gcloud biglake iceberg tables update.
gcloud biglake iceberg tables update TABLE_NAME \ --project="PROJECT_ID" \ --catalog="CATALOG_ID" \ --namespace="NAMESPACE_NAME" \ --update-properties="KEY=VALUE,..."
Reemplaza lo siguiente:
TABLE_NAME: Es el nombre de tu tabla de Iceberg.PROJECT_ID: Es el ID del proyecto de Google Cloud .CATALOG_ID: Es el ID de tu catálogo.NAMESPACE_NAME: Es el nombre de tu espacio de nombres del catálogo.KEY=VALUE,...: Son las propiedades de la tabla que se agregarán o actualizarán.
BigQuery
Para actualizar las propiedades de una tabla de Apache Iceberg en el catálogo del entorno de ejecución de Lakehouse desde BigQuery (como habilitar el DML de BigQuery o la administración automática de tablas), usa la siguiente instrucción ALTER TABLE de GoogleSQL:
ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
SET OPTIONS (`properties.gcp.biglake.table-management` = "enabled");
Para actualizar el esquema y agregar una columna en una tabla de Apache Iceberg en el catálogo de tiempo de ejecución de Lakehouse desde BigQuery, usa la siguiente instrucción ALTER TABLE de GoogleSQL:
ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
ADD COLUMN new_column STRING;
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: Es el nombre de tu espacio de nombres de Iceberg.TABLE_NAME: Es el nombre de tu tabla de Iceberg.
REST
Para confirmar los 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.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.