Criar uma tabela

A criação de uma tabela do Apache Iceberg registra os metadados da tabela em um namespace no catálogo de ambiente de execução do Lakehouse.

Formatos de tabela aceitos

Somente as tabelas do Apache Iceberg V2 são aceitas. As tabelas do Iceberg V1 não são aceitas. Se você tiver tabelas do Iceberg V1, faça upgrade para a V2 (por exemplo, executando ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2'); ou usando operações de mecanismo semelhantes) antes de registrar ou usar.

Se você não especificar um local de armazenamento explícito no namespace ou na tabela durante a criação da tabela, o sistema vai construir automaticamente os metadados e os diretórios de dados da tabela no local padrão do catálogo (derivado do bucket do Cloud Storage base do catálogo) anexando os identificadores de namespace e tabela.

Além das integrações do mecanismo de consulta, o catálogo de ambiente de execução do Lakehouse implementa a especificação da API REST do Iceberg de código aberto (POST /v1/{prefix}/namespaces/{namespace}/tables), permitindo que clientes REST compatíveis criem tabelas diretamente.

Antes de começar

Consulte a visão geral da tabela para entender os diferentes tipos de tabelas e as implicações do uso delas.

  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

Funções exigidas

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

  • Todos:
    • Administrador do BigLake (roles/biglake.admin) – seu projeto
    • Administrador do Storage (roles/storage.admin) – o bucket do Cloud Storage de destino

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 usando personalizados papéis ou outros predefinidos papéis.

Criar uma tabela

Crie uma tabela do Iceberg.

Console

  1. No Google Cloud console, acesse Lakehouse.

    Acessar o Lakehouse

  2. Selecione um catálogo atual ou crie um se você não tiver.

  3. Na barra de menus, clique em +Criar tabela.

  4. Em Formato da tabela, selecione Iceberg.

  5. Em Nome da tabela, insira um nome exclusivo.

  6. Clique em Criar.

A tabela aparece na página Detalhes do namespace.

Spark

spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")

spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()

Substitua os seguintes valores:

  • NAMESPACE_NAME: o nome do seu namespace
  • TABLE_NAME: um nome para a tabela

Trino

CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);

DESCRIBE SCHEMA_NAME.TABLE_NAME;

Substitua os seguintes valores:

  • SCHEMA_NAME: o nome do seu esquema
  • TABLE_NAME: um nome para a tabela

Se você usar a federação de catálogos do BigQuery com o Trino, você não poderá especificar um local para a tabela. O local padrão do esquema é sempre usado.

REST

Para criar uma tabela do Iceberg usando a API REST, faça uma POST solicitação para o CreateIcebergTable endpoint:

POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables

O corpo da solicitação precisa conter um payload JSON CreateTableRequest válido do Iceberg que define o esquema da tabela, a especificação de partição e as propriedades iniciais.

Substitua:

  • PROJECT_ID: o ID do Google Cloud projeto.
  • CATALOG_ID: o ID do catálogo de ambiente de execução do Lakehouse.
  • NAMESPACE_NAME: o nome do namespace do catálogo.

A seguir