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.
-
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 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 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
- Administrador 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.
Crea una tabla
Crea una tabla de Iceberg.
Console
En la Google Cloud consola de, ve a Lakehouse.
Selecciona un catálogo existente o crea uno si no tienes.
En la barra de menú, haz clic en + Crear tabla.
En Formato de tabla, selecciona Iceberg.
En Nombre de la tabla, ingresa un nombre de tabla único.
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 nombresTABLE_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 esquemaTABLE_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?
- Obtén información para enumerar tablas.
- Obtén información para insertar datos en una tabla.