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
- Ative o faturamento do seu Google Cloud projeto. Saiba como verificar se o faturamento está ativado em um projeto.
Ative as APIs BigQuery e Dataflow.
Opcional: saiba mais sobre o seguinte:
- Entenda como a metastore do BigQuery funciona e por que você deve usá-la.
- Saiba como o Dataflow funciona e como monitorar um job em andamento.
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 comoUS
, 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.