A migração gerenciada é um recurso automatizado que ajuda a migrar dados de um metastore autogerenciado do Hive para um serviço de metastore do Dataproc sem tempo de inatividade significativo (também conhecido como flag day).
Arquitetura de migração gerenciada
O diagrama a seguir mostra a arquitetura de alto nível de uma migração gerenciada.
Fluxo de migração gerenciada
Para concluir uma migração gerenciada, seu serviço passa por dois processos de migração: iniciar a migração e concluir a migração. É possível cancelar uma migração a qualquer momento com o processo de cancelamento de migração. Há também vários comandos operacionais que podem ser executados, que não são necessários para concluir uma migração. Por exemplo, list migrations ou delete migrations.
À medida que seu serviço avança nesse processo, ele também passa por vários
estados de migração e fases de migração. Esses estados e fases representam os
processos que estão ocorrendo 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.
Iniciar migração
O Dataproc Metastore estabelece uma conexão com sua instância do Cloud SQL de IP privado. Depois que a conexão é feita, o Dataproc Metastore usa a instância do Cloud SQL como o banco de dados de back-end do metastore do Hive (HMS). Ela também permanece como a fonte de dados durante a migração. As leituras e gravações de metadados ainda ocorrem no Cloud SQL quando a migração está ativa.
Um pipeline de captura de dados alterados (CDC) é iniciado. Esse pipeline mantém a instância do Cloud SQL no seu projeto e o Spanner no projeto gerenciado do Dataproc Metastore sincronizados. Isso significa que todas as mudanças no banco de dados do HMS na instância do Cloud SQL são capturadas pelo Datastream e gravadas no banco de dados do Dataproc Metastore Spanner.
Depois que o processo de início da migração for concluído, você poderá rotear cargas de trabalho de dados para o metastore do Dataproc. Nesse ponto, o Cloud SQL ainda é a fonte de verdade dos seus dados.
Concluir a migração
Depois de mover as cargas de trabalho para o Metastore do Dataproc, você pode concluir a migração. Quando um processo de migração completa é chamado, o seguinte ocorre:
- O Dataproc Metastore passa para o modo somente leitura até que o processo de migração completa seja concluído.
- O stream do CDC transfere todos os dados em andamento para o Dataproc Metastore.
- O Dataproc Metastore se conecta ao Spanner e se desconecta do Cloud SQL. O Metastore do Dataproc agora atua como a fonte de verdade dos seus dados do HMS.
Considerações sobre proxy e pipeline
Proxies
O Dataproc Metastore usa um proxy de autenticação do Cloud SQL anexado a um proxy SOCKS5 para se conectar à instância do Cloud SQL de IP particular. Os servidores proxy SOCKS5 são expostos por meio de um anexo de serviço, conforme mostrado no diagrama de arquitetura anterior.
Cada migração requer uma sub-rede NAT dedicada. Isso ocorre porque uma sub-rede NAT não pode ter mais de um anexo de serviço.
Para evitar problemas de latência entre regiões, forneça sub-redes que estejam na mesma região da sua instância do Cloud SQL para hospedar o proxy SOCKS5. Por exemplo,
proxy_subnet
enat_subnet
.
Mudar o pipeline de captura de dados
O pipeline de captura de dados alterados usa o peering de VPC para estabelecer uma conexão entre o Datastream e o Cloud SQL de IP privado.
Para cada migração, uma nova conexão particular é criada e uma nova conexão de pareamento é estabelecida.
A rede VPC que hospeda a instância do Cloud SQL tem tantas conexões de peering quanto migrações ativas. Verifique se a rede VPC tem capacidade para hospedar todas as conexões de peering necessárias.