A integração do Apache Spark e do Apache Hive com o catálogo do ambiente de execução do Lakehouse usando o endpoint do catálogo do Apache Hive permite compartilhar metadados unificados e consultar tabelas diretamente no BigQuery sem manter um metastore do Hive (HMS) auto-hospedado.
Antes de migrar ou criar pipelines de banco de dados de código aberto no catálogo do ambiente de execução do Lakehouse, analise as restrições funcionais e as considerações de serviço neste documento para determinar se a integração atende aos seus requisitos técnicos. Para instruções de configuração e consulta, consulte Configurar o Spark e o Hive com o catálogo do ambiente de execução do Lakehouse.
Limitações do catálogo do ambiente de execução do Lakehouse
Nesta seção, listamos as limitações do uso do catálogo do ambiente de execução do Lakehouse com vários serviços.
Limitações do metastore
- Para cargas de trabalho em lote sem servidor, o Serviço Gerenciado para Apache Spark só oferece suporte a jobs do PySpark ao se conectar ao endpoint do catálogo do Apache Hive.
- Para cargas de trabalho sem servidor, a API Dataproc não é compatível com as propriedades de metastore
hive.*ouhive:*no campoproperties. Especifique as propriedadesspark.hive.metastore.*(ou configure as flags/etc/hive/conf/hive-site.xmlou--hiveconfao usar a CLI do Hive em um cluster). - Não é possível criar clusters do Serviço Gerenciado para Apache Spark que usem o Kerberos, porque o catálogo do ambiente de execução do Lakehouse não é compatível com APIs de token de delegação ou de chave primária.
- Os bancos de dados e as tabelas podem usar um
location_urido Cloud Storage diferente do catálogo do Hive, desde que o bucket do Cloud Storage esteja na mesma região do catálogo do Hive. - O catálogo do Hive não pode conter namespaces e tabelas do Iceberg. Para criar e usar namespaces e tabelas do Iceberg, use o catálogo do ambiente de execução do Lakehouse.
- As exclusões em cascata não são compatíveis com bancos de dados e catálogos do Hive.
- O suporte ao Trino não está disponível.
Limitações da tabela
- Não é possível renomear tabelas.
- Não é possível renomear partições.
- A exclusão de tabelas ou bancos de dados não remove os arquivos associados do Cloud Storage.
- Não há suporte para pesquisa que não diferencia maiúsculas de minúsculas.
- Não há suporte para clustering e bucketing.
- Somente as visualizações virtuais são compatíveis.
- As tabelas do Delta Lake são compatíveis com o Apache Spark (leitura e gravação) e o BigQuery (somente leitura). Os clientes do Hive (como a CLI do Hive) não são compatíveis com tabelas do Delta Lake. Todas as limitações de tabelas externas do BigQuery Delta Lake e limitações de tabelas do BigLake se aplicam. Para mais detalhes e limitações específicas, consulte Configurar o Spark com tabelas Delta.
Tamanho do lote da partição
O catálogo do ambiente de execução do Lakehouse é compatível com o armazenamento e a recuperação de informações de particionamento para uso na remoção de partições. Ele é otimizado para leituras em vez de gravações, o que resulta em um desempenho de consulta mais rápido por meio da remoção de partições.
Para otimizar o desempenho da ingestão de partições, o tamanho da partição em lote é limitado a 900.
Defina a seguinte configuração para as propriedades do Hive e do Spark que determinam o tamanho do lote das operações de particionamento:
SET hive.msck.repair.batch.size = 900;SET spark.sql.addPartitionInBatch.size = 900;
Limitações do BigQuery
- Por padrão, o BigQuery não oferece suporte aos tipos de dados
ARRAY<ARRAY<>>ouARRAY<MAP<>>. O suporte paraMAPprecisa ser adicionado a uma lista de permissões. Entre em contato com biglake-help@google.com se as cargas de trabalho usaremMAPextensivamente. - Os tipos de chave
MAPaceitam apenas tipos de dados primitivos. Não é possível usarARRAY,STRUCTouMAPcomo tipos de chave. O BigQuery só pode consultar dados do Cloud Storage. Considere as seguintes limitações:
- Os URIs de localização da tabela não podem incluir um caractere curinga (
*). - Os URIs de localização da tabela precisam ser diretórios.
- Os URIs de localização da tabela não podem incluir um caractere curinga (
Limitações de replicação entre regiões e recuperação de desastres
O catálogo do ambiente de execução do Lakehouse oferece replicação entre regiões e recuperação de desastres para melhorar a disponibilidade e a resiliência do catálogo.
Ao usar o catálogo do ambiente de execução do Lakehouse com catálogos do Hive, as seguintes limitações se aplicam:
- Ao criar um catálogo do Hive, defina o
primary_locationdele para corresponder à região do bucket do Cloud Storage. O catálogo do ambiente de execução do Lakehouse copia automaticamente os metadados para uma região secundária com base na configuração birregional ou multirregional do bucket. Essa cópia de metadados secundária é somente leitura até que você a promova para principal usando uma operação de failover. - Durante um failover, o carimbo de data/hora
replication_timerastreia apenas a replicação de metadados do catálogo, não se os arquivos de dados do Cloud Storage subjacentes terminaram de ser replicados para a região secundária. A redundância de dados depende das configurações birregionais ou multirregionais do bucket, que são separadas da replicação de metadados do catálogo do ambiente de execução do Lakehouse.
Considerações
O catálogo do ambiente de execução do Lakehouse é compatível com um subconjunto da interface do Hive Metastore. Esse design prioriza a compatibilidade com o ExternalCatalog do Spark, que não exige compatibilidade total com o metastore do Hive.
Mapeamento de recursos
A tabela a seguir mapeia os recursos do Hive Metastore para os recursos do catálogo do ambiente de execução do Lakehouse e as permissões necessárias do Identity and Access Management (IAM).
| Recurso do Hive Metastore | Recurso do catálogo do ambiente de execução do Lakehouse | Permissão do IAM |
|---|---|---|
| Catálogo | Catálogo | biglake.catalogs.* |
| Banco de dados | Banco de dados | biglake.namespaces.* |
| Tabela | Tabela | biglake.tables.* |
Governança
O Hive Metastore (HMS) oferece governança nos níveis de tabela, coluna e partição. O catálogo do ambiente de execução do Lakehouse fornece permissões do IAM no nível da tabela e da partição. A governança no nível da coluna não é compatível.
Limitações de armazenamento
- Todas as limitações de tabelas externas do BigQuery se aplicam.
Limitações de partição
- Não é possível rastrear estatísticas de coluna no nível da partição.
- Os métodos de API
BatchCreatePartitions,BatchDeletePartitionseBatchUpdatePartitionslimitam as chamadas a 900 partições por lote.
A seguir
- Use o Spark e o Hive com o catálogo do ambiente de execução do Lakehouse.