A migração gerenciada é um recurso automatizado que ajuda você a migrar dados de uma Hive metastore autogerenciado para um serviço do Dataproc Metastore, sem qualquer tempo de inatividade considerável (também conhecido como dia de sinalização).
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 gerenciado
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árias para concluir a migração. Por exemplo, list migrations ou delete migrations.
À medida que seu serviço avança nesse processo, ele também se move entre 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 for estabelecida, O metastore do Dataproc usa a instância do Cloud SQL Banco de dados de back-end do Hive Metastore (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 alterações no banco de dados HMS na instância do Cloud SQL sejam capturadas pelo Datastream e gravados no Banco de dados do Spanner do Dataproc Metastore.
Quando o processo inicial de migração for concluído, você poderá iniciar o roteamento de dados para o metastore do Dataproc. Nesse ponto, o Cloud SQL ainda é a fonte de verdade dos seus dados.
Concluir migração
Depois de mover as cargas de trabalho para o metastore do Dataproc, para concluir a migração. Quando um processo de migração completa é chamado, ocorre o seguinte:
- O Dataproc Metastore entra no 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 metastore do Dataproc 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
.
Pipeline de captura de dados alterados
O pipeline de captura de dados de mudança usa o peering de VPC para estabelecer uma conexão entre o Datastream e o IP privado do Cloud SQL.
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.