Criar uma tabela

Ao criar uma tabela do Apache Iceberg, os metadados dela são registrados em um namespace no catálogo do ambiente de execução do Lakehouse.

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 base do Cloud Storage do catálogo) anexando os identificadores de namespace e tabela.

Antes de começar

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

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

Recursos e suporte de tabelas

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

Tabelas do Iceberg compatíveis

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

Usar opções de tabela (prévia)

É 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, configure explicitamente as propriedades da tabela. Consulte Configurar opções de tabela para mais informações.

Criar uma tabela

Crie uma tabela do Iceberg.

Console

  1. No console Google Cloud , acesse Lakehouse.

    Acessar Lakehouse

  2. Selecione um catálogo ou crie um se você ainda 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.

Sua tabela aparece na página Detalhes do namespace.

Spark

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

Substitua os seguintes valores:

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

Para ativar a interoperabilidade de leitura/gravação e o gerenciamento de tabelas (prévia), adicione as propriedades à cláusula TBLPROPERTIES:

TBLPROPERTIES (
  'gcp.biglake.bigquery-dml.enabled' = true,
  'gcp.biglake.table-management.enabled' = true
)

Trino

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

Substitua os seguintes valores:

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

Para ativar a interoperabilidade de leitura/gravação e o gerenciamento de tabelas (prévia), adicione estas propriedades à cláusula WITH:

WITH (
  "gcp.biglake.bigquery-dml.enabled" = 'true',
  "gcp.biglake.table-management.enabled" = 'true'
)

gcloud

Para criar uma tabela usando gcloud, execute o comando gcloud biglake iceberg tables create.

gcloud biglake iceberg tables create \
    --project="PROJECT_ID" \
    --catalog="CATALOG_ID" \
    --namespace="NAMESPACE_NAME" \
    --create-from-file="TABLE_DEFINITION_FILE"

Substitua:

  • PROJECT_ID: o ID do projeto Google Cloud .
  • CATALOG_ID: o ID do seu catálogo.
  • NAMESPACE_NAME: o nome do namespace do catálogo.
  • TABLE_DEFINITION_FILE: o caminho para um arquivo JSON que contém a definição da tabela do Iceberg.

BigQuery

Para criar uma tabela do Apache Iceberg no catálogo de tempo de execução do Lakehouse no BigQuery, use a seguinte instrução CREATE TABLE do GoogleSQL. Quando você cria uma tabela no BigQuery, a DML do BigQuery e o gerenciamento automático de tabelas são ativados por padrão.

CREATE TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` (id int, data string);

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud
  • CATALOG_ID: o ID do catálogo de ambientes de execução do Lakehouse
  • NAMESPACE: o nome do namespace do Iceberg
  • TABLE_NAME: um nome para sua tabela Iceberg

REST

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

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 do Iceberg válido que defina o esquema da tabela, a especificação de partição e as propriedades iniciais.

Substitua:

  • PROJECT_ID: o ID do projeto Google Cloud .
  • CATALOG_ID: o ID do seu catálogo.
  • NAMESPACE_NAME: o nome do namespace do catálogo.

A seguir