O Lakehouse para Apache Iceberg é uma plataforma gerenciada de data lakehouse no Google Cloud. Nessa plataforma, o catálogo de tempo de execução do data lakehouse funciona como o serviço de metastore sem servidor totalmente gerenciado. Ele fornece uma única fonte de verdade para seu data lakehouse, permitindo que vários mecanismos, incluindo Apache Spark, Apache Flink, Apache Hive e BigQuery, compartilhem tabelas e metadados sem copiar arquivos.
Para conectar mecanismos de consulta ao metastore, configure um cliente usando um tipo de catálogo específico, como o endpoint do catálogo REST do Apache Iceberg. Esse endpoint gerencia metadados de tabela e usa um data warehouse de local de armazenamento com suporte de um bucket do Cloud Storage para armazenar os metadados e arquivos de dados subjacentes. Para mais informações sobre como escolher um tipo de catálogo, consulte Tipos de catálogo e configuração de endpoint.
O catálogo de tempo de execução do Lakehouse oferece suporte à delegação de acesso ao armazenamento, também conhecida como venda de credenciais, que melhora a segurança ao remover a necessidade de acesso direto ao bucket do Cloud Storage. Ele também se integra ao Knowledge Catalog para governança, linhagem e qualidade de dados unificadas.
Principais recursos
Como um componente principal do Lakehouse para Apache Iceberg, o catálogo de ambientes de execução do Lakehouse oferece várias vantagens para gerenciamento e análise de dados, incluindo uma arquitetura sem servidor, interoperabilidade de mecanismos com APIs abertas, uma experiência unificada do usuário e análises, streaming e IA de alta performance quando usado com o BigQuery. Para mais informações sobre esses benefícios, consulte O que é Lakehouse?
Como a arquitetura de lakehouse se integra aos serviços do Google Cloud
Para entender como o Lakehouse gerencia seus dados, saiba como a arquitetura do Lakehouse para Apache Iceberg se integra aos serviços do Google Cloud . O Apache Iceberg não armazena dados em tabelas monolíticas. Em vez disso, ele usa uma arquitetura em camadas de arquivos de metadados para organizar arquivos de dados em uma estrutura de tabela coesa com suporte a transações ACID.
O diagrama a seguir ilustra como os mecanismos de computação, como o Serviço Gerenciado para Apache Spark, usam o catálogo de ambientes de execução do Lakehouse para gerenciar metadados de tabelas e ler e gravar arquivos de dados Parquet subjacentes diretamente no Cloud Storage.
Ao usar o Lakehouse para Apache Iceberg, a arquitetura técnica consiste em três camadas distintas:
Camada de catálogo:
- Conceito principal do Iceberg: o catálogo armazena o estado atual da tabela mantendo um ponteiro para o arquivo de metadados mais recente. Essa camada facilita a conformidade com ACID e o isolamento da transação para garantir que gravações simultâneas não interfiram umas nas outras.
- Implementação do Lakehouse: o catálogo de ambientes de execução do Lakehouse atua como o serviço de metastore regional de nível superior. Nesse serviço, você cria catálogos individuais para gerenciar sua hierarquia de dados. Os mecanismos de consulta do cliente se conectam a esses catálogos usando tipos de catálogo de endpoint específicos, como o endpoint do catálogo REST do Apache Iceberg. A metastore gerencia commits de transações, venda de credenciais para delegação de acesso ao armazenamento e gerenciamento de ponteiros em todos os seus catálogos.
Camada de metadados:
- Conceito principal do Iceberg: essa camada rastreia a estrutura da tabela, os snapshots e os locais dos arquivos usando uma hierarquia de três tipos de arquivos:
- Arquivos de metadados: armazenam o esquema da tabela, a especificação de partição e um registro de ponteiros de snapshot.
- Listas de manifestos: representam um único snapshot da tabela agrupando uma coleção de arquivos de manifesto.
- Arquivos de manifesto: rastreiam dados no nível do arquivo individual, armazenando caminhos de arquivo, informações de partição e estatísticas no nível da coluna, por exemplo, contagens de linhas e valores mínimos e máximos, que são usados para otimização de consultas e remoção de partições.
- Implementação do Lakehouse: em um contêiner de catálogo, você organiza seus dados em namespaces lógicos (semelhantes a conjuntos de dados) e tabelas. Para cada tabela, o catálogo de tempo de execução do Lakehouse gera e gerencia a hierarquia de metadados do Iceberg, começando com um arquivo
metadata.jsonraiz que aponta para as listas e arquivos de manifesto. O catálogo de ambientes de execução do Lakehouse mantém esses arquivos diretamente no local de armazenamento do data warehouse designado.
- Conceito principal do Iceberg: essa camada rastreia a estrutura da tabela, os snapshots e os locais dos arquivos usando uma hierarquia de três tipos de arquivos:
Camada de dados:
- Conceito principal do Iceberg: esse componente é o armazenamento subjacente em que os registros de dados brutos reais residem, geralmente em formatos de arquivo aberto colunares ou baseados em linhas otimizados, como Parquet, ORC ou Avro.
- Implementação do Lakehouse: quando você configura um bucket do Cloud Storage (
gs://) como local de armazenamento do data warehouse, os arquivos de dados físicos referenciados pelas tabelas são armazenados com segurança no bucket. O catálogo de ambiente de execução do Lakehouse gerencia o acesso por delegação de acesso ao armazenamento (venda de credenciais), vendendo tokens de acesso de curta duração diretamente para mecanismos de cliente. Isso permite que os mecanismos leiam e gravem arquivos de dados com segurança sem exigir permissões amplas e diretas do IAM no bucket subjacente.
Compatibilidade e configuração do mecanismo de consulta
Para analisar e gerenciar dados no catálogo de ambientes de execução do Lakehouse, você pode conectar diferentes mecanismos de consulta de código aberto e empresariais. Dependendo da arquitetura e dos requisitos de carga de trabalho atuais, é possível escolher entre vários mecanismos compatíveis e configurar o endpoint de catálogo adequado.
Mecanismos compatíveis
O catálogo de ambientes de execução do Lakehouse é compatível com vários mecanismos de consulta, incluindo (mas não se limitando a) Apache Spark, Apache Flink, Apache Hive e Trino. A tabela a seguir fornece links para a documentação de cada mecanismo:
| Engine | Documentação |
|---|---|
| Apache Spark | Guia de início rápido: usar com o Spark e o endpoint do catálogo REST do Iceberg |
| Apache Hive | Usar com o Spark e o catálogo do Hive |
| Apache Flink | Usar com o Apache Flink |
| Trino | Usar com o Trino |
Tipos de catálogo e configuração de endpoint
Ao configurar mecanismos de cliente para se conectar ao metastore do catálogo de ambientes de execução do Lakehouse, você seleciona um endpoint de catálogo específico, como o endpoint do catálogo REST do Apache Iceberg ou o endpoint do Apache Hive. A melhor opção depende do seu caso de uso, conforme mostrado na tabela a seguir:
| Caso de uso | Recomendação |
|---|---|
| Novos usuários do catálogo de tempo de execução do Lakehouse que querem que o mecanismo de código aberto deles acesse dados no Cloud Storage e precisam de interoperabilidade com outros mecanismos, incluindo BigQuery e AlloyDB para PostgreSQL. | Use o endpoint do catálogo REST do Apache Iceberg. |
| Usuários que executam cargas de trabalho do Apache Hive ou Spark que dependem da interface do Hive Metastore e querem um serviço de metastore totalmente gerenciado. | Use o endpoint do catálogo do Apache Hive. |
| Usuários atuais do catálogo de ambientes de execução do Lakehouse que têm tabelas criadas com o endpoint do catálogo personalizado do Apache Iceberg para BigQuery. | Continue usando o catálogo personalizado do Apache Iceberg para o endpoint do BigQuery, mas use o catálogo REST do Apache Iceberg para novos fluxos de trabalho. As tabelas criadas com o endpoint do catálogo personalizado do Apache Iceberg para BigQuery ficam visíveis com o endpoint do catálogo REST do Apache Iceberg pela federação de catálogos do BigQuery. |
Limitações do catálogo de ambientes de execução do Lakehouse
As seguintes limitações se aplicam às tabelas no catálogo do ambiente de execução do Lakehouse:
Gerenciamento de tabelas
- Não é possível criar ou modificar tabelas com o endpoint do catálogo REST do Apache Iceberg usando instruções de linguagem de definição de dados (DDL) ou linguagem de manipulação de dados (DML) do BigQuery. É possível modificar essas tabelas usando a API BigQuery (com a ferramenta de linha de comando bq ou bibliotecas de cliente), mas isso pode causar mudanças incompatíveis com o mecanismo externo.
- As tabelas no catálogo de tempo de execução do Lakehouse não são compatíveis com
operações de renomeação nem com a instrução SQL
ALTER TABLE ... RENAME TOdo Spark. - As tabelas no catálogo de ambientes de execução do Lakehouse não são compatíveis com clustering.
- As tabelas no catálogo de ambientes de execução do Lakehouse não são compatíveis com nomes de colunas flexíveis.
- O catálogo de ambientes de execução do Lakehouse não é compatível com as visualizações do Apache Iceberg.
Consulta
- O desempenho da consulta para tabelas no catálogo de tempo de execução do Lakehouse do mecanismo do BigQuery pode ser lento em comparação com a consulta de dados em tabelas padrão do BigQuery. Em geral, a velocidade da consulta deve ser equivalente à leitura de dados do Cloud Storage.
- Uma simulação do BigQuery de uma consulta que usa uma tabela no catálogo de tempo de execução do lakehouse pode relatar um limite inferior de 0 bytes de dados, mesmo que as linhas sejam retornadas. Isso acontece porque a quantidade de dados processados da tabela não pode ser determinada até que a consulta completa seja executada. Executar a consulta gera um custo para o tratamento desses dados.
- Não é possível referenciar uma tabela no catálogo de ambientes de execução do Lakehouse em uma consulta de tabela curinga.
API e metadados
- Não é possível usar o método
tabledata.listpara recuperar dados de tabelas no catálogo de tempo de execução do Lakehouse. Em vez disso, salve os resultados da consulta em uma tabela do BigQuery e use o métodotabledata.listnessa tabela. - Não é possível mostrar estatísticas de armazenamento de tabelas no catálogo de tempo de execução do Lakehouse.
Cotas e limites
- As tabelas no catálogo de tempo de execução do Lakehouse no BigQuery estão sujeitas às mesmas cotas e limites que as tabelas padrão.
Diferenças com o metastore do BigLake (clássico)
As principais diferenças entre o catálogo do ambiente de execução do Lakehouse e o metastore do BigLake (clássico) incluem o seguinte:
- O catálogo de ambientes de execução do Lakehouse oferece suporte a uma integração direta com mecanismos de código aberto, como o Spark, o que ajuda a reduzir a redundância ao armazenar metadados e executar jobs. As tabelas no catálogo de ambientes de execução do Lakehouse podem ser acessadas diretamente de vários mecanismos de código aberto e do BigQuery.
- O catálogo de ambientes de execução do Lakehouse é compatível com o endpoint do catálogo REST do Apache Iceberg, mas o metastore do BigLake (clássico) não é.
A seguir
- Entenda o endpoint do catálogo REST do Apache Iceberg.