La creación de una tabla de Apache Iceberg inicializa los nuevos metadatos y el almacenamiento de la tabla dentro de un espacio de nombres en el catálogo de entornos de ejecución de Lakehouse.
Si deseas que una tabla de Apache Iceberg existente esté disponible en el catálogo, consulta Cómo registrar una tabla.
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 directorios de metadatos y datos de la tabla en la ubicación predeterminada del catálogo (derivada del bucket base de Cloud Storage del catálogo) agregando los identificadores del espacio de nombres y de la tabla.
Antes de comenzar
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
-
Habilita la API de BigLake si aún no lo hiciste.
Roles necesarios para habilitar las APIs
Para habilitar 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 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 crear una tabla, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto y bucket de almacenamiento:
-
Crea una tabla:
- Administrador de BigLake (
roles/biglake.admin): Tu proyecto - Administrador de almacenamiento (
roles/storage.admin): Es 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.
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 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 la opción, debes configurar explícitamente las propiedades de la tabla. Consulta Cómo configurar opciones de tablas para obtener más información.
Crea una tabla
Crea una tabla de Iceberg.
Console
En la consola de Google Cloud , ve a Lakehouse.
Selecciona un catálogo existente o crea uno si no tienes.
Selecciona un espacio de nombres existente o crea uno si no tienes uno.
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.
Opcional: En la sección Propiedades, configura las propiedades de la tabla. Se enumeran las propiedades predefinidas, como
gcp.biglake.bigquery-dml.enabledygcp.biglake.table-management.enabled.Por ejemplo, puedes cambiar estos valores a
truepara habilitar el DML de BigQuery o la administración automática de tablas. Para obtener más información, consulta Cómo configurar opciones de tablas.Haz clic en Crear.
Tu tabla aparecerá en la página Detalles del espacio de nombres.
Spark
spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")
Reemplaza los siguientes valores:
NAMESPACE_NAME: Es el nombre de tu espacio de nombres.TABLE_NAME: Es un nombre para tu tabla.
Para habilitar la interoperabilidad de lectura y escritura y la administración de tablas (versión preliminar), agrega las propiedades a la cláusula TBLPROPERTIES:
TBLPROPERTIES (
'gcp.biglake.bigquery-dml.enabled' = true,
'gcp.biglake.table-management.enabled' = true
)
Trino
CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);
Reemplaza los siguientes valores:
SCHEMA_NAME: Es el nombre de tu esquema.TABLE_NAME: Es un nombre para tu tabla.
Para habilitar la interoperabilidad de lectura y escritura y la administración de tablas (versión preliminar), agrega estas propiedades a la cláusula WITH:
WITH (
"gcp.biglake.bigquery-dml.enabled" = 'true',
"gcp.biglake.table-management.enabled" = 'true'
)
gcloud
Para crear una tabla con gcloud, ejecuta el comando gcloud biglake iceberg tables create.
gcloud biglake iceberg tables create \ --project="PROJECT_ID" \ --catalog="CATALOG_ID" \ --namespace="NAMESPACE_NAME" \ --create-from-file="TABLE_DEFINITION_FILE"
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_DEFINITION_FILE: Es la ruta de acceso a un archivo JSON que contiene la definición de la tabla de Iceberg.
BigQuery
Para crear una tabla de Apache Iceberg en el catálogo del entorno de ejecución de Lakehouse desde BigQuery, usa la siguiente instrucción CREATE TABLE de GoogleSQL. Cuando creas una tabla desde BigQuery, el DML de BigQuery y la administración automática de tablas se habilitan de forma predeterminada.
CREATE TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` (id int, data string);
Reemplaza lo siguiente:
PROJECT_ID: ID del proyecto de Google CloudCATALOG_ID: El ID de tu catálogo del entorno de ejecución de LakehouseNAMESPACE: El nombre de tu espacio de nombres de IcebergTABLE_NAME: Es el nombre de tu tabla de Iceberg.
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 de 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 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.
¿Qué sigue?
- Obtén información para listar tablas.
- Obtén información para insertar datos en una tabla.
- Obtén más información para administrar las LCA de tablas.