El extremo del catálogo de Apache Iceberg personalizado para BigQuery conecta motores de consultas de código abierto, como Apache Spark y Apache Flink, al catálogo de entorno de ejecución de Lakehouse. Al integrar un complemento de catálogo personalizado (BigQueryMetastoreCatalog), este extremo te permite administrar y consultar metadatos de tablas de Apache Iceberg directamente a través de BigQuery mientras almacenas datos y archivos de metadatos en Cloud Storage.
Cómo funciona el catálogo de Iceberg personalizado
El catálogo de Apache Iceberg personalizado usa una implementación de catálogo personalizada (org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog) que se proporciona en una biblioteca JAR. Cuando tus cargas de trabajo de procesamiento se ejecutan en Managed Service para Apache Spark, el motor usa este complemento para interactuar con BigQuery como el almacén de metadatos de tus tablas de Apache Iceberg.
El flujo de trabajo funciona de la siguiente manera:
- Implementación del catálogo: Los motores de consultas cargan el JAR del catálogo de BigQuery Metastore y configuran las propiedades del catálogo de la sesión de Spark para usar
org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog. - Administración de metadatos: Cuando creas o modificas tablas con las APIs de Spark SQL o DataFrame, el complemento almacena las definiciones de conjuntos de datos y tablas en BigQuery.
- Almacenamiento de datos: Los archivos de metadatos de Apache Iceberg (
metadata.json, listas de manifiestos, manifiestos) y los archivos de datos (como los archivos Parquet) se almacenan directamente en la ruta de almacén de Cloud Storage especificada. - Acceso entre motores: Debido a que los metadatos están registrados en BigQuery, puedes consultar tablas desde motores de código abierto, como Spark, y directamente desde BigQuery.
Jerarquía de recursos
El extremo del catálogo de Apache Iceberg personalizado para BigQuery organiza los metadatos en la siguiente jerarquía:
| Recurso | Descripción |
|---|---|
| Proyecto | El Google Cloud proyecto que contiene tus recursos de BigQuery y el almacenamiento de almacén de Cloud Storage |
| Espacio de nombres (conjunto de datos) | Un conjunto de datos de BigQuery configurado para actuar como un espacio de nombres de Iceberg, que define la ubicación predeterminada de Cloud Storage para las tablas creadas en él |
| Tabla | Una tabla de Apache Iceberg cuyo esquema, instantáneas y punteros de metadatos se rastrean en BigQuery y cuyos archivos de datos residen en Cloud Storage |
Compara los catálogos de Iceberg personalizados y los catálogos de REST de Iceberg
En la siguiente tabla, se resumen las diferencias clave entre el extremo del catálogo de Apache Iceberg personalizado para BigQuery y el extremo del catálogo de REST de Apache Iceberg:
| Función | Catálogo de Iceberg personalizado para BigQuery | Extremo del catálogo de REST de Apache Iceberg (recomendado) |
|---|---|---|
| Estándar de la API de Catalog | Complemento personalizado (BigQueryMetastoreCatalog) |
API de Catalog de REST de Apache Iceberg de estándar abierto |
| Jerarquía del catálogo | Proyecto > Conjunto de datos de BigQuery > Tabla | Proyecto > Catálogo > Espacio de nombres > Tabla (P.C.E.T) |
| Configuración de almacenamiento | Rutas de Cloud Storage especificadas por conjunto de datos o tabla | Catálogos de varios buckets (bl://) o de un solo bucket (gs://) |
| Venta de credenciales | No admitido (usa credenciales directas de IAM) | Compatible (vende tokens de acceso de almacenamiento de corta duración) |
| Recuperación ante desastres | No compatible | Compatible (replicación y conmutación por error entre regiones) |
| Recomendado para | Implementaciones y flujos de trabajo existentes | Cargas de trabajo nuevas e integraciones de clientes de REST de Iceberg estándar |
¿Qué sigue?
- Configura el catálogo de entorno de ejecución con Apache Iceberg 1.10 y versiones posteriores.
- Configura el catálogo de entorno de ejecución con Apache Iceberg 1.9 y versiones anteriores.
- Crea y administra recursos del catálogo.
- Usa el catálogo de entorno de ejecución con tablas de BigQuery.
- Usa procedimientos almacenados de Apache Spark.
- Personaliza funciones adicionales del catálogo features.