Crear tabla

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

  1. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

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

    Habilitar la API

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

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

  1. En la consola de Google Cloud , ve a Lakehouse.

    Ir a Lakehouse

  2. Selecciona un catálogo existente o crea uno si no tienes.

  3. Selecciona un espacio de nombres existente o crea uno si no tienes.

  4. En la barra de menú, haz clic en + Crear tabla.

  5. En Formato de tabla, selecciona Iceberg.

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

  7. 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.enabled y gcp.biglake.table-management.enabled.

    Por ejemplo, puedes cambiar estos valores a true para 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.

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