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 no nível da tabela durante a criação da tabela, o sistema vai construir automaticamente os metadados e 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 ambientes de execução do Lakehouse implementa a especificação da API de catálogo 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.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
-
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ãoserviceusage.services.enable. Saiba como conceder papéis.
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
- Administrador do BigLake (
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.
Criar uma tabela
Crie uma tabela do Iceberg.
Console
No console Google Cloud , acesse Lakehouse.
Selecione um catálogo ou crie um se você não tiver.
Na barra de menus, clique em + Criar tabela.
Em Formato da tabela, selecione Iceberg.
Em Nome da tabela, insira um nome exclusivo.
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;")
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 esquemaTABLE_NAME: um nome para a tabela
Se você usar a federação de catálogos do BigQuery com o Trino, não será possível 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 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 catálogo do ambiente de execução do Lakehouse.NAMESPACE_NAME: o nome do namespace do catálogo.
A seguir
- Saiba como listar tabelas.
- Saiba como inserir dados em uma tabela.