Cómo alterar una tabla

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

  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 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.

    Habilitar la API

  3. 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

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

  1. En la Google Cloud consola de, 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 cuadro de diálogo. En la sección Propiedades , puedes agregar o modificar propiedades como gcp.biglake.bigquery-dml.enabled y gcp.biglake.table-management.enabled para habilitar o inhabilitar el DML de BigQuery o la administración automática de tablas.

    Por ejemplo, puedes establecer estos valores en true para habilitar estas capacidades. Para obtener más información, consulta Configura opciones de tabla.

  6. 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 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?