Sobre o endpoint do catálogo personalizado do Apache Iceberg para BigQuery

O endpoint do catálogo personalizado do Apache Iceberg para BigQuery conecta mecanismos de consulta de código aberto, como o Apache Spark e o Apache Flink, ao catálogo do ambiente de execução do Lakehouse. Ao integrar um plug-in de catálogo personalizado (BigQueryMetastoreCatalog), esse endpoint permite gerenciar e consultar metadados de tabelas do Apache Iceberg diretamente pelo BigQuery, enquanto armazena arquivos de dados e metadados no Cloud Storage.

Como funciona o catálogo personalizado do Iceberg

O catálogo personalizado do Apache Iceberg usa uma implementação de catálogo personalizada (org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog) fornecida em uma biblioteca JAR. Quando as cargas de trabalho de computação são executadas no Serviço Gerenciado para Apache Spark, o mecanismo usa esse plug-in para interagir com o BigQuery como o armazenamento de metadados das tabelas do Apache Iceberg.

O fluxo de trabalho funciona da seguinte maneira:

  1. Implementação do catálogo:os mecanismos de consulta carregam o JAR do catálogo do BigQuery Metastore e configuram as propriedades do catálogo de sessões do Spark para usar org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog.
  2. Gerenciamento de metadados:quando você cria ou modifica tabelas usando as APIs Spark SQL ou DataFrame, o plug-in armazena as definições de conjunto de dados e tabela no BigQuery.
  3. Armazenamento de dados:os arquivos de metadados do Apache Iceberg (metadata.json, listas de manifestos, manifestos) e os arquivos de dados (como arquivos Parquet) são armazenados diretamente no caminho do warehouse do Cloud Storage especificado.
  4. Acesso entre mecanismos:como os metadados são registrados no BigQuery, é possível consultar tabelas de mecanismos de código aberto, como o Spark, e diretamente do BigQuery.

Hierarquia de recursos

O endpoint do catálogo personalizado do Apache Iceberg para BigQuery organiza os metadados na seguinte hierarquia:

Recurso Descrição
Projeto O projeto do Google Cloud que contém os recursos do BigQuery e o armazenamento do Cloud Storage.
Namespace (conjunto de dados) Um conjunto de dados do BigQuery configurado para atuar como um namespace do Iceberg, definindo o local padrão do Cloud Storage para as tabelas criadas nele.
Tabela Uma tabela do Apache Iceberg com esquema, snapshots e ponteiros de metadados rastreados no BigQuery e arquivos de dados que residem no Cloud Storage.

Comparar catálogos personalizados do Iceberg e catálogos REST do Iceberg

A tabela a seguir resume as principais diferenças entre o endpoint do catálogo personalizado do Apache Iceberg para o BigQuery e o endpoint do catálogo REST do Apache Iceberg:

Recurso Catálogo personalizado do Iceberg para o BigQuery Endpoint do catálogo REST do Apache Iceberg (recomendado)
Padrão da API Catalog Plug-in personalizado (BigQueryMetastoreCatalog) API REST do catálogo do Apache Iceberg de padrão aberto
Hierarquia do catálogo Projeto > Conjunto de dados do BigQuery > Tabela Projeto > Catálogo > Namespace > Tabela (P.C.N.T)
Configuração de armazenamento Caminhos do Cloud Storage especificados por conjunto de dados ou tabela Catálogos de vários buckets ou de bucket único
Fornecimento de credenciais Não compatível (usa credenciais diretas do IAM) Compatível (vende tokens de acesso de armazenamento de curta duração)
Recuperação de desastres Sem suporte Compatível (replicação e failover entre regiões)
Recomendado para Implantações e fluxos de trabalho atuais Novas cargas de trabalho e integrações padrão de clientes REST do Iceberg

A seguir