La integración de Spark y Hive con el catálogo de entorno de ejecución de Lakehouse elimina la sobrecarga operativa de mantener un Hive Metastore (HMS) autoalojado y, al mismo tiempo, permite el uso compartido unificado de metadatos y las consultas directas de tablas en BigQuery.
En este documento, se destacan las limitaciones funcionales y las consideraciones de servicio de esta integración. Antes de migrar o compilar tus canalizaciones de bases de datos de código abierto en el catálogo del entorno de ejecución de Lakehouse, revisa estas limitaciones para determinar si esta versión preliminar satisface tus requisitos técnicos.
Si buscas instrucciones de configuración y consulta en lugar de límites, consulta Usa Spark y Hive con el catálogo del entorno de ejecución de Lakehouse.
Limitaciones del catálogo de entorno de ejecución de Lakehouse
En esta sección, se enumeran las limitaciones del uso del catálogo del entorno de ejecución de Lakehouse con varios servicios.
Limitaciones de Metastore
- Managed Service para Apache Spark solo admite trabajos de PySpark con Lakehouse Metastore.
- La API de Dataproc no admite la configuración de propiedades de Lakehouse Metastore en el campo
properties. - No puedes crear clústeres de Managed Service para Apache Spark que usen Kerberos, ya que el catálogo del entorno de ejecución de Lakehouse no admite APIs de token de delegación ni de clave primaria.
- Las bases de datos y las tablas pueden usar un
location_uride Cloud Storage que sea distinto de su catálogo de Hive, siempre y cuando el bucket de Cloud Storage se encuentre en la misma región que el catálogo de Hive. - El catálogo de Hive no puede contener espacios de nombres ni tablas de Iceberg. Para crear y usar espacios de nombres y tablas de Iceberg, usa el catálogo del entorno de ejecución de Lakehouse.
Limitaciones de tablas
- No se admite el cambio de nombre de la tabla.
- No se admite el cambio de nombre de las particiones.
- Si borras tablas o bases de datos, no se quitarán los archivos asociados de Cloud Storage.
- No se admite la búsqueda que no distingue mayúsculas de minúsculas.
- No se admiten la agrupación en clústeres ni la discretización.
- No se admiten las vistas de tabla.
Tamaño del lote de partición
El catálogo de entorno de ejecución de Lakehouse admite el almacenamiento y la recuperación de información de particionamiento para usar en la eliminación de particiones. Está optimizada para lecturas en lugar de escrituras, lo que genera un rendimiento de consultas más rápido a través de la reducción de particiones.
Para optimizar el rendimiento de la transferencia de particiones, el tamaño de la partición por lotes se limita a 900.
Establece la siguiente configuración para las propiedades de Hive y Spark que determinan el tamaño del lote de las operaciones de partición:
SET hive.msck.repair.batch.size = 900;SET spark.sql.addPartitionInBatch.size = 900;
Limitaciones de BigQuery
- De forma predeterminada, BigQuery no admite los tipos de datos
ARRAY<ARRAY<>>niARRAY<MAP<>>. La compatibilidad conMAPdebe agregarse a una lista de entidades permitidas. Comunícate con biglake-help@google.com si tus cargas de trabajo usanMAPde forma extensiva. - Los tipos de clave
MAPsolo admiten tipos de datos primitivos. No puedes usarARRAY,STRUCTniMAPcomo tipos de clave. - Durante la versión preliminar, BigQuery solo puede consultar datos de Cloud Storage. Se aplican las siguientes limitaciones:
- Los URIs de ubicación de la tabla no pueden incluir un comodín (
*). - Los URIs de ubicación de la tabla deben ser directorios.
- Los URIs de ubicación de la tabla no pueden incluir un comodín (
Limitaciones de la replicación entre regiones y la recuperación ante desastres
El catálogo de entorno de ejecución de Lakehouse ofrece replicación entre regiones y recuperación ante desastres para mejorar la disponibilidad y la resiliencia de tu catálogo.
Cuando se usa el catálogo de entorno de ejecución de Lakehouse con catálogos de Hive, se aplican las siguientes limitaciones:
Los catálogos de Hive no proporcionan capacidades completas de recuperación ante desastres, como la conmutación por error iniciada por el usuario.
Cuando creas un catálogo de Hive, debes configurar su
primary_locationpara que coincida con la región de tu bucket de Cloud Storage. Luego, el catálogo del entorno de ejecución de Lakehouse copia automáticamente los metadatos a una región secundaria según la configuración birregional o multirregional de tu bucket. Esta copia secundaria de los metadatos es de solo lectura y no puedes promoverla a principal. La redundancia de datos depende de la configuración birregional o multirregional de tu bucket, que es independiente de la replicación de metadatos del catálogo del entorno de ejecución de Lakehouse.
Consideraciones para usar el catálogo de entorno de ejecución de Lakehouse como reemplazo del metastore de Hive
La versión preliminar del catálogo de entorno de ejecución de Lakehouse admite un subconjunto de la interfaz de Hive Metastore. Este diseño prioriza la compatibilidad con Spark ExternalCatalog, que no requiere compatibilidad total con Hive Metastore.
Asignación de recursos
En la siguiente tabla, se asignan los recursos de Hive Metastore a los recursos del catálogo del entorno de ejecución de Lakehouse y sus permisos de Identity and Access Management (IAM) requeridos.
| Recurso de Hive Metastore | Recurso de catálogo de entorno de ejecución de Lakehouse | Permisos de IAM |
|---|---|---|
| Catálogo | Catálogo | biglake.catalogs.* |
| Base de datos | Base de datos | biglake.namespaces.* |
| Tabla | Tabla | biglake.tables.* |
Administración
Hive Metastore (HMS) proporciona gobernanza a nivel de la tabla, la columna y la partición. El catálogo del entorno de ejecución de Lakehouse proporciona permisos de IAM a nivel de tabla y de partición. No se admite la administración a nivel de la columna.
Limitaciones de almacenamiento
- Se aplican todas las limitaciones de las tablas externas de BigQuery.
Limitaciones de partición
- No se admite el seguimiento de las estadísticas a nivel de la columna en el nivel de la partición.
- La API de
BatchCreateHivePartitionslimita las llamadas a 900 particiones.