Uma arquitetura de lakehouse sem fronteiras permite unificar a análise de dados em ambientes distribuídos e sistemas de armazenamento de formato aberto no Google Cloud. Entender esses conceitos básicos ajuda você a avaliar arquiteturas e configurar catálogos unificados, computação multimotor e governança nas cargas de trabalho do Lakehouse.
Em vez de fornecer uma lista exaustiva de recursos, esta referência descreve a terminologia principal usada em toda a documentação do Lakehouse.
Conceitos básicos
Os conceitos a seguir formam a base da arquitetura de lakehouse do Google Cloud.
Data lakehouse
Um data lakehouse reúne a economia de custos e a flexibilidade de um data lake com o gerenciamento de dados e o desempenho de um data warehouse. Ele permite armazenar dados em formatos abertos no Cloud Storage e usar recursos do BigQuery, como controles de segurança precisos e consultas rápidas.
Arquitetura medallion
Um padrão de design comum em um data lakehouse é a arquitetura medallion, que organiza os dados de forma lógica em camadas progressivas de estrutura e qualidade:
- Camada bronze (bruta): ingere e armazena dados brutos em formatos abertos, como o Apache Iceberg no Cloud Storage.
- Camada prata (limpa): limpa, filtra e enriquece os dados brutos em tabelas padronizadas.
- Camada ouro (selecionada): fornece tabelas totalmente selecionadas e agregadas no nível empresarial. No Lakehouse do Google Cloud, o BigQuery costuma ser usado para disponibilizar a camada ouro para consumo, relatórios e análises de alto desempenho.
Interoperabilidade aberta
A interoperabilidade aberta é a capacidade de vários sistemas analíticos e transacionais, como BigQuery, Apache Spark e Apache Flink, operarem em uma única cópia de dados em formatos abertos, como o Apache Iceberg. Isso elimina a necessidade de duplicação de dados e garante uma visualização consistente dos dados em ferramentas diferentes.
Catálogo do ambiente de execução do Lakehouse
O catálogo do ambiente de execução do Lakehouse é um serviço de metadados centralizado e sem servidor que atua como a única fonte de verdade para o Lakehouse do Google Cloud. Ele permite que vários mecanismos, como Apache Spark, Apache Flink e BigQuery, descubram e consultem as mesmas tabelas simultaneamente.
Tipos de catálogo
O catálogo do ambiente de execução do Lakehouse oferece diferentes tipos de catálogos para gerenciar seus metadados.
Endpoint do catálogo REST do Apache Iceberg
Este é um catálogo baseado no endpoint do catálogo REST do Apache Iceberg. Ele oferece interoperabilidade entre mecanismos de código aberto e o BigQuery, além de oferecer suporte a recursos como venda de credenciais e recuperação de desastres.
Configurações de armazenamento do catálogo
Ao criar um endpoint de catálogo REST do Apache Iceberg, é possível escolher entre dois modelos de armazenamento:
- Catálogo de vários buckets (recomendado): permite nomear o catálogo
de forma independente e configurar um local de armazenamento padrão (
default_location) e até 128 buckets ou subcaminhos adicionais do Cloud Storage emrestricted_locations. Ao configurar mecanismos de consulta do cliente (como Spark ou Trino), defina o caminho do warehouse comobl://projects/PROJECT_ID/catalogs/CATALOG_ID. - Catálogo de bucket único:uma configuração legada em que o catálogo é
bloqueado para um único bucket do Cloud Storage e herda o nome do bucket.
Ao configurar mecanismos de consulta do cliente, defina o caminho do warehouse como
gs://CLOUD_STORAGE_BUCKET_NAME.
Catálogo personalizado do Apache Iceberg para o BigQuery
Essa é uma integração que usa o catálogo do BigQuery diretamente como o serviço de metadados de apoio para tabelas gerenciadas do Apache Iceberg.
Endpoint do catálogo do Apache Hive
Esse endpoint oferece compatibilidade com cargas de trabalho de código aberto que dependem da interface do metastore do Apache Hive (HMS), permitindo que você execute cargas de trabalho do Apache Hive ou do Spark em um serviço de metastore totalmente gerenciado no Google Cloud.
Tipos de tabela
O Lakehouse do Google Cloud é compatível com vários formatos de tabela, dependendo do mecanismo usado para gerenciar os dados e do endpoint de catálogo que você está usando.
Tabelas do Apache Iceberg
São tabelas do Apache Iceberg que você cria usando mecanismos de código aberto e armazena no Cloud Storage. O catálogo do ambiente de execução do Lakehouse gerencia essas tabelas e fornece acesso a elas por meio do endpoint do catálogo REST do Apache Iceberg. Os mecanismos de código aberto têm acesso de leitura e gravação a essas tabelas, enquanto o BigQuery tem acesso de leitura e gravação (pré-lançamento). Essa opção é ideal se você quiser que seu fluxo de trabalho de ETL seja gerenciado por mecanismos de código aberto.
Tabelas do BigQuery
Essas tabelas são gerenciadas com o BigQuery.
Tabelas do Apache Iceberg
São tabelas do Apache Iceberg que você cria no BigQuery e armazena no Cloud Storage. O BigQuery lida com todo o layout e a otimização de dados. Embora essas tabelas possam ser lidas por vários mecanismos, o BigQuery é o único que pode gravar diretamente nelas.
Tabelas nativas
Essas tabelas são gerenciadas pelo BigQuery e armazenam dados no armazenamento do BigQuery. É possível conectar essas tabelas ao catálogo do ambiente de execução do Lakehouse.
Tabelas externas
As tabelas externas ficam fora do catálogo do ambiente de execução do Lakehouse. Os dados e metadados são autogerenciados em um catálogo de terceiros (como Cloud Storage, S3 ou Armazenamento de Blobs do Azure). O BigQuery só pode ler essas tabelas.
Recursos de tabela
Evolução da tabela
O Lakehouse do Google Cloud é compatível com a evolução de tabelas do Apache Iceberg, que permite mudar o esquema ou a especificação de partição de uma tabela ao longo do tempo sem reescrever os dados ou recriar a tabela.
Viagem no tempo
A viagem no tempo permite consultar os dados de uma tabela como eles existiam em um momento específico ou ID de snapshot. Isso é útil para auditoria, reprodução de experimentos ou restauração de dados após uma exclusão acidental.
Armazenamento em cache de metadados
O armazenamento em cache de metadados é um recurso que acelera o desempenho de consultas em tabelas externas. Ele armazena uma cópia dos metadados da tabela no armazenamento do BigQuery, reduzindo a necessidade de ler arquivos de metadados do Cloud Storage durante a execução da consulta.
Gerenciamento de tabelas do Lakehouse do Google Cloud
O gerenciamento de tabelas do Lakehouse do Google Cloud simplifica a manutenção do Lakehouse automatizando tarefas como compactação e coleta de lixo para tabelas gerenciadas. Isso garante o desempenho ideal das consultas e a eficiência do armazenamento.
Conceitos de interoperabilidade
Acesso a dados entre nuvens
O acesso a dados entre nuvens no Lakehouse sem fronteiras permite que você se conecte a catálogos externos remotos (como Databricks Unity Catalog, AWS Glue, Snowflake Horizon Catalog, Workday Data Lake ou SAP BDC). Ele sincroniza metadados de outros provedores de nuvem, permitindo que você consulte dados com o BigQuery ou mecanismos de código aberto externos pelo endpoint do catálogo REST do Apache Iceberg, sem migrar os dados.
Conjuntos de dados públicos
O Lakehouse sem fronteiras hospeda conjuntos de dados públicos de alta qualidade disponibilizados pelo endpoint do catálogo REST do Apache Iceberg, oferecendo acesso somente leitura para exploração e teste sem gerenciar a infraestrutura.
Estrutura de nomenclatura P.C.N.T.
A estrutura de nomenclatura P.C.N.T. é a convenção de quatro partes usada para identificar e consultar tabelas de forma exclusiva no catálogo do ambiente de execução do Lakehouse no BigQuery. Significa Project.Catalog.Namespace.Table:
- Projeto: o ID do projeto do Google Cloud .
- Catálogo: o nome do catálogo do ambiente de execução do Lakehouse.
- Namespace: o agrupamento lógico de tabelas (semelhante a um conjunto de dados).
- Tabela: o nome da tabela de dados.
Conceitos de segurança
Conexões
Uma conexão é um recurso do BigQuery que armazena credenciais para acessar dados externos. No Lakehouse do Google Cloud, as conexões delegam acesso ao Cloud Storage permitindo que a conta de serviço da conexão acesse o bucket de armazenamento em seu nome.
Fornecimento de credenciais
A distribuição de credenciais é um mecanismo de segurança que ajuda a reforçar o controle de acesso ao usar o catálogo do ambiente de execução do Lakehouse. Quando ativado, o serviço gera credenciais de curta duração e escopo reduzido, projetadas para conceder acesso apenas aos caminhos de arquivo específicos necessários para uma consulta.
Governança unificada
A governança unificada permite definir e aplicar políticas de segurança e gerenciamento de dados de forma centralizada por meio da integração com o Knowledge Catalog. Quando você registra tabelas no catálogo do ambiente de execução do Lakehouse, o sistema registra automaticamente as entradas correspondentes no catálogo de metadados de negócios (Knowledge Catalog), permitindo a linhagem de dados, a pesquisa semântica e a governança central em todos os mecanismos sem mover ou copiar arquivos.
Conceitos do mecanismo de consulta
O Lakehouse do Google Cloud separa o armazenamento da computação, permitindo que vários mecanismos de análise interajam com tabelas abertas.
Serviço Gerenciado para Apache Spark
O Serviço Gerenciado para Apache Spark (antigo Dataproc sem servidor) oferece um ambiente de execução totalmente gerenciado para processar formatos de tabela abertos, como o Apache Iceberg. Ele é compatível com dois modos principais de execução:
- Lotes sem servidor: projetados para pipelines de processamento de dados automatizados e não interativos e cargas de trabalho de ETL. Esse modelo de pagamento por execução elimina o gerenciamento de clusters, remove a contenção de recursos entre jobs e automatiza a manutenção da infraestrutura.
- Sessões interativas sem servidor: projetadas para análise exploratória de dados, engenharia de dados e experimentação de ciência de dados. As sessões interativas alimentam os notebooks do Apache Spark usando o Spark Connect ou kernels remotos do Spark, fornecendo um ambiente de escalonamento automático sem configuração de infraestrutura.
Níveis de serviço
Ao executar cargas de trabalho do Apache Spark no catálogo do ambiente de execução do Lakehouse, é possível selecionar entre diferentes níveis de serviço:
- Nível Standard: o nível de execução padrão adequado para cargas de trabalho de processamento em lote padrão.
- Nível Premium: oferece recursos avançados, incluindo suporte para sessões de notebook interativas sem servidor e recursos de aceleração de desempenho, como o Lightning Engine.
Modelos de sessão
Os modelos de sessão simplificam a configuração de sessões interativas sem servidor.
Eles permitem que os administradores definam e persistam configurações de ambiente comuns
(como propriedades de catálogo, configurações de rede e versões de ambiente de execução). Isso
promove a consistência e melhora a produtividade do desenvolvedor, minimizando a configuração
repetida. Os modelos de sessão podem ser criados e gerenciados usando o
console doGoogle Cloud , a CLI do gcloud, a API REST ou o Terraform.
Conceitos de confiabilidade
Replicação entre regiões
A replicação entre regiões replica metadados em várias regiões para garantir a disponibilidade do catálogo durante interrupções regionais.
Failover
O failover é o processo de alternar entre as regiões primária e secundária durante uma interrupção regional para manter as operações do catálogo.