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.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
-
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 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
- 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 personalizados papéis ou outros predefinidos papéis.
Criar uma tabela
Crie uma tabela do Iceberg.
Console
No Google Cloud console, acesse Lakehouse.
Selecione um catálogo atual 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.
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 namespaceTABLE_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, 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
- Saiba como listar tabelas.
- Saiba como inserir dados em uma tabela.