Consultar uma tabela

A consulta de uma tabela lê dados dos arquivos do Cloud Storage usando os metadados gerenciados pelo catálogo de ambiente de execução do Lakehouse.

É possível executar consultas de mecanismos de código aberto, como Spark e Trino, ou diretamente do BigQuery usando uma sintaxe de nome de tabela de quatro partes (sintaxe P.C.N.T).

Antes de começar

  1. Verifique se o faturamento está ativado para o Google Cloud projeto.

  2. Ative a API BigLake.

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar a API

  3. Configure o catálogo de ambiente de execução do Lakehouse com o endpoint do catálogo REST do Apache Iceberg.

Funções exigidas

Para ter as permissões necessárias para consultar uma tabela, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto e no bucket de armazenamento:

  • Ler dados da tabela no modo de fornecimento de credenciais: Leitor do BigLake (roles/biglake.viewer) - o projeto
  • Ler dados da tabela no modo de não fornecimento de credenciais:
    • Leitor do BigLake (roles/biglake.viewer) - o projeto
    • Leitor de objetos do Storage (roles/storage.objectViewer) - o bucket do Cloud Storage

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Recursos e suporte da tabela

Ao usar tabelas no catálogo de ambiente de execução do Lakehouse, é útil entender os diferentes tipos de tabela e os recursos de ativação de recursos. Para saber mais sobre o uso de tabelas do Apache Iceberg, consulte Visão geral das tabelas do Apache Iceberg.

Tabelas do Iceberg com suporte

Somente as tabelas do Apache Iceberg V2 (GA) e V3 (pré-lançamento) são compatíveis. As tabelas do Iceberg V1 não são compatíveis. Para fazer upgrade das tabelas V1 atuais, consulte Fazer upgrade das tabelas do Iceberg V1 para V2.

Usar opções de tabela (pré-lançamento)

É possível ativar o uso de recursos gerenciados do BigQuery, como a linguagem de manipulação de dados (DML) do BigQuery e o gerenciamento automático de tabelas, configurando propriedades específicas da tabela. Esses recursos são ativados de maneiras diferentes, dependendo de onde a tabela é criada:

  • No BigQuery:a DML do BigQuery e o gerenciamento automático de tabelas são ativados por padrão.
  • De mecanismos de código aberto:para ativar, é necessário configurar explicitamente as propriedades da tabela. Consulte Configurar opções de tabela para mais informações.

Ao consultar tabelas do BigQuery, é possível acessar tabelas padrão do Iceberg e tabelas ativadas para recursos gerenciados do BigQuery. Consulte Configurar opções de tabela para instruções detalhadas.

Consultar uma tabela

Selecione todos os dados da tabela:

Spark

spark.sql("SELECT * FROM TABLE_NAME;").show()

Trino

SELECT * FROM TABLE_NAME;

BigQuery

Para consultar tabelas do Apache Iceberg no catálogo de ambiente de execução do Lakehouse no BigQuery, use o nome da tabela de quatro partes na consulta com o seguinte formato: PROJECT_NAME.CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME.

SELECT * FROM `PROJECT_NAME.CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME`;

Substitua os seguintes valores:

  • PROJECT_NAME: o Google Cloud projeto que é proprietário do catálogo no catálogo de ambiente de execução do Lakehouse. O projeto selecionado no console é cobrado pela consulta. Google Cloud Google Cloud

  • CATALOG_ID: o ID do catálogo de ambiente de execução do Lakehouse especificado quando o catálogo foi criado. Esse identificador é usado como o nome do catálogo nas consultas do BigQuery.

    Esse identificador também é o nome do bucket do Cloud Storage.

    Por exemplo, se você criou o bucket para armazenar o catálogo e o nomeou como iceberg-bucket, o nome do catálogo e do bucket serão iceberg-bucket. Isso será usado mais tarde ao consultar o catálogo no BigQuery, usando a sintaxe P.C.N.T. Por exemplo, my-project.catalog_id.quickstart_namespace.quickstart_table.

  • NAMESPACE_OR_SCHEMA_NAME: o namespace da tabela, se estiver usando o Spark, ou o nome do esquema da tabela, se estiver usando o Trino.

  • TABLE_NAME: o nome da tabela.

Consultar usando a viagem no tempo

É possível consultar dados históricos das tabelas do Lakehouse Iceberg usando a viagem no tempo. É possível viajar no tempo do BigQuery usando a cláusula FOR SYSTEM_TIME AS OF ou de mecanismos de código aberto, como o Spark, usando IDs de snapshot, carimbos de data/hora, tags ou ramificações.

Consultar por carimbo de data/hora

Para consultar dados a partir de um carimbo de data/hora específico:

Spark

SELECT * FROM NAMESPACE.TABLE_NAME TIMESTAMP AS OF '2026-02-26 01:21:00';

BigQuery

SELECT * FROM `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` FOR SYSTEM_TIME AS OF '2026-02-26 01:21:00';

Consultar por ID de snapshot

Para consultar dados a partir de um ID de snapshot específico:

Spark

SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 10963874102873;

Consultar por tag

Para criar uma tag e consultar dados a partir dela:

Spark

-- Create tag 'historical-snapshot'
ALTER TABLE NAMESPACE.TABLE_NAME CREATE TAG 'historical-snapshot' AS OF VERSION 123456789012345;

-- Query by tag
SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 'historical-snapshot';

Consultar por ramificação

Para criar uma ramificação e consultar dados a partir dela:

Spark

-- Create branch 'audit-branch'
ALTER TABLE NAMESPACE.TABLE_NAME CREATE BRANCH 'audit-branch' AS OF VERSION 123456789012345;

-- Query by branch
SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 'audit-branch';

A seguir