Crear tabla

Cuando se crea una tabla de Apache Iceberg, se registran los metadatos de la tabla dentro de un espacio de nombres en el catálogo de entornos de ejecución de Lakehouse.

Si no especificas una ubicación de almacenamiento explícita a nivel del espacio de nombres o de la tabla durante la creación de la tabla, el sistema construye automáticamente los metadatos y los directorios de datos de la tabla en la ubicación predeterminada del catálogo (derivada del bucket de Cloud Storage base del catálogo) agregando los identificadores del espacio de nombres y de la tabla.

Además de las integraciones del motor de consultas, el catálogo de entornos de ejecución de Lakehouse implementa la especificación de la API de REST de Iceberg de código abierto (POST /v1/{prefix}/namespaces/{namespace}/tables), lo que permite que los clientes de REST compatibles creen tablas directamente.

Antes de comenzar

Consulta la descripción general 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 Google Cloud proyecto.

  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 crear una tabla, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto y bucket de almacenamiento:

  • Todos:
    • Administrador de BigLake (roles/biglake.admin) - tu proyecto
    • Administrador de almacenamiento (roles/storage.admin) - el bucket de Cloud Storage de destino

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.

Crea una tabla

Crea una tabla de Iceberg.

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 barra de menú, haz clic en + Crear tabla.

  4. En Formato de tabla, selecciona Iceberg.

  5. En Nombre de la tabla, ingresa un nombre de tabla único.

  6. Haz clic en Crear.

Tu tabla aparece en la página Detalles del espacio de nombres.

Spark

spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")

spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()

Reemplaza los siguientes valores:

  • NAMESPACE_NAME: Es el nombre de tu espacio de nombres
  • TABLE_NAME: Es un nombre para tu tabla.

Trino

CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);

DESCRIBE SCHEMA_NAME.TABLE_NAME;

Reemplaza los siguientes valores:

  • SCHEMA_NAME: Es el nombre de tu esquema
  • TABLE_NAME: Es un nombre para tu tabla.

Si usas la federación de catálogos de BigQuery con Trino, no puedes especificar una ubicación para la tabla. Siempre se usa la ubicación predeterminada del esquema.

REST

Para crear una tabla de Iceberg con la API de REST, realiza una solicitud POST al extremo CreateIcebergTable:

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

El cuerpo de la solicitud debe contener una carga útil JSON CreateTableRequest de Iceberg válida que defina el esquema de la tabla, la especificación de partición y las propiedades iniciales.

Reemplaza lo siguiente:

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

¿Qué sigue?