Migrar metadados de catálogos de dados externos para tabelas do catálogo REST do Lakehouse para Apache Iceberg
Neste documento, mostramos como migrar metadados de catálogos de dados externos para tabelas do catálogo REST do Lakehouse para Apache Iceberg. O serviço de migração do BigQuery é compatível com a migração de metadados dos seguintes metastores externos:
- Metastore do Apache Hive
- Catálogos REST do Apache Iceberg
Limitações
- As migrações de metadados de Data Catalogs externos para tabelas do catálogo REST do Lakehouse para Apache Iceberg são uma sincronização única. Esse recurso não oferece suporte a sincronizações contínuas ou periódicas. Portanto, as gravações feitas após a migração só ficam visíveis quando você migra novamente.
- Não é possível usar namespaces aninhados.
- O catálogo REST do Iceberg só aceita arquivos de dados Parquet.
- O Lakehouse sem fronteiras não é compatível com tabelas do Apache Iceberg V3.
- As migrações de metadados de catálogos de dados externos para tabelas do catálogo REST do Lakehouse para Apache Iceberg só aceitam migrações de até 10.000 tabelas. Se a carga de trabalho exigir o processamento de mais de 10.000 tabelas, recomendamos dividi-la em várias migrações.
- As migrações de metadados de Data Catalogs externos para tabelas do catálogo REST do Lakehouse para Apache Iceberg não são compatíveis com o uso de políticas da organização para aplicar o compartilhamento restrito por domínio.
Antes de começar
Antes de migrar metadados dos seus catálogos de dados externos, siga as etapas nas seções a seguir.
Ativar APIs
Ative as APIs BigLake, BigQuery Data Transfer, BigQuery Migration, Secret Manager e Storage Transfer, se ainda não estiverem ativadas.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você
criou o projeto, provavelmente já tem essa permissão pelo
papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo
papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin).
Saiba como conceder papéis.
Um agente de serviço é criado quando você ativa a API Transferência de dados.
Configurar permissões
- O usuário ou a conta de serviço que cria a transferência precisa receber o
papel de administrador do BigQuery (
roles/bigquery.admin). Se você usar uma conta de serviço, ela será usada apenas para criar a transferência. Um agente de serviço (P4SA) é criado ao ativar a API Transferência de dados.
Para garantir que o agente de serviço tenha as permissões necessárias para executar uma transferência do Hive Metastore, peça ao administrador para conceder os seguintes papéis do IAM ao agente de serviço no projeto:
- Administrador do Storage Transfer (
roles/storagetransfer.admin) - Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer) - Administrador de armazenamento (
roles/storage.admin) -
Para migrar metadados para o catálogo do ambiente de execução do Lakehouse (catálogo REST do Iceberg ou catálogo do Hive):
Administrador do BigLake (
roles/biglake.admin)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Seu administrador também pode conceder ao agente de serviço as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
- Administrador do Storage Transfer (
Se você estiver usando uma conta de serviço, conceda ao agente de serviço o papel
roles/iam.serviceAccountTokenCreatorcom o seguinte comando:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator
Conceda ao agente de serviço do Serviço de transferência do Cloud Storage (
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com) os seguintes papéis no projeto:roles/storage.admin- Se você estiver migrando do local/HDFS, também precisará
conceder o papel
roles/storagetransfer.serviceAgent.
Também é possível configurar permissões mais granulares. Para mais informações, consulte o guia a seguir:
Papéis e permissões de usuário necessários
Para garantir que o agente de serviço tenha as permissões necessárias para criar, modificar e executar tabelas de catálogo REST do Lakehouse para a migração do Apache Iceberg, peça ao administrador para conceder os seguintes papéis do IAM ao agente de serviço no usuário:
- Usuário da conta de serviço (
roles/iam.serviceAccountUser) - Editor de gerenciamento de migração (
roles/bigquerymigration.migrationEditor)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Seu administrador também pode conceder ao agente de serviço as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Papéis e permissões necessários da conta de serviço
Para garantir que a conta de serviço fornecida pelo cliente tenha as permissões necessárias para criar, modificar e executar tabelas de catálogo REST do Lakehouse para a migração do Apache Iceberg, peça ao administrador para conceder os seguintes papéis do IAM à conta de serviço fornecida pelo cliente:
-
Acesso ao anexo de rede:
Administrador de rede do Compute (
roles/compute.networkAdmin) na conta de serviço -
Acesso ao serviço de transferência de dados do BigQuery:
Administrador do BigQuery (
roles/bigquery.admin) na conta de serviço -
Acesso aos recursos do Lakehouse:
Editor do BigLake (
roles/biglake.editor) na conta de serviço -
Acesso a secrets:
Acessador de secrets do Secret Manager (
roles/secretmanager.secretAccessor) no secret fornecido pelo cliente
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
O administrador também pode conceder à conta de serviço fornecida pelo cliente as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Também é necessário criar uma identidade de serviço para o BigQuery Migration Service e conceder a ela o papel roles/iam.serviceAccountTokenCreator.
Para criar a identidade de serviço, execute o seguinte comando:
gcloud beta services identity create --service=bigquerymigration.googleapis.com --project=PROJECT_ID
Para conceder o papel ao agente de serviço, execute o seguinte comando:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bqms.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
Substitua:
SERVICE_ACCOUNT: o ID da conta de serviço fornecida pelo cliente.PROJECT_ID: o ID do projeto;PROJECT_NUMBER: o número do projeto.
Configurar secret
Se você estiver migrando para um catálogo REST do Apache Iceberg, crie um secret para autorizar a migração. O secret precisa estar no seguinte formato:
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"polaris_realm": "POLARIS_REALM",
"scope": "SCOPE"
}Substitua:
CLIENT_ID: o ID do cliente OAuth 2.0CLIENT_SECRET: a chave secreta do cliente OAuth 2.0.POLARIS_REALM: o realm do catálogo do Polaris. Esse campo é obrigatório apenas para o Apache Polaris. Por exemplo,FINANCE.SCOPE: (opcional) o escopo do OAuth 2.0. O valor padrão éPRINCIPAL_ROLE:ALL.
Criar um catálogo do Lakehouse
Crie um catálogo do Lakehouse. Os metadados migrados são armazenados no bucket do Cloud Storage que você especificou ao criar o catálogo.
Migrar metadados
Para iniciar uma migração de metadados para tabelas do catálogo REST do Lakehouse Iceberg, faça o seguinte:
No console do Google Cloud , acesse a página Migração > Serviços.
Em Registrar ou migrar o Open Lakehouse, clique em Criar migração.
Em Configuração da migração, faça o seguinte:
- Em "Tipo de catálogo", selecione um catálogo externo.
Em Região, selecione uma região. A região selecionada determina onde a orquestração da migração e a transferência de dados são executadas. Ele também determina onde o serviço de migração usa ou cria recursos, como anexos de rede ou secrets.
Somente secrets regionais são compatíveis. A região do secret precisa corresponder à região neste campo.
Em Nome de exibição da migração, insira um nome para essa migração.
Em Configuração do sistema de origem, faça o seguinte:
- Em URL, insira o URL do endpoint base que atua como o ponto de entrada para o metastore do Apache Iceberg ou do Apache Hive.
- Em Conta de serviço, selecione uma conta de serviço na lista. Se não for especificado, essa migração será executada usando a credencial do usuário.
- (Opcional) Em Anexo de rede, selecione um anexo de rede.
Clique em Continuar.
Quando a migração de metadados é concluída, os metadados dos seus catálogos externos são armazenados no bucket do Cloud Storage que você especificou ao criar o catálogo do Lakehouse.
Preços
Não há custo para transferir metadados para tabelas do catálogo REST do Lakehouse Iceberg. Depois que os metadados forem transferidos, os preços do Lakehouse serão aplicados.