Criar e consultar uma tabela do Iceberg no Lakehouse usando o console Google Cloud
Neste guia de início rápido, você vai usar o console Google Cloud para aprender como o Lakehouse sem fronteiras permite gerenciar e compartilhar tabelas do Apache Iceberg em Google Cloud e mecanismos de código aberto armazenando metadados da tabela, incluindo esquemas, snapshots e locais de armazenamento, no catálogo de ambientes de execução do Lakehouse.
Para concluir este guia de início rápido, siga estas etapas no console Google Cloud :
- Crie um bucket do Cloud Storage: crie um bucket no Cloud Storage para armazenar os dados da tabela do Iceberg e os arquivos de metadados.
- Criar um catálogo: crie um catálogo de vários buckets no catálogo de tempo de execução do Lakehouse com suporte do seu bucket e com a venda de credenciais ativada.
- Criar um namespace e uma tabela do Iceberg: use a página Lakehouse no console Google Cloud para criar um namespace e uma tabela do Iceberg com a linguagem de manipulação de dados (DML) do BigQuery ativada.
- Modificar dados e consultar a tabela no BigQuery: use instruções DML do BigQuery (
INSERT,UPDATEeDELETE) para modificar linhas na tabela do Iceberg e consultar os resultados usando a sintaxe de 4 partes P.C.N.T (Project.Catalog.Namespace.Table), sem necessidade de ETL ou registro manual de tabelas.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Cloud Storage, and BigQuery APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Make sure that you have the following role or roles on the project: BigLake Admin (
roles/biglake.admin), Storage Admin (roles/storage.admin), and BigQuery Job User (roles/bigquery.jobUser)Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
- Click Grant access.
-
In the New principals field, enter your user identifier. This is typically the email address for a Google Account.
- Click Select a role, then search for the role.
- To grant additional roles, click Add another role and add each additional role.
- Click Save.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Cloud Storage, and BigQuery APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Make sure that you have the following role or roles on the project: BigLake Admin (
roles/biglake.admin), Storage Admin (roles/storage.admin), and BigQuery Job User (roles/bigquery.jobUser)Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
- Click Grant access.
-
In the New principals field, enter your user identifier. This is typically the email address for a Google Account.
- Click Select a role, then search for the role.
- To grant additional roles, click Add another role and add each additional role.
- Click Save.
-
Criar um bucket do Cloud Storage
Crie um bucket do Cloud Storage no console Google Cloud para armazenar os dados da tabela do Iceberg e os arquivos de metadados:
No console do Google Cloud , acesse a página Buckets do Cloud Storage.
Clique em Criar.
Na seção Começar, insira um nome de bucket globalmente exclusivo (por exemplo,
lakehouse-quickstart-UNIQUE_IDouPROJECT_ID-lakehouse) e clique em Continuar.Na seção Escolha onde armazenar seus dados, deixe Tipo de local definido como Multirregião (us (várias regiões nos Estados Unidos)) e clique em Criar.
Se a caixa de diálogo O acesso público será bloqueado aparecer, clique em Confirmar.
Criar um catálogo no catálogo de ambientes de execução do Lakehouse
Crie um catálogo de vários buckets no catálogo do ambiente de execução do Lakehouse para suas tabelas do Apache Iceberg. Com um catálogo de vários buckets, é possível nomear o catálogo de forma independente de qualquer nome de bucket e associar vários buckets do Cloud Storage a um único catálogo. Para proteger o acesso a esses buckets, ative o modo de venda de credenciais para que o catálogo possa emitir automaticamente credenciais de armazenamento temporárias diretamente para seus mecanismos de cliente.
No console do Google Cloud , acesse a página Lakehouse.
Clique em Criar catálogo e selecione Catálogo de tempo de execução do Lakehouse.
Na seção Detalhes do catálogo, configure o seguinte:
- Tipo de catálogo: selecione Catálogo REST do Iceberg.
- Opções de bucket do catálogo do Lakehouse: selecione Catálogo de vários buckets.
- Caminho padrão do Cloud Storage do catálogo: clique em Procurar, selecione o bucket que você criou e clique em Selecionar.
- ID do catálogo: insira
quickstart_catalog. - Local principal: selecione Multirregião e EUA (várias regiões nos Estados Unidos).
Clique em Continuar e, na seção Caminhos de dados, clique em Continuar.
Na seção Método de autenticação, selecione Modo de venda de credenciais.
Com a venda de credenciais, o catálogo emite com segurança tokens de armazenamento temporários e no escopo da tabela para mecanismos clientes e o BigQuery. Assim, os mecanismos externos não precisam de permissões diretas do IAM no seu bucket.
Clique em Criar.
Seu catálogo é criado e a página Detalhes do catálogo é aberta.
Em Método de autenticação, clique em Definir permissões do bucket e, na caixa de diálogo, clique em Confirmar.
Essa etapa concede à conta de serviço do catálogo as permissões necessárias no bucket do Cloud Storage para fornecer credenciais temporárias.
Criar um namespace e uma tabela do Iceberg
Agora que você tem um catálogo, use a página Lakehouse no consoleGoogle Cloud para criar um namespace e uma tabela do Iceberg.
Criar um namespace
Na página Detalhes do catálogo de
quickstart_catalog, clique em Criar namespace.No campo Nome do namespace, insira
quickstart_namespace.Deixe Localização definido como o caminho padrão do Cloud Storage que é preenchido automaticamente no campo.
Clique em Criar.
Criar uma tabela do Iceberg
Na página Detalhes do catálogo, clique em
quickstart_namespace.A página Detalhes do namespace é aberta.
Clique em Criar tabela.
No painel Criar tabela, defina as seguintes configurações:
- Formato da tabela: verifique se Iceberg está selecionado.
- Nome da tabela: insira
quickstart_table. - Local: deixe o caminho padrão do Cloud Storage.
Em Esquema, clique em Adicionar campo duas vezes para adicionar duas colunas à tabela:
- No primeiro campo, insira
idno campo Nome do campo e selecione INTEGER no menu Tipo. - No segundo campo, insira
nameno campo Nome do campo e selecione STRING no menu Tipo.
- No primeiro campo, insira
Em Propriedades, encontre a propriedade predefinida
gcp.biglake.bigquery-dml.enablede mude o Valor defalseparatrue. Deixegcp.biglake.table-management.enableddefinido comofalse.Definir
gcp.biglake.bigquery-dml.enabledcomotruepermite modificar dados na tabela do Iceberg usando instruções DML do BigQuery, comoINSERT,UPDATE,DELETEeMERGE. Para mais informações, consulte Configurar opções de tabela.Clique em Criar.
A nova tabela do Iceberg (
quickstart_table) aparece na página Detalhes do namespace, e o catálogo de ambiente de execução do lakehouse grava o arquivo inicial de metadados do Iceberg no bucket do Cloud Storage.
Modificar dados e consultar a tabela no BigQuery
Com o quickstart_table criado e a DML do BigQuery ativada, é possível inserir, atualizar, excluir e consultar linhas diretamente no BigQuery usando a sintaxe de 4 partes P.C.N.T (Project.Catalog.Namespace.Table). Em cada
instrução, substitua PROJECT_ID pelo
ID do projetoGoogle Cloud :
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, clique em Consulta SQL.
Insira três linhas de dados de amostra:
INSERT INTO `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table` (id, name) VALUES (1, 'one'), (2, 'two'), (3, 'three');
Clique em Executar. Quando a instrução
INSERTé concluída, o BigQuery grava os arquivos de dados Parquet no bucket do Cloud Storage e confirma um novo snapshot do Iceberg no catálogo de tempo de execução do Lakehouse.Modifique uma linha na tabela:
UPDATE `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table` SET name = 'updated' WHERE id = 1;
Clique em Executar.
Exclua uma linha da tabela:
DELETE FROM `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table` WHERE id = 3;
Clique em Executar.
Consulte a tabela para verificar as mudanças:
SELECT * FROM `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table` ORDER BY id;
Clique em Executar. O painel Resultados da consulta mostra as duas linhas restantes, incluindo o valor atualizado de
id = 1:+----+---------+ | id | name | +----+---------+ | 1 | updated | | 2 | two | +----+---------+
Como o catálogo de ambientes de execução do Lakehouse gerencia os metadados do Iceberg e a venda de credenciais está ativada, você também pode ler ou gravar em quickstart_table usando qualquer mecanismo de código aberto compatível com o Iceberg, como Apache Spark, Trino ou Apache Flink, sem conceder acesso direto do IAM ao seu bucket.
Limpar
Para evitar cobranças desnecessárias na sua conta do Google Cloud , exclua os recursos criados neste guia de início rápido. Excluir a tabela, o namespace e o catálogo remove o registro de metadados do catálogo de ambiente de execução do lakehouse. Já excluir o bucket remove os dados do Parquet e os arquivos de metadados do Iceberg armazenados no Cloud Storage:
No console do Google Cloud , acesse a página Lakehouse.
Exclua a tabela do catálogo:
- Clique em
quickstart_cataloge emquickstart_namespace. - Na tabela Detalhes do namespace, na linha de
quickstart_table, clique em Mais > Excluir. - Digite
DELETEpara confirmar e clique em Excluir.
- Clique em
Exclua o namespace do seu catálogo:
- Volte para a página Detalhes do catálogo de
quickstart_catalog. - Na linha de
quickstart_namespace, clique em Mais ações de namespace > Excluir. - Digite
DELETEpara confirmar e clique em Excluir.
- Volte para a página Detalhes do catálogo de
Exclua seu catálogo:
- Volte para a página Lakehouse.
- Na linha de
quickstart_catalog, clique em Mais ações do catálogo > Excluir. - Digite
DELETEpara confirmar e clique em Excluir.
Exclua o bucket do Cloud Storage e todo o conteúdo dele:
Acesse a página Buckets do Cloud Storage:
Marque a caixa de seleção ao lado do bucket que você criou para este guia de início rápido e clique em Excluir.
Digite
DELETEpara confirmar e clique em Excluir.
A seguir
- Confira o Guia de início rápido para criar e consultar uma tabela do Iceberg usando a Google Cloud CLI.
- Saiba como modificar dados com instruções DML do BigQuery e configurar opções de tabela.
- Faça o codelab de configuração do acesso aos dados entre nuvens para consultar dados no Amazon Web Services (AWS), no AlloyDB para PostgreSQL e no Cloud Storage sem ETL.
- Saiba mais sobre catálogos de vários buckets e o endpoint do catálogo REST do Apache Iceberg.
- Saiba como gerenciar catálogos no catálogo de ambientes de execução do Lakehouse.
- Saiba mais sobre as tabelas do Apache Iceberg gerenciadas pelo Lakehouse.