Limitaciones y consideraciones

La integración de Apache Spark y Apache Hive con el catálogo de entorno de ejecución de Lakehouse a través del extremo del catálogo de Apache Hive te permite compartir metadatos unificados y consultar tablas directamente en BigQuery sin mantener un almacén de metadatos de Hive (HMS) autohospedado.

Antes de migrar o compilar canalizaciones de bases de datos de código abierto en el catálogo de tiempo de ejecución de Lakehouse, revisa las restricciones funcionales y las consideraciones del servicio que se incluyen en este documento para determinar si la integración cumple con tus requisitos técnicos. Para obtener instrucciones de configuración y consulta, consulta Configura Spark y Hive con el catálogo de tiempo de ejecución de Lakehouse.

Limitaciones del catálogo de tiempo de ejecución de Lakehouse

En esta sección, se enumeran las limitaciones del uso del catálogo de tiempo de ejecución de Lakehouse con varios servicios.

Limitaciones de Metastore

  • Para las cargas de trabajo por lotes sin servidores, Managed Service para Apache Spark solo admite trabajos de PySpark cuando se conecta al extremo del catálogo de Apache Hive.
  • Para las cargas de trabajo sin servidores, la API de Dataproc no admite las propiedades de almacén de metadatos hive.* ni hive:* en el campo properties. En su lugar, especifica las propiedades de spark.hive.metastore.* (o configura las marcas /etc/hive/conf/hive-site.xml o --hiveconf cuando uses la CLI de Hive en un clúster).
  • No puedes crear clústeres de Managed Service para Apache Spark que usen Kerberos, porque el catálogo de tiempo de ejecución de Lakehouse no admite las APIs de token de delegación ni de clave primaria.
  • Las bases de datos y las tablas pueden usar un location_uri de Cloud Storage que sea distinto de su catálogo de Hive, siempre que el bucket de Cloud Storage esté 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 de tiempo de ejecución de Lakehouse.
  • Las eliminaciones en cascada no son compatibles con las bases de datos y los catálogos de Hive.
  • La compatibilidad con Trino no está disponible.

Limitaciones de tablas

  • No se admite el cambio de nombre de la tabla.
  • No se admite el cambio de nombre de las particiones.
  • Borrar tablas o bases de datos no quita 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 creación de buckets.
  • Solo se admiten vistas virtuales.
  • Las tablas de Delta Lake son compatibles con Apache Spark (lectura y escritura) y BigQuery (solo lectura). Los clientes de Hive (como la CLI de Hive) no admiten tablas de Delta Lake. Se aplican todas las limitaciones de las tablas externas de Delta Lake de BigQuery y las limitaciones de las tablas de BigLake. Para obtener más detalles y conocer las limitaciones específicas, consulta Configura Spark con tablas Delta.

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 partición para usarla en la reducción de particiones. Está optimizado 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<>> ni ARRAY<MAP<>>. La compatibilidad con MAP se debe agregar a una lista de entidades permitidas. Comunícate con biglake-help@google.com si tus cargas de trabajo usan MAP de forma extensiva.
  • Los tipos de claves MAP solo admiten tipos de datos primitivos. No puedes usar ARRAY, STRUCT ni MAP como tipos de claves.
  • BigQuery solo puede consultar datos de Cloud Storage. Se aplican las siguientes limitaciones:

    • Los URI de ubicación de la tabla no pueden incluir un comodín (*).
    • Los URIs de ubicación de la tabla deben ser directorios.

Limitaciones de la replicación entre regiones y la recuperación ante desastres

El catálogo de tiempo de ejecución de Lakehouse proporciona replicación entre regiones y recuperación ante desastres para mejorar la disponibilidad y la resiliencia de tu catálogo.

Cuando usas el catálogo de tiempo de ejecución de Lakehouse con catálogos de Hive, se aplican las siguientes limitaciones:

  • Cuando creas un catálogo de Hive, debes configurar su primary_location para que coincida con la región de tu bucket de Cloud Storage. Luego, el catálogo de entorno de ejecución de Lakehouse copia automáticamente los metadatos en una región secundaria según la configuración birregional o multirregional de tu bucket. Esta copia secundaria de metadatos es de solo lectura hasta que la asciendas a principal con una operación de conmutación por error.
  • Durante una conmutación por error, la marca de tiempo replication_time solo hace un seguimiento de la replicación de metadatos del catálogo, no de si los archivos de datos de Cloud Storage subyacentes terminaron de replicarse en la región secundaria. 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 de tiempo de ejecución de Lakehouse.

Consideraciones

El catálogo de tiempo de ejecución de Lakehouse admite un subconjunto de la interfaz de Hive Metastore. Este diseño prioriza la compatibilidad con el ExternalCatalog de Spark, que no requiere compatibilidad total con el almacén de metadatos de Hive.

Asignación de recursos

En la siguiente tabla, se asignan los recursos de Hive Metastore a los recursos del catálogo de Lakehouse en el entorno de ejecución y sus permisos de Identity and Access Management (IAM) requeridos.

Recurso de Hive Metastore Recurso del catálogo de tiempo 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 administración a nivel de tabla, columna y partición. El catálogo de 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 columna.

Limitaciones de almacenamiento

  • Se aplican todas las limitaciones de las tablas externas de BigQuery.

Limitaciones de las particiones

  • No se admite el seguimiento de las estadísticas a nivel de columna en el nivel de partición.
  • Los métodos de la API BatchCreatePartitions, BatchDeletePartitions y BatchUpdatePartitions limitan las llamadas a 900 particiones por lote.

¿Qué sigue?