A migração gerida é uma funcionalidade automática que ajuda a migrar dados de um Hive Metastore autogerido para um serviço Dataproc Metastore, sem qualquer tempo de inatividade considerável (também conhecido como dia de mudança).
Arquitetura de migração gerida
O diagrama seguinte apresenta a arquitetura de alto nível de uma migração gerida.
Fluxo de migração gerido
Para concluir uma migração gerida, o seu serviço passa por dois processos de migração: iniciar migração e concluir migração. Pode cancelar uma migração em qualquer altura com o processo de cancelamento da migração. Também pode executar vários comandos operacionais que não são necessários para concluir uma migração. Por exemplo, list migrations ou delete migrations.
À medida que o seu serviço avança neste processo, também passa por vários estados de migração e fases de migração. Estes estados e fases representam os processos que estão a ocorrer em segundo plano. Por exemplo, o estado MIGRATING
indica que o seu serviço está a transferir ativamente dados da sua base de dados do Cloud SQL para o Dataproc Metastore.
Iniciar migração
O Dataproc Metastore estabelece uma ligação com a sua instância do Cloud SQL de IP privado. Após a ligação, o Dataproc Metastore usa a instância do Cloud SQL como base de dados de back-end do Hive Metastore (HMS). Também permanece como a fonte de verdade para os seus dados durante a migração. As leituras e as escritas de metadados continuam a ocorrer no Cloud SQL quando a migração está ativa.
É iniciada uma pipeline de captura de dados de alterações (CDC). Este pipeline mantém a instância do Cloud SQL no seu projeto e o Spanner no projeto gerido do Dataproc Metastore sincronizados. Isto significa que todas as alterações à base de dados do HMS na instância do Cloud SQL são captadas através do Datastream e escritas na base de dados do Dataproc Metastore Spanner.
Assim que o processo de início da migração for bem-sucedido, pode começar a encaminhar cargas de trabalho de dados para o Dataproc Metastore. Neste ponto, o Cloud SQL continua a ser a fonte de informações verdadeiras para os seus dados.
Concluir migração
Depois de concluir a movimentação das cargas de trabalho para o Dataproc Metastore, pode concluir a migração. Quando é chamado um processo de migração completa, ocorre o seguinte:
- O Dataproc Metastore passa para um modo só de leitura até que o processo de migração completa termine.
- A stream de CDC transfere todos os dados em trânsito para o Dataproc Metastore.
- O Dataproc Metastore liga-se ao Spanner e desliga-se do Cloud SQL. O Dataproc Metastore atua agora como a fonte de prioritária para os seus dados do HMS.
Considerações sobre o proxy e a pipeline
Proxies
O Dataproc Metastore usa um proxy Auth do Cloud SQL encadeado a um proxy SOCKS5 para se ligar à sua instância do Cloud SQL de IP privado. Os servidores proxy SOCKS5 são expostos através de um anexo de serviço, conforme mostrado no diagrama de arquitetura anterior.
Cada migração requer uma sub-rede NAT dedicada. Isto deve-se ao facto de uma sub-rede NAT não poder ter mais do que uma associação de serviço.
Para evitar problemas de latência entre regiões, forneça sub-redes que estejam na mesma região que a sua instância do Cloud SQL para alojar o proxy SOCKS5. Por exemplo,
proxy_subnet
enat_subnet
.
Altere o pipeline de captura de dados
O pipeline de captura de dados de alterações usa o intercâmbio da VPC para estabelecer uma ligação entre o Datastream e o IP privado do Cloud SQL
Para cada migração, é criada uma nova ligação privada e estabelecida uma nova ligação de peering.
A rede VPC que aloja a instância do Cloud SQL tem tantas associações de peering quantas migrações ativas. Certifique-se de que a sua rede de VPC tem capacidade para alojar todas as ligações de peering necessárias.