Cuando se crea una tabla de Apache Iceberg, se inicializan los metadatos y el almacenamiento de la tabla nueva dentro de un espacio de nombres en el catálogo de tiempo de ejecución de Lakehouse.
Si quieres que una tabla de Apache Iceberg existente esté disponible en el catálogo, consulta Registra una tabla.
Si no especificas una ubicación de almacenamiento explícita a nivel de espacio de nombres o de 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 de Cloud Storage base del catálogo) agregando los identificadores de espacio de nombres y de 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 está habilitada.
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 obtenerlo 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 tiempo de ejecución de Lakehouse con el extremo del catálogo de REST de Apache Iceberg. Para habilitar la administración automática de tablas, asegúrate de que el catálogo use el modo de venta de credenciales.
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): 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 compatibilidad de las tablas
Cuando usas tablas en el catálogo de 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 de 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 (DG) y V3 (versión preliminar). Las tablas de Iceberg V1 no son compatibles. Para actualizar las tablas V1 existentes, consulta Actualiza las tablas de Iceberg V1 a V2.
Usa opciones de tablas (versión preliminar)
Puedes habilitar el uso de las funciones 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 las tablas. 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 esta opción, debes configurar de forma explícita las propiedades de la tabla. Consulta Configura las opciones de la tabla para obtener más información.
Crea una tabla
Crea una tabla de Iceberg. Para habilitar la administración automática de tablas
(gcp.biglake.table-management.enabled), el catálogo debe usar el modo de venta de credenciales.
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.
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. En esta sección, se enumeran las propiedades predefinidas, como
gcp.biglake.bigquery-dml.enabledygcp.biglake.table-management.enabled.Por ejemplo, puedes cambiar estos valores a
truepara habilitar DML de BigQuery o la administración de tablas. La administración de tablas realiza tareas en segundo plano, como la compactación y el vencimiento de instantáneas. Para obtener más información, consulta Configura las opciones de la tabla.Haz clic en Crear.
La 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 Google Cloud CLI, 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 del 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 de tiempo de ejecución de Lakehouse desde BigQuery, usa
la siguiente sentencia CREATE TABLE de GoogleSQL. Cuando creas una
tabla desde BigQuery, el DML de BigQuery y la administración
de tablas están habilitados de forma predeterminada. Para usar la administración automática de tablas, el
catálogo debe usar el modo de venta de
credenciales.
CREATE TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` (id int, data string);
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto de Google Cloud .CATALOG_ID: Es el ID del catálogo de tiempo de ejecución de Lakehouse.NAMESPACE: Es el nombre de tu espacio de nombres de Iceberg.TABLE_NAME: Es un nombre para 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 CreateTableRequest de Iceberg válida
que defina el esquema de la tabla, la especificación de la 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 del espacio de nombres del catálogo.
¿Qué sigue?
- Obtén información para crear listas de tablas.
- Obtén información para insertar datos en una tabla.
- Obtén más información para administrar las LCA de tablas.