A atualização de um catálogo (como um catálogo REST do Apache Iceberg) permite modificar as propriedades dele, como o modo de credencial, o local padrão do data warehouse ou o tipo de catálogo subjacente.
Por exemplo, é possível fazer upgrade de um catálogo de bucket único para um catálogo de vários buckets (recomendado). O upgrade do catálogo oferece benefícios significativos, como permitir que ele abranja vários buckets de armazenamento.
Antes de começar
- Leia Sobre o catálogo de ambientes de execução do Lakehouse para entender como ele funciona e as limitações do serviço.
- 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. - 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.
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
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API.
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.
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
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API.
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.
Funções exigidas
Para receber as permissões necessárias para atualizar um catálogo, peça ao administrador para conceder a você as seguintes funções do IAM:
-
Todas:
- Administrador do BigLake (
roles/biglake.admin) no seu projeto - Administrador do Storage (
roles/storage.admin) no seu projeto
- 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 com papéis personalizados ou outros papéis predefinidos.
Atualizar um catálogo
É possível atualizar um catálogo usando o Google Cloud console, gcloud, ou a
API REST.
Console
No Google Cloud console, abra a página Lakehouse.
Na linha do catálogo que você quer atualizar, clique em Mais ações do catálogo > Editar.
Em Configuração do catálogo, modifique as configurações que você quer atualizar.
Selecione Salvar.
gcloud
Opção 1: atualizar as propriedades do catálogo
Para atualizar as propriedades do catálogo (como descrição ou locais restritos),
execute o comando gcloud beta biglake iceberg catalogs update:
gcloud beta biglake iceberg catalogs update CATALOG_ID \ --project="PROJECT_ID" \ [--description="DESCRIPTION"] \ [--credential-mode="CREDENTIAL_MODE"] \ [--restricted-locations="RESTRICTED_LOCATIONS"]
Substitua:
CATALOG_ID: o ID do catálogo de ambientes de execução do Lakehouse.PROJECT_ID: o ID do Google Cloud projeto.DESCRIPTION: (opcional) uma descrição do catálogo.CREDENTIAL_MODE: (opcional) o método de autenticação. Useend-userpara Credenciais de usuário final ouvended-credentialspara Modo de venda de credenciais.RESTRICTED_LOCATIONS: (opcional) uma lista separada por vírgulas de buckets ou caminhos de armazenamento permitidos adicionais. Aviso: se você especificar vários caminhos ou buckets sobrepostos, isso poderá levar a conflitos de metadados, substituições acidentais de dados ou problemas de segurança, como vazamento de permissões.
Opção 2: fazer upgrade de um catálogo de bucket único para um catálogo de vários buckets (recomendado)
Para fazer upgrade de um catálogo de bucket único para um
catálogo de vários buckets (recomendado), execute o comando gcloud beta biglake iceberg catalogs update
e defina o parâmetro --catalog-type como biglake:
gcloud beta biglake iceberg catalogs update CATALOG_ID \ --project="PROJECT_ID" \ --catalog-type="biglake"
REST
Opção 1: atualizar as propriedades do catálogo
Para modificar as propriedades de um catálogo (como a descrição) usando a API REST, faça uma solicitação PATCH para o endpoint UpdateIcebergCatalog com o updateMask apropriado:
PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.description
O corpo da solicitação precisa conter um payload JSON IcebergCatalog com os campos a serem atualizados:
{
"description": "Updated catalog description"
}
Opção 2: fazer upgrade de um catálogo de bucket único para um catálogo de vários buckets (recomendado)
Para fazer upgrade do tipo usando a API REST, faça uma PATCH solicitação
para o endpoint UpdateIcebergCatalog com o catalogType no updateMask:
PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.catalogType
O corpo da solicitação precisa conter um payload JSON IcebergCatalog com o novo tipo de catálogo:
{
"catalogType": "BIGLAKE"
}
Substitua:
PROJECT_ID: o ID do Google Cloud projeto.CATALOG_ID: o ID do catálogo de ambientes de execução do Lakehouse.
Observação: depois de fazer upgrade para um catálogo de vários buckets, atualize as configurações do mecanismo de consulta do cliente (como Spark ou Trino) para especificar o caminho do data warehouse usando o formato bl://:bl://projects/PROJECT_ID/catalogs/CATALOG_ID.