A integração do Apache Spark e do Apache Hive com o catálogo do ambiente de execução do Lakehouse pelo 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, revise 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
Esta seção lista as limitações do uso do catálogo do ambiente de execução do Lakehouse com vários serviços.
Limitações do metastore
- O Serviço Gerenciado para Apache Spark oferece suporte apenas a jobs do PySpark com o metastore do Lakehouse sem bordas.
- A API Dataproc não oferece suporte à definição de propriedades do metastore do Lakehouse no campo
properties. - Não é possível criar clusters do Serviço Gerenciado para Apache Spark que usam o Kerberos, porque o catálogo do ambiente de execução do Lakehouse não oferece suporte a 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 que seja 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 aceitas para 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 é possível fazer pesquisas que não diferenciam maiúsculas de minúsculas.
- Não é possível usar clustering e bucketing.
- Só há suporte para visualizações virtuais.
- As tabelas do Delta Lake são aceitas pelo Apache Spark (leitura e gravação) e pelo BigQuery (somente leitura). Os clientes do Hive (como a CLI do Hive) não oferecem suporte a tabelas do Delta Lake. Todas as limitações de tabelas externas do BigQuery Delta Lake e limitações de tabelas do BigLake são aplicáveis. Para mais detalhes e limitações específicas, consulte Configurar o Spark com tabelas Delta.
Tamanho do lote de partições
O catálogo do ambiente de execução do Lakehouse oferece suporte ao armazenamento e à recuperação de informações de particionamento para uso na remoção de partições. Ele é otimizado para leituras em gravações, o que resulta em um desempenho de consulta mais rápido pela 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 de 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 a
ARRAY<ARRAY<>>ouARRAY<MAP<>>tipos de dados. O suporte aMAPprecisa ser adicionado a uma lista de permissões. Entre em contato com biglake-help@google.com se suas cargas de trabalho usaremMAPextensivamente. - Os tipos de chave
MAPoferecem suporte apenas a 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 local da tabela não podem incluir um caractere curinga (
*). - Os URIs de local da tabela precisam ser diretórios.
- Os URIs de local 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, é necessário definir o
primary_locationpara 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_timesó rastreia a replicação de metadados do catálogo, não se os arquivos de dados do Cloud Storage subjacentes terminaram de replicar 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 oferece suporte a um subconjunto da interface do metastore do Hive. 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 metastore do Hive 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 metastore do Hive | 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 metastore do Hive (HMS) oferece governança nos níveis de tabela, coluna e partição. O catálogo do ambiente de execução do Lakehouse oferece permissões do IAM no nível da tabela e da partição. A governança no nível da coluna não é aceita.
Limitações de armazenamento
- Todas as limitações de tabelas externas do BigQuery são aplicáveis.
Limitações de partição
- Não é possível rastrear estatísticas no nível da coluna no nível da partição.
- O limite da API
BatchCreateHivePartitionslimita as chamadas a 900 partições.
A seguir
- Use o Spark e o Hive com o catálogo do ambiente de execução do Lakehouse.