A migração gerenciada é um recurso automatizado que ajuda a migrar dados de um Metastore do Hive autogerenciado para um serviço Metastore do Dataproc, sem nenhum tempo de inatividade considerável (também conhecido como dia de sinalização).
Como funciona a migração gerenciada
Para concluir uma migração gerenciada, o serviço precisa passar por dois processos: iniciar migração e concluir a migração. É possível fazer isso a qualquer momento com o processo de cancelamento da migração. Há também vários comandos operacionais que você pode executar, que não são necessários para concluir uma migração. Por exemplo, listar migração ou excluir migração.
À medida que o serviço avança no processo, ele também passa por vários
estados e fases de migração. Esses estados e fases representam os
processos que ocorrem em segundo plano. Por exemplo, o estado MIGRATING
indica que o serviço está transferindo dados ativamente do
banco de dados do Cloud SQL para o metastore do Dataproc.
A migração gerenciada requer três sub-redes para executar uma migração: proxy_subnet
,
nat_subnet
e reverse_proxy_subnet
. Para evitar problemas de latência, configure o
seguinte:
proxy_subnet
enat_subnet
na mesma região que o Cloud SQL.reverse_proxy_subnet
está na mesma região do serviço Metastore do Dataproc.
Para mais informações sobre os diferentes tipos de sub-redes, consulte Finalidades das sub-redes.
Fluxo de migração gerenciado
Iniciar migração
- Você executa um processo de iniciar migração em um serviço do Dataproc Metastore.
O serviço Metastore do Dataproc se conecta ao banco de dados do Cloud SQL, que atua como o banco de dados de back-end para seu metastore Hive autogerenciado. Nesta etapa, o banco de dados do Cloud SQL ainda é a fonte da verdade para seus dados.
O metastore do Dataproc executa um fluxo de captura de dados alterados (CDC, na sigla em inglês) que copia dados do banco de dados do Cloud SQL para o banco de dados do metastore do Dataproc (Cloud Spanner).
Depois que a migração inicial for bem-sucedida, será possível começar a rotear cargas de trabalho para o Metastore do Dataproc. Neste ponto, o Cloud SQL ainda é a fonte da verdade para seus dados.
Concluir a migração
Depois de concluir a migração das cargas de trabalho para o metastore do Dataproc, será possível concluir a migração. Quando um processo de migração completa é chamado, ocorre o seguinte:
- O metastore do Dataproc faz a transição para um modo somente leitura até que o processo completo de migração seja concluído.
- O fluxo do CDC transfere todos os dados em trânsito para o metastore do Dataproc.
- O metastore do Dataproc se conecta ao Spanner e desconecta do Cloud SQL. O metastore do Dataproc agora atua como a fonte da verdade para seus dados.
Antes de começar
Para iniciar uma migração, você precisa configurar ou ter acesso aos seguintes serviços:
- Um Metastore do Dataproc configurado com o tipo de banco de dados do Spanner.
Uma instância de banco de dados do Cloud SQL para MySQL configurada com o IP particular.
A rede VPC da instância do Cloud SQL tem as sub-redes necessárias.
O Cloud SQL usa um banco de dados com um esquema compatível com a versão do metastore do Hive em execução no serviço do metastore do Dataproc para o qual os dados são copiados.
Configure o Cloud SQL para ser usado como uma fonte do Datastream. Crie um nome de usuário e uma senha para conectar o Datastream ao Cloud SQL.
Papéis necessários
Para receber as permissões necessárias para criar um metastore do Dataproc e iniciar uma migração gerenciada, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Para conceder acesso total a todos os recursos do metastore do Dataproc, incluindo a definição de permissões do IAM:
Administrador do metastore do Dataproc (
roles/metastore.admin
) na conta de usuário ou na conta de serviço do metastore do Dataproc -
Para conceder controle total dos recursos do metastore do Dataproc:
Editor do metastore do Dataproc (
roles/metastore.editor
) na conta de usuário ou na conta de serviço do metastore do Dataproc: -
Para criar uma migração gerenciada:
Administrador de migração (
roles/metastore.migrationAdmin
) no [agente de serviço do Dataproc Metastore][7] -
Para usar o objeto do Cloud Storage com o Datastream:
-
Leitor de objetos do Storage (
roles/storage.objectViewer
) na conta do agente de serviço do Datastream. -
Criador de objetos do Storage (
roles/storage.objectCreator
) na conta do agente de serviço do Datastream -
Leitor de bucket legado do Storage (
roles/storage.legacyBucketReader
) na conta do agente de serviço do Datastream.
-
Leitor de objetos do Storage (
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Configurar uma migração gerenciada
É possível configurar uma migração usando as APIs Dataproc Metastore.
Um serviço Metastore do Dataproc só pode executar uma migração por vez.
Iniciar migração
Quando você inicia uma migração, o metastore do Dataproc se conecta ao Cloud SQL e usa o Cloud SQL como banco de dados de back-end. Durante esse processo, o metastore do Dataproc executa um pipeline que copia dados do Cloud SQL para seu próprio banco de dados (Spanner).
O metastore do Dataproc continua usando o Cloud SQL como back-end e replica dados até que todo o processo de migração seja chamado.
Considerações
Uma migração permanece ativa até você concluir o processo. Não há um prazo para concluir a migração. Por exemplo, ela pode levar 1 dia, 30 dias ou um ano.
Os backups programados não são restritos durante uma migração. No entanto, o backup pode estar incompleto. Para evitar problemas, desative todos os backups programados enquanto a migração estiver em andamento.
O início de uma migração aciona as seguintes mudanças de estado:
- O metastore do Dataproc é movido para o estado
MIGRATING
. - O estado de execução da migração é movido para
RUNNING
. A fase de execução da migração passa para
REPLICATION
.
Console
Comece agora
No console do Google Cloud, abra a página Metastore do Dataproc:
Na página Metastore do Dataproc, clique no nome do serviço para o qual você quer migrar.
A página Detalhes do serviço é aberta.
Na parte de cima da página, clique em Migrar dados.
A página Criar migração abre a guia Conectividade e mostra as definições de configuração do banco de dados do Cloud SQL para o metastore do Dataproc.
Configuração do banco de dados do Cloud SQL para DPMS
Em Nome da conexão da instância, insira o nome da conexão da instância do banco de dados do Cloud SQL, no seguinte formato:
PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID
.No campo Endereço IP, insira o endereço IP necessário para se conectar à instância do Cloud SQL.
No campo Porta, digite 3306.
No campo Nome do banco de dados do Hive, insira o nome do banco de dados que está sendo usado como o back-end do metastore autogerenciado do Hive.
No campo Nome de usuário, insira o nome de usuário usado para conectar o Cloud SQL ao metastore do Hive.
No campo Senha, insira a senha que você usa para conectar o Cloud SQL ao metastore do Hive.
Serviço de proxy SOCKS5
No campo Sub-rede do proxy, insira a sub-rede usada na rede VPC do Cloud SQL. Essa sub-rede é usada para implantar o proxy SOCKS5 intermediário.
No campo Sub-rede Nat, insira a sub-rede do Private Service Connect que fornece uma conexão do serviço Metastore do Dataproc para acessar o proxy intermediário. O tamanho da sub-rede precisa ter um comprimento de prefixo de pelo menos pelo menos /29.
Clique em Continuar.
A guia Captura de dados alterados (CDC) abre e exibe as configurações do banco de dados do Cloud SQL para o Datastream.
Configuração do banco de dados do Cloud SQL para fluxo de dados
No campo Nome de usuário, insira o nome de usuário que você usou para fazer login no CDC do Cloud SQL usado pelo Datastream.
No campo Senha, insira a senha que você usa para fazer login no CDC do Cloud SQL usado pelo Datastream.
No campo Rede VPC, insira a rede na mesma rede VPC que a instância do Cloud SQL usada pelo Datastream para estabelecer uma conexão particular com o CDC.
No campo Intervalo de IP da sub-rede, insira um intervalo de IP da sub-rede de pelo menos /29. O Datastream usa esse IP para estabelecer o peering com a rede VPC.
No campo Sub-rede de proxy reversa, insira a sub-rede que você criou na mesma rede VPC que o Cloud SQL. O Datastream usa essa sub-rede. A sub-rede é usada para hospedar uma conexão de proxy reversa para o CDC do Datastream. A sub-rede precisa ser configurada na mesma região do serviço Metastore do Dataproc.
Configuração do GCS
Em ID do bucket, selecione o caminho do Cloud Storage para armazenar dados do CDC durante a migração.
No campo Caminho raiz, insira o caminho raiz dentro do bucket do Cloud Storage. Os dados do evento de stream são gravados nesse caminho.
Clique em Criar.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type:application/json" \
-X POST -d \
'{
"migration_execution": {
"cloud_sql_migration_config": {
"cloud_sql_connection_config": {
"instance_connection_name": INSTANCE_CONNECTION_NAME,
"hive_database_name": "HIVE_DATABASE_NAME",
"ip_address": "IP_ADDRESS",
"port": 3306,
"username": "CONNECTION_USERNAME",
"password": "CONNECTION_PASSWORD",
"proxy_subnet": "PROXY_SUBNET",
"nat_subnet": "NAT_SUBNET"
},
"cdc_config": {
"username": "CDC_USENAME",
"password": "CDC_PASSWORD",
"vpc_network": "VPC_NETWORK",
"subnet_ip_range": "SUBNET_IP_RANGE",
"reverse_proxy_subnet": "REVERSE_PROXY_SUBNET_ID",
"bucket": "BUCKET_NAME",
"root_path": "ROOT_PATH",
}
}
}
}' \
https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:startMigration
Substitua:
SERVICE
: o nome ou o ID do serviço do Metastore do Dataproc.PROJECT_ID
: o ID do projeto do Google Cloud em que o serviço Metastore do Dataproc reside.LOCATION
: a região do Google Cloud em que o serviço Metastore do Dataproc reside.
Configuração de migração do Cloud SQL
INSTANCE_CONNECTION_NAME
: o nome da conexão da instância para o banco de dados do Cloud SQL, no seguinte formato:PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID
.HIVE_DATABASE_NAME
: o nome do banco de dados do Hive autogerenciado conectado ao Cloud SQL.IP_ADDRESS
: o endereço IP necessário para se conectar à instância do Cloud SQL.CONNECTION_USERNAME
: o nome de usuário usado para conectar o Cloud SQL ao metastore do Hive.CONNECTION_PASSWORD
a senha que você usa para conectar o Cloud SQL ao metastore do Hive.PROXY_SUBNET
: a sub-rede usada na rede VPC do Cloud SQL. Essa sub-rede hospeda um proxy intermediário para fornecer conectividade em redes transitivas.NAT_SUBNET
: uma sub-rede do Private Service Connect que fornece uma conexão do serviço Metastore do Dataproc para acessar o proxy intermediário. O tamanho da sub-rede precisa ter um comprimento de prefixo de pelo menos /29 e no intervalo IPv4.
Configuração do CDC
CDC_USERNAME
: o nome de usuário que o serviço do Datastream usa para fazer login no Cloud SQL.CDC_PASSWORD
: a senha que o serviço do Datastream usa para fazer login no Cloud SQL.VPC_NETWORK
: uma rede na mesma rede VPC que a instância do Cloud SQL usada pelo Datastream para estabelecer uma conexão particular com o CDC.SUBNET_IP_RANGE
: um intervalo de IP de sub-rede de pelo menos /29 usado pelo Datastream para estabelecer peering com a rede VPC.REVERSE_PROXY_SUBNET_ID
: uma sub-rede na mesma rede VPC que a instância do Cloud SQL usada pelo Datastream. A sub-rede é usada para hospedar uma conexão de proxy reversa para o CDC do Datastream. A sub-rede precisa ser configurada na mesma região que o serviço Metastore do Dataproc.BUCKET_NAME
: o caminho do Cloud Storage para armazenar dados do CDC durante a migração.ROOT_PATH
: o caminho raiz dentro do bucket do Cloud Storage. Os dados do evento de stream são gravados nesse caminho.
Concluir a migração
Quando você conclui uma migração, o metastore do Dataproc se conecta ao Spanner e começa a usar o Spanner como banco de dados de back-end.
Uma migração completa aciona as seguintes mudanças de estado:
- O metastore do Dataproc volta para o estado
ACTIVE
. O estado de execução da migração é movido para
SUCCEEDED
.
Console
No console do Google Cloud, abra a página Metastore do Dataproc.
Na parte de cima da página, clique em Migrar dados.
A página Migrar dados é aberta e exibe as migrações gerenciadas concluídas.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type:application/json" \
-X POST -d '' \
https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:completeMigration
Substitua:
SERVICE
: o nome ou o ID do serviço Metastore do Dataproc.PROJECT_ID
: o ID do projeto do Google Cloud em que o serviço Metastore do Dataproc reside.LOCATION
: a região do Google Cloud em que o serviço Metastore do Dataproc reside.
Cancelar migração
Quando você cancela uma migração, o metastore do Dataproc reverte todas as alterações e começa a usar o tipo de banco de dados do Spanner como banco de dados de back-end. Todos os dados transferidos durante a migração são excluídos.
O cancelamento da migração aciona as seguintes mudanças de estado:
- O metastore do Dataproc volta para o estado
ACTIVE
. O estado de execução da migração é movido para
CANCELLED
.
Console
No console do Google Cloud, abra a página Metastore do Dataproc.
Na parte de cima da página, clique em Migrar dados.
A página Migrar dados é aberta e exibe suas migrações gerenciadas canceladas.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type:application/json" \
-X POST -d '' \
https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:cancelMigration
Substitua:
SERVICE_NAME
: o nome ou o ID do serviço Metastore do Dataproc.PROJECT_ID
: o ID do projeto do Google Cloud em que o serviço Metastore do Dataproc reside.LOCATION
: a região do Google Cloud em que o serviço Metastore do Dataproc reside.
Receber detalhes da migração
Veja detalhes sobre uma única migração gerenciada.
Console
No console do Google Cloud, abra a página Metastore do Dataproc.
Na parte de cima da página, clique em Migrar dados.
A página Migrar dados é aberta e exibe suas migrações gerenciadas.
Para acessar mais detalhes sobre a migração, clique no nome de uma migração gerenciada.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X GET \
https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID
Substitua:
SERVICE
: o nome ou o ID do serviço Metastore do Dataproc.PROJECT_ID
: o ID do projeto do Google Cloud em que o serviço Metastore do Dataproc reside.LOCATION
: a região do Google Cloud em que o serviço Metastore do Dataproc reside.MIGRATION_ID
: o nome ou ID da migração do Metastore do Dataproc.
Listar migrações
Listar migrações gerenciadas.
Console
No console do Google Cloud, abra a página Metastore do Dataproc.
Na parte de cima da página, clique em Migrar dados.
A página Migrar dados é aberta e exibe suas migrações gerenciadas.
Verifique se o comando listou as migrações.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X GET \
https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID
Substitua:
SERVICE
: o nome ou o ID do serviço Metastore do Dataproc.PROJECT_ID
: o ID do projeto do Google Cloud em que o serviço Metastore do Dataproc reside.LOCATION
: a região do Google Cloud em que o serviço Metastore do Dataproc reside.
Excluir migrações
Excluir migrações gerenciadas.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X DELETE \
https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID
Substitua:
SERVICE
: o nome ou o ID do serviço do Metastore do Dataproc.PROJECT_ID
: o ID do projeto do Google Cloud em que o serviço Metastore do Dataproc reside.LOCATION
: a região do Google Cloud em que o serviço Metastore do Dataproc reside.MIGRATION_ID
: o nome ou o ID da migração do Metastore do Dataproc.
A seguir
- O que é o metastore do Dataproc?
- Importar metadados para um serviço
- Anexar um cluster do Dataproc ou um cluster autogerenciado