La arquitectura técnica de Lakehouse para Apache Iceberg admite la interoperabilidad entre motores mediante la centralización de la administración de metadatos y el manejo de consultas a través de rutas de acceso específicas.
Arquitectura
La creación de Lakehouse de Google Cloud consta de los siguientes componentes técnicos:
Almacenamiento: El almacenamiento de Cloud Storage y BigQuery actúa como la capa de almacenamiento, con Apache Iceberg como el formato de tabla abierta recomendado para el almacenamiento interoperable y de alto rendimiento en Cloud Storage.
Catálogo: El catálogo de entorno de ejecución de Lakehouse proporciona una única fuente de información para administrar los metadatos. Centraliza el descubrimiento de metadatos en varios motores con varias opciones de compatibilidad, como el extremo de catálogo de REST de Apache Iceberg. Los registros de tablas en el catálogo registran automáticamente entradas en el catálogo de conocimiento de metadatos empresariales.
Motor de consultas: BigQuery y los motores de código abierto, incluidos Apache Spark, Apache Flink y Trino, interoperan sin problemas conectándose al catálogo de entorno de ejecución de Lakehouse. Los motores de procesamiento, como Managed Service para Apache Spark, usan Apache Spark de código abierto con optimizaciones de ejecución para garantizar la portabilidad de la carga de trabajo y evitar la dependencia de un proveedor.
Administración: Knowledge Catalog proporciona seguridad, linaje y políticas de administración centralizadas en todo tu lakehouse.
Herramientas de análisis y escritura de datos: Los motores y las herramientas integrados proporcionan varias rutas de acceso para la transferencia y el análisis de datos, lo que ayuda a garantizar el acceso coherente a los datos para los analistas y los científicos de datos.
Jerarquía de recursos
Lakehouse de Google Cloud organiza los datos con una jerarquía que se alinea con los estándares de Apache Iceberg y los conceptos de base de datos estándar. Esta estructura permite que el catálogo de entorno de ejecución de Lakehouse asigne identidades lógicas a rutas de acceso de almacenamiento físico. Para interactuar con esta jerarquía de recursos y conectar tus motores de consultas al catálogo, usa extremos específicos, como se describe en la siguiente lista.
- Catálogo de entorno de ejecución de Lakehouse: Es el recurso de servicio regional de nivel superior en Google Cloud el que se alojan tus metadatos. Para conectar motores de consultas a este servicio y administrar los catálogos subyacentes, configura las aplicaciones cliente con un extremo de catálogo específico, como el extremo de catálogo de REST de Apache Iceberg.
- Catálogo: Es un contenedor lógico dentro del servicio de catálogo de entorno de ejecución. En la estructura de nombres Project/Catalog/Namespace/Table (P.C.N.T), esto representa la instancia de catálogo específica que estás consultando.
- Espacio de nombres: Es una agrupación lógica de tablas dentro de un catálogo. Para los usuarios familiarizados con BigQuery, un espacio de nombres es funcionalmente similar a un conjunto de datos.
- Tabla: Es la entidad específica que apunta a los datos en
Cloud Storage. Los metadatos de la tabla contienen el esquema, la información de partición y un puntero al estado actual de la tabla a través de un archivo
metadata.jsonde Apache Iceberg.
Extremos compatibles
El catálogo de entorno de ejecución de Lakehouse proporciona varios extremos para conectar tus datos en Cloud Storage y BigQuery.
Extremo de catálogo de REST de Apache Iceberg: Proporciona una interfaz de REST estándar para una amplia compatibilidad con motores de código abierto como Apache Spark, Apache Flink, y Trino. Esta es la interfaz recomendada para las cargas de trabajo nuevas y ofrece interoperabilidad completa de lectura y escritura.
Catálogo personalizado de Apache Iceberg para el extremo de BigQuery: Permite que los motores interoperen directamente con el catálogo de BigQuery. Esta interfaz se usa principalmente para tablas de Apache Iceberg administradas por BigQuery y cargas de trabajo existentes que realizan la transición a la arquitectura Lakehouse.
Extremo de catálogo de Apache Hive (versión preliminar): Proporciona compatibilidad para cargas de trabajo de código abierto que dependen de la interfaz de almacén de metadatos de Apache Hive (HMS). Esto te permite ejecutar cargas de trabajo de Apache Hive o Spark en un servicio de almacén de metadatos completamente administrado en Google Cloud.
Catálogo de entorno de ejecución de Lakehouse
Dentro de la jerarquía de recursos, el catálogo de entorno de ejecución de Lakehouse actúa como el servicio de metadatos regional de nivel superior en Google Cloud. Actúa como el contenedor raíz que aloja tus instancias de catálogo individuales, lo que centraliza el descubrimiento de metadatos en motores de consultas dispares.
Para obtener más información sobre el servicio de almacén de metadatos, incluidas las capacidades clave, los motores compatibles, la configuración de extremos y las limitaciones, consulta Acerca del catálogo de entorno de ejecución de Lakehouse.
Catálogo
Un catálogo es un contenedor lógico de almacén de metadatos respaldado por ubicaciones de almacén de Cloud Storage. En la estructura de nombres Project.Catalog.Namespace.Table (P.C.N.T), el catálogo representa la instancia única de almacén de metadatos que conecta los metadatos de tu tabla abierta con los motores de consultas.
Las características clave de los catálogos incluyen las siguientes:
- Asociación de almacenamiento: La relación entre un catálogo y su almacenamiento subyacente depende del tipo de catálogo que configures.
- Replicación regional: La región de un catálogo coincide automáticamente con la región del bucket subyacente.
- Delegación de acceso: Los administradores pueden habilitar la venta de credenciales en el catálogo para delegar el acceso, lo que permite que se generen automáticamente credenciales de corta duración con un alcance reducido en lugar de otorgar a los usuarios permisos directos del bucket.
Espacio de nombres
Un espacio de nombres es una agrupación lógica de tablas dentro de un catálogo, que funciona de manera similar a una base de datos, un esquema o un conjunto de datos de BigQuery. Proporciona una estructura para organizar y administrar los controles de acceso para las tablas.
Las características clave de los espacios de nombres incluyen las siguientes:
- Regionalidad: Cuando creas un espacio de nombres, este usa automáticamente la misma región que su catálogo superior.
- Flexibilidad de ubicación: Las opciones para especificar ubicaciones de espacio de nombres personalizadas se determinan según el tipo de almacén del catálogo.
- Limitaciones de anidación: No se admiten espacios de nombres anidados (subespacios de nombres).
- Límites de seguridad: Puedes otorgar roles de IAM a nivel del espacio de nombres para administrar el acceso a todas las tablas que contiene.
Tablas
Cuando compilas con Lakehouse de Google Cloud, puedes elegir entre los siguientes tipos de tablas:
Compatible con el catálogo de entorno de ejecución de Lakehouse
Recomendado
Tablas de Apache Iceberg: Tablas de Apache Iceberg creadas a partir de motores de código abierto y almacenadas en Cloud Storage. Ofrecen compatibilidad y administración abiertas a través del extremo de REST del catálogo de entorno de ejecución de Lakehouse. Para garantizar que no haya dos tablas que ocupen la misma ubicación, las rutas de acceso de tablas personalizadas deben estar anidadas en la ruta de acceso del espacio de nombres superior, y las ubicaciones de tablas resultantes reciben automáticamente un sufijo de cadena aleatorio para evitar conflictos.
Formatos de tabla compatibles
Se admiten las tablas de Apache Iceberg V2 (GA) y V3 (versión preliminar). No se admiten las tablas de Iceberg V1. Antes de usar las tablas V1 existentes con Lakehouse para Apache Iceberg, debes actualizarlas a una versión compatible. Para obtener más información, consulta Actualiza las tablas de Iceberg V1 a V2.
Compatible con BigQuery
- Tablas de Apache Iceberg: Tablas de Apache Iceberg creadas y administradas por BigQuery. Los metadatos de estas tablas se almacenan en el catálogo de BigQuery, y los datos de la tabla y los metadatos físicos se almacenan en Cloud Storage.
- Tablas nativas: Tablas completamente administradas por BigQuery que se pueden conectar al catálogo de entorno de ejecución de Lakehouse para permitirte interoperar con motores de código abierto.
- Tablas externas: Tablas fuera del catálogo de entorno de ejecución de Lakehouse en las que los datos y los metadatos se administran por sí mismos. Admiten el acceso delegado a través de conexiones para los datos almacenados en Cloud Storage, Amazon S3 o Azure Blob Storage.
Para obtener una comparación detallada de estas opciones, consulta Comprende los tipos y las capacidades de las tablas.
Secuencia de procesamiento de consultas
Cuando envías una consulta a la tabla de Lakehouse de Google Cloud, la solicitud sigue una ruta de acceso específica para aplicar políticas y recuperar metadatos antes de que se procesen los datos.
- Envío: Envías una consulta en SQL a un motor compatible, como Apache Spark, Trino o BigQuery.
- Solicitud de metadatos: El motor solicita metadatos de la tabla del catálogo de entorno de ejecución de Lakehouse para identificar la tabla y su ubicación de metadatos.
- Autorización: Si el extremo que usas lo admite, el catálogo valida la solicitud en Identity and Access Management (IAM) y las políticas de seguridad detalladas.
- Respuesta de metadatos: El catálogo muestra los metadatos. Si la venta de credenciales está habilitada, también proporciona un token de corta duración para ayudar con el acceso seguro al almacenamiento.
- Recuperación de datos: El motor usa los metadatos y el token opcional para leer archivos de datos directamente desde Cloud Storage.
- Ejecución: El motor procesa los datos y muestra los resultados.
Prácticas recomendadas
Cuando diseñes y operes un data lakehouse en Google Cloud, ten en cuenta las siguientes prácticas recomendadas:
- Adopta una arquitectura de medallón: Estructura tu almacén de datos en capas lógicas progresivas (bronce para la transferencia sin procesar, plata para datos limpios y ajustados, y oro para agregaciones seleccionadas a nivel empresarial). Usa BigQuery para la capa de consumo de oro para maximizar el rendimiento y la simultaneidad de las consultas.
- Usa plantillas de sesión para cargas de trabajo interactivas: Para el análisis exploratorio y la creación de notebooks, usa plantillas de sesión para estandarizar las configuraciones del entorno en los equipos de desarrollo y reducir la configuración repetitiva.
- Asigna identificadores de lotes personalizados: Cuando envíes cargas de trabajo por lotes de Apache Spark sin servidores no interactivas, asigna nombres de lotes y trabajos personalizados. Esto mejora la observabilidad, lo que te ayuda a filtrar y hacer un seguimiento de las ejecuciones de trabajos en Cloud Logging y la Google Cloud consola.
- Habilita el registro de diagnóstico: Para las canalizaciones complejas de ingeniería de datos, habilita los paquetes de diagnóstico y asegúrate de que se conserven los registros del controlador y del ejecutor para ayudar con la solución de problemas y la compatibilidad.
¿Qué sigue?
- Para obtener más información sobre el servicio de almacén de metadatos, consulta Acerca del catálogo de entorno de ejecución de Lakehouse.
- Usa el catálogo de entorno de ejecución de Lakehouse con Apache Spark, BigQuery y el extremo de catálogo de REST de Apache Iceberg.