Conceptos del catálogo REST de Apache Iceberg

En este documento, se proporciona una descripción general del catálogo de Apache Iceberg REST de BigLake Metastore, incluida su jerarquía de recursos y los tipos de catálogos admitidos.

El catálogo REST de Apache Iceberg en BigLake Metastore usa una jerarquía de recursos para organizar tus datos. En la siguiente tabla, se proporciona una descripción general de alto nivel de estos recursos:

Jerarquía de recursos

Recurso Descripción
Catálogo Un catálogo es el contenedor de nivel superior que te permite organizar los espacios de nombres y las tablas en grupos lógicos dividiéndolos en diferentes catálogos.
Espacio de nombres Es una agrupación lógica que se usa para organizar tablas dentro de un catálogo y funciona como bases de datos, esquemas o directorios.
Tabla Las tablas contienen definiciones de filas y columnas que se pueden consultar.

Tipos de catálogos admitidos

Cuando configuras tu cliente, especificas una ubicación de almacén. Esta elección determina cómo opera tu catálogo y cómo se integra con otros servicios de Google Cloud. En la siguiente tabla, se describen los tipos de catálogos admitidos:

Tipo de catálogo Descripción
Bucket de Cloud Storage Todos los datos de un catálogo se almacenan en un solo bucket de Cloud Storage. Para los datos que se comparten en varios buckets, se requieren varios catálogos.
Federación de BigQuery Te permite usar el catálogo REST de Iceberg para administrar y consultar tablas que son visibles para BigQuery. Para obtener más información, consulta Federación de catálogos con BigQuery.

Detalles del almacén del catálogo

Recomendado

  • Almacén de buckets de Cloud Storage (gs://): Este es el enfoque estándar en el que el catálogo administra directamente los metadatos y los archivos de datos de Iceberg en un bucket de Cloud Storage que especificas. Esta opción te brinda control directo sobre el diseño de tus datos y admite la venta de credenciales para un control de acceso detallado. Esto te permite crear y administrar tablas de BigLake para Apache Iceberg.

    Por ejemplo, si creaste tu bucket para almacenar tu catálogo y lo llamaste iceberg-bucket, tanto el nombre del catálogo como el del bucket serán iceberg-bucket. Esto se usará más adelante cuando consultes tu catálogo en BigQuery con la sintaxis de P.C.N.T. Por ejemplo my-project.biglake-catalog-id.quickstart_namespace.quickstart_table.

Alternativa

  • Federación de BigQuery (bq://): Este enfoque te permite usar el catálogo de REST de Iceberg para administrar y consultar tablas que son visibles para BigQuery, sin necesidad de crear un recurso de catálogo. Para obtener más información, consulta Federación de catálogos con BigQuery.

Estructura de nomenclatura de PCNT

Cuando consultas tablas de BigLake Metastore desde BigQuery, usas una estructura de nombres de cuatro partes, a menudo denominada P.C.N.T:

  • Proyecto: Es el Google Cloud ID del proyecto propietario del catálogo.
  • Catálogo: Es el nombre del catálogo de BigLake Metastore.
  • Namespace: Es el espacio de nombres de Iceberg (equivalente a un conjunto de datos de BigQuery).
  • Tabla: Es el nombre de la tabla.

Por ejemplo, my-project.biglake-catalog-id.my-namespace.my-table.

Federación de catálogos con BigQuery

Puedes usar la interfaz del catálogo REST de Iceberg para administrar y consultar tablas que son visibles para BigQuery. Los catálogos de federación de BigQuery no requieren que crees un recurso de catálogo, sino que se pueden usar en cualquier proyecto que tenga habilitada la API de BigQuery. Esto te permite hacer lo siguiente:

Como BigQuery administra estos recursos, debes tener los permisos necesarios aplicables. La venta de credenciales no es compatible con los catálogos federados.

Para habilitar la federación, configura tu cliente con el formato de almacén bq://projects/PROJECT_ID en el campo WAREHOUSE_PATH de los ejemplos de configuración del cliente en Usa el catálogo de REST de Iceberg. También puedes incluir una ubicación de BigQuery para restringir las solicitudes futuras a una sola ubicación con el formato bq://projects/PROJECT_ID/locations/LOCATION.