Si alteras una tabla, puedes 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 Google Cloud proyecto.
-
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 de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles. - Configura el catálogo de entorno de ejecución de Lakehouse con el extremo del catálogo REST de Apache Iceberg.
Roles obligatorios
Para obtener los permisos que necesitas para alterar una tabla, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto y bucket de almacenamiento:
-
Alterar tabla en el modo de venta de credenciales:
Editor de BigLake (
roles/biglake.editor) - el proyecto -
Alterar tabla en el modo de 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 mediante roles personalizados o cualquier otro rol predefinido.
Capacidades y compatibilidad de tablas
Cuando usas tablas en el catálogo de entorno de ejecución de Lakehouse, es útil comprender los diferentes tipos de tablas y sus capacidades de inclusión. Para obtener más información sobre el uso de tablas de Apache Iceberg específicamente, consulta Descripción general de las tablas de Apache Iceberg.
Tablas de Iceberg compatibles
Solo se admiten las tablas de Apache Iceberg V2 (DG) y V3 (vista previa). No se admiten las tablas de Iceberg V1. Para actualizar las tablas V1 existentes, consulta Actualiza las tablas de Iceberg V1 a V2.
Usa 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, si configuras propiedades de tabla específicas. Estas funciones se habilitan de diferentes maneras según dónde se cree la tabla:
- Desde BigQuery: El DML de BigQuery y la administración automática de tablas están habilitados de forma predeterminada.
- Desde motores de código abierto: Para habilitar el uso, debes configurar de forma explícita 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.
Altera una tabla
Agrega una columna a la tabla:
Console
En la Google Cloud consola de, 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 cuadro de diálogo. En la sección Propiedades , puedes agregar o modificar propiedades como
gcp.biglake.bigquery-dml.enabledygcp.biglake.table-management.enabledpara habilitar o inhabilitar el DML de BigQuery o la administración automática de tablas.Por ejemplo, puedes establecer estos valores en
truepara habilitar estas capacidades. Para obtener más información, consulta Configura opciones de tabla.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;
'gcp.biglake.bigquery-dml.enabled' = true'gcp.biglake.table-management.enabled' = true
gcloud
Para actualizar las propiedades de la tabla con gcloud, ejecuta el gcloud biglake iceberg tables update comando.
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 Google Cloud proyecto de.CATALOG_ID: Es el ID de tu catálogo.NAMESPACE_NAME: Es el nombre del espacio de nombres de tu catálogo.KEY=VALUE,...: Son las propiedades de la tabla que se agregarán o actualizarán.
BigQuery
Para actualizar las propiedades de la tabla de una tabla de Apache Iceberg en el catálogo de 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 entorno 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 Google Cloud proyecto de.CATALOG_ID: Es el ID del catálogo de entorno de ejecución de Lakehouse.NAMESPACE: Es el nombre del 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 POST
solicitud al UpdateIcebergTable (CommitTable) extremo:
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 CommitTableRequest de Iceberg válida que defina el requisito base y la lista de actualizaciones de metadatos que se aplicarán.
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del Google Cloud proyecto de.CATALOG_ID: Es el ID de tu catálogo.NAMESPACE_NAME: Es el nombre del espacio de nombres de tu catálogo.TABLE_NAME: Es el nombre de tu tabla de Iceberg.
¿Qué sigue?
- Obtén información para borrar una tabla.