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 :

  1. 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.
  2. 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.
  3. 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.
  4. Modificar dados e consultar a tabela no BigQuery: use instruções DML do BigQuery (INSERT, UPDATE e DELETE) 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

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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.enable permission. 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.

    Enable the APIs

  5. 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

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. 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.

    4. 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

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  6. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. Verify that billing is enabled for your Google Cloud project.

  8. 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.enable permission. 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.

    Enable the APIs

  9. 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

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. 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.

    4. 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

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. 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:

  1. No console do Google Cloud , acesse a página Buckets do Cloud Storage.

    Acessar buckets

  2. Clique em Criar.

  3. Na seção Começar, insira um nome de bucket globalmente exclusivo (por exemplo, lakehouse-quickstart-UNIQUE_ID ou PROJECT_ID-lakehouse) e clique em Continuar.

  4. 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.

  5. 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.

  1. No console do Google Cloud , acesse a página Lakehouse.

    Acessar o Lakehouse

  2. Clique em Criar catálogo e selecione Catálogo de tempo de execução do Lakehouse.

  3. 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).
  4. Clique em Continuar e, na seção Caminhos de dados, clique em Continuar.

  5. 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.

  6. Clique em Criar.

    Seu catálogo é criado e a página Detalhes do catálogo é aberta.

  7. 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

  1. Na página Detalhes do catálogo de quickstart_catalog, clique em Criar namespace.

  2. No campo Nome do namespace, insira quickstart_namespace.

  3. Deixe Localização definido como o caminho padrão do Cloud Storage que é preenchido automaticamente no campo.

  4. Clique em Criar.

Criar uma tabela do Iceberg

  1. Na página Detalhes do catálogo, clique em quickstart_namespace.

    A página Detalhes do namespace é aberta.

  2. Clique em Criar tabela.

  3. 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.
  4. Em Esquema, clique em Adicionar campo duas vezes para adicionar duas colunas à tabela:

    • No primeiro campo, insira id no campo Nome do campo e selecione INTEGER no menu Tipo.
    • No segundo campo, insira name no campo Nome do campo e selecione STRING no menu Tipo.
  5. Em Propriedades, encontre a propriedade predefinida gcp.biglake.bigquery-dml.enabled e mude o Valor de false para true. Deixe gcp.biglake.table-management.enabled definido como false.

    Definir gcp.biglake.bigquery-dml.enabled como true permite modificar dados na tabela do Iceberg usando instruções DML do BigQuery, como INSERT, UPDATE, DELETE e MERGE. Para mais informações, consulte Configurar opções de tabela.

  6. 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 :

  1. No console do Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No editor de consultas, clique em Consulta SQL.

  3. 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.

  4. Modifique uma linha na tabela:

    UPDATE `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table`
    SET name = 'updated'
    WHERE id = 1;

    Clique em Executar.

  5. Exclua uma linha da tabela:

    DELETE FROM `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table`
    WHERE id = 3;

    Clique em Executar.

  6. 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:

  1. No console do Google Cloud , acesse a página Lakehouse.

    Acessar o Lakehouse

  2. Exclua a tabela do catálogo:

    1. Clique em quickstart_catalog e em quickstart_namespace.
    2. Na tabela Detalhes do namespace, na linha de quickstart_table, clique em Mais > Excluir.
    3. Digite DELETE para confirmar e clique em Excluir.
  3. Exclua o namespace do seu catálogo:

    1. Volte para a página Detalhes do catálogo de quickstart_catalog.
    2. Na linha de quickstart_namespace, clique em Mais ações de namespace > Excluir.
    3. Digite DELETE para confirmar e clique em Excluir.
  4. Exclua seu catálogo:

    1. Volte para a página Lakehouse.
    2. Na linha de quickstart_catalog, clique em Mais ações do catálogo > Excluir.
    3. Digite DELETE para confirmar e clique em Excluir.
  5. Exclua o bucket do Cloud Storage e todo o conteúdo dele:

    1. Acesse a página Buckets do Cloud Storage:

      Acessar buckets

    2. 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.

    3. Digite DELETE para confirmar e clique em Excluir.

A seguir