Migrar metadados do metastore do Dataproc para o metastore do BigQuery

Este documento explica como usar a ferramenta de migração de metastore do BigQuery, que ajuda a mover metadados de banco de dados, tabela e partição de um serviço de metastore do Dataproc para a metastore do BigQuery.

Antes de começar

  1. Ative o faturamento do seu Google Cloud projeto. Saiba como verificar se o faturamento está ativado em um projeto.
  2. Ative as APIs BigQuery e Dataflow.

    Ativar as APIs

  3. Opcional: saiba mais sobre o seguinte:

Funções exigidas

Para receber as permissões necessárias para executar a ferramenta de migração, peça ao administrador para conceder a você os seguintes papéis do IAM:

  • Crie bancos de dados, tabelas e partições no BigQuery: Editor de dados do BigQuery (roles/bigQuery.dataEditor) na conta de serviço do Dataflow que está executando o job de migração.
  • Conceda acesso de leitura aos metadados do Dataproc Metastore em um endpoint gRPC: Função de leitor de metadados (roles/metastore.metadataViewer) na conta de serviço do Dataflow que está executando o job de migração.

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 por meio de papéis personalizados ou de outros papéis predefinidos.

Como a ferramenta de migração funciona

A ferramenta de migração inicia um job do Dataflow que extrai metadados do Dataproc Metastore e os ingere na metastore do BigQuery.

Não é possível acessar os dados do metastore do Dataproc diretamente do metastore do BigQuery. Esse processo de migração é necessário para executar cargas de trabalho ou jobs em metadados existentes. Se você não usar essa ferramenta, será necessário extrair manualmente os metadados da metastore do Dataproc e transferi-los para a metastore do BigQuery.

Considerações

  • A ferramenta de migração oferece suporte a instâncias do Dataproc Metastore que usam o protocolo de endpoint gRPC ou Thrift.
  • Sempre que você executa a ferramenta de migração, o job do Dataflow faz uma cópia completa dos metadados do metastore do Dataproc para o metastore do BigQuery.

Limitações

A ferramenta de migração não migra metadados não relacionados a partições de banco de dados e tabelas. Se a ferramenta não conseguir migrar um banco de dados ou uma tabela, ela vai registrar uma mensagem na instância do Cloud Logging do projeto que contém o job do Dataflow.

Depois que o erro é registrado, o job do Dataflow continua processando outras tabelas e bancos de dados no pipeline.

Fazer uma migração com a ferramenta

Para executar uma migração com a ferramenta, crie um job de modelo flexível do Dataflow executando o comando gcloud dataflow flex-template abaixo.

gcloud dataflow flex-template run JOB_NAME" \
   --template-file-gcs-location "gs://bigquery-metastore-migration/dpms_to_bqms_migration.json" \
   --parameters bigQueryMetastoreProjectId="DESTINATION_BIGQUERY_PROJECT_ID" \
   --parameters endpointUri="METASTORE_URI" \
   --parameters bigQueryMetastoreDatabaseLocation=DATABASE_LOCATION \
  [--network=NETWORK] \
  [--subnetwork=SUBNETWORK]

Substitua:

  • JOB_NAME: o nome do job do Dataflow para executar a migração.
  • DESTINATION_BIGQUERY_PROJECT_ID: o ID do projeto do BigQuery em que o job do Dataflow grava dados.
  • METASTORE_URI: o URI do serviço do Dataproc Metastore.
  • DATABASE_LOCATION: o local em que a metastore do BigQuery grava dados. Por exemplo, se você definir esse valor como US, todos os recursos do BigQuery criados pela ferramenta serão armazenados nesse local.
  • NETWORK: opcional: a rede para executar o job do Dataflow. Obrigatório apenas para serviços do Dataproc Metastore que usam um endpoint Thrift.
  • SUBNETWORK: opcional: a sub-rede para executar o job do Dataflow. Obrigatório apenas para serviços do Dataproc Metastore que usam um endpoint Thrift.

A seguir