MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Migrando o MongoDB para o DynamoDB, parte 2


O AWS Database Migration Service (DMS) adicionou suporte para dois bancos de dados NoSQL em 2017:MongoDB como banco de dados de origem e AWS DynamoDB como banco de dados de destino. Em um tutorial de dois artigos, estamos migrando um banco de dados MongoDB para o DynamoDB no DMS. No primeiro artigo, “Migrando o MongoDB para o DynamoDB, Parte 1”, criamos um conjunto de réplicas do MongoDB e uma tabela do DynamoDB. Neste artigo de continuação, discutiremos a criação e execução de uma migração DMS para migrar dados.

Este artigo tem as seguintes seções:
  • Criando uma migração DMS
  • Executando a migração
  • Retomar uma migração
  • Exclusão de uma migração
  • Conclusão

Criando uma migração DMS


Em seguida, criaremos uma migração DMS para migrar o banco de dados MongoDB para o DynamoDB. Faça login como usuário do IAM (dvohra ou outro) criado para DMS e selecione DMS no Console de gerenciamento da AWS. Clique em Criar migração no DMS Dashboard, conforme mostrado na Figura 1.


Figura 1: Criar migração

Clique em Avançar na página de boas-vindas do DMS, conforme mostrado na Figura 2.


Figura 2: Bem-vindo>Próximo

A Criar instância de replicação A caixa de diálogo é exibida, conforme mostrado na Figura 3, na qual configuramos uma instância de replicação para iniciar as conexões entre os bancos de dados de origem e destino, transferir os dados e armazenar em cache quaisquer alterações no banco de dados de origem durante o carregamento inicial.


Figura 3: Criar instância de replicação

Especifique o nome da instância de replicação em Nome campo, selecione a classe de instância , selecione uma VPC e selecione a opção se um Multi-AZ instância de replicação deve ser criada. Descrição , que geralmente é opcional nas configurações configuráveis, é um campo obrigatório. As configurações padrão são fornecidas para todos esses campos, exceto a VPC. As configurações da instância de replicação usadas são mostradas na Figura 4.


Figura 4: Configurações da instância de replicação

Selecione a opção para tornar a instância de replicação Acessível publicamente e clique em Avançado para configurar os parâmetros avançados, conforme mostrado na Figura 5.


Figura 5: Configurando a instância de replicação como acessível publicamente

No Avançado seção, as configurações padrão são fornecidas para todos os campos (consulte a Figura 6).


Figura 6: Configurações avançadas

As configurações padrão, exceto a chave mestra KMS, que deve ser definida para a chave de criptografia (dms) criada antes de efetuar login como usuário do IAM (dvohra), são adequadas para qualquer instância de replicação, conforme mostrado na Figura 7. Clique em Avançar.


Figura 7: Configurações avançadas>Avançar

A instância de replicação começa a ser criada, conforme indicado pela mensagem mostrada na Figura 8. Especifique os endpoints do banco de dados a seguir enquanto a instância de replicação está sendo criada. No entanto, os endpoints do banco de dados não podem ser testados até que a instância de replicação seja criada.


Figura 8: Instância de replicação sendo criada

Para o mecanismo de origem , selecione o mongodb banco de dados, como mostrado na Figura 9.


Figura 9: Selecionando o Source Engine como mongodb

Para o mecanismo de destino , selecione o dynamodb banco de dados, como mostrado na Figura 10.


Figura 10: Selecionando o Target Engine como dynamodb

O Identificador de endpoint pode ser mantido como padrão para os bancos de dados de origem e destino, mas os outros parâmetros de conexão precisam ser especificados. Para os detalhes da conexão do banco de dados de origem , especifique o Nome do servidor como o IP privado (Figura 21 no primeiro artigo, “Migrando o MongoDB para o DynamoDB, Parte 1”) da instância do CoreOS EC2 na qual o conjunto de réplicas do MongoDB é iniciado usando o Docker e especifique Porta como 27017 (veja a Figura 11). Selecione "nenhum" para modo SSL e Modo de autenticação . Especifique Nome do banco de dados como teste e selecione Mecanismo de autenticação como padrão .


Figura 11: Detalhes da conexão do banco de dados de origem

Para o mecanismo de banco de dados de origem, mongodb , selecione Modo de metadados como documento e selecione a opção _id como uma coluna separada , conforme mostrado na Figura 12. O Executar teste os botões são usados ​​para testar as conexões de banco de dados de origem e destino e não são habilitados até que a instância de replicação seja criada.


Figura 12: Outras configurações para o Source Engine

Copie o ARN da função para o dms-vpc-role do console do IAM, conforme mostrado na Figura 13. O ARN da função deve ser usado para definir a conexão do banco de dados de destino para a migração do DMS.


Figura 13: Copiando o ARN da função

Copie e cole o ARN da função no ARN da função de acesso ao serviço campo, como mostrado na Figura 14.


Figura 14: ARN da função de acesso ao serviço

Quando a instância de replicação é criada, uma mensagem indicando a mesma é exibida, conforme mostrado na Figura 15.


Figura 15: Instância de replicação criada

Para o banco de dados de destino, clique em Executar teste para testar a conexão. Se uma conexão for estabelecida, a mensagem “Conexão testada com sucesso” deve ser exibida (veja a Figura 16).


Figura 16: Conexão de banco de dados de destino testada com sucesso

Da mesma forma, clique em Executar teste para o banco de dados de origem, e a mensagem “Conexão testada com sucesso” deve ser exibida se uma conexão for estabelecida, conforme mostrado na Figura 17.


Figura 17: Conexão de banco de dados de origem testada com sucesso

Clique em Avançar em Pontos de extremidade do banco de dados , conforme mostrado na Figura 18.


Figura 18: Pontos de extremidade do banco de dados>Próximo

Em seguida, configure uma tarefa de migração em Criar tarefa página. Uma tarefa consiste em várias configurações, incluindo nome da tarefa, descrição da tarefa, endpoint de origem, endpoint de destino, instância de replicação, tipo de migração, configurações de tarefa, mapeamentos de tabela e configurações avançadas. As configurações padrão para Nome da tarefa e as configurações não modificáveis ​​para o endpoint de origem , Ponto de extremidade de destino , Instância de replicação e Tipo de migração são mostrados na Figura 19.


Figura 19: Criar configurações de tarefa

Adicione uma descrição adequada e selecione um Tipo de migração na lista suspensa mostrada na Figura 20. As diferentes opções para o tipo de migração são Migrar dados existentes , Migre os dados existentes e replique as alterações em andamento e Replicar apenas alterações de dados . Para migrar dados existentes do MongoDB para o DynamoDB com a provisão para replicar alterações em andamento, selecione Migrar dados existentes e replicar alterações em andamento . Uma tarefa de migração, uma vez criada, pode ser modificada posteriormente, exceto para o Tipo de migração configuração, que não pode ser modificada após a criação de uma tarefa de migração. Portanto, escolha o tipo de migração assumindo que é uma configuração permanente.


Figura 20: Escolhendo o tipo de migração

Selecione Configurações da tarefa para modo de preparação da tabela de destino , Parar a tarefa após a conclusão do carregamento total , Incluir colunas LOB na replicação e Ativar registro (ver Figura 21).


Figura 21: Configurações da tarefa

Clique em Configurações avançadas , conforme mostrado na Figura 22, para definir configurações avançadas, que incluem Tabela de controle configurações e Ajuste definições. As configurações avançadas padrão podem ser mantidas.


Figura 22: Configurações avançadas

Em Mapeamentos de tabela , configure as regras de seleção, conforme mostrado na Figura 23. Pelo menos uma regra de seleção com um Incluir ação é necessária. Selecione um Nome de esquema (teste) na fonte do DMS MongoDB. O nome do esquema é o mesmo que o nome do banco de dados MongoDB, que é teste . Especifique O nome da tabela é como ‘%’, que seleciona todas as tabelas. Uma tabela também é chamado de coleção no MongoDB. Selecione Ação como Incluir , que inclui os objetos selecionados por uma regra de seleção. As ações de exclusão são processadas após as ações de inclusão.


Figura 23: Mapeamentos de tabela

Filtros de origem para limitar o número e o tipo de registros transferidos da origem para o destino também podem ser configurados. Clique em Adicionar regra de seleção , conforme mostrado na Figura 24.


Figura 24: Adicionar regra de seleção

As regras de transformação podem ser adicionadas para fazer transformações em maiúsculas/minúsculas e adicionar/remover prefixo/sufixo. Se o Logging tiver sido habilitado, o DMS criará uma função para registrar no CloudWatch. A criação de uma tarefa concede implicitamente as permissões necessárias para acessar e registrar no CloudWatch. Clique em Criar tarefa , conforme mostrado na Figura 25.


Figura 25: Criar tarefa

Uma tarefa de migração começa a ser criada (consulte a Figura 26). Inicialmente, o Status é “Criar”. O Status deve ser atualizado automaticamente e a opção de clicar no botão atualizar para atualizar o status periodicamente também é fornecida.


Figura 26: A tarefa de migração começa a ser criada

Quando uma tarefa é criada, o Status fica Pronto , conforme mostrado na Figura 27.


Figura 27: Status da tarefa pronto

Uma função do IAM para acesso e registro do CloudWatch é criada automaticamente, conforme mostrado na Figura 28.


Figura 28: Função do IAM para o CloudWatch Logs

Executando a migração


Para executar a tarefa de migração, clique em Iniciar/Retomar , conforme mostrado na Figura 29.


Figura 29: Iniciar/Retomar tarefa

O status da tarefa se torna Iniciando , como mostrado na Figura 30.


Figura 30: Início da tarefa

Quando a execução da tarefa for concluída, as Tabelas carregadas coluna lista o número de tabelas carregadas como 1, o Status torna-se Parado , O % Completo deve indicar 100 , conforme mostrado na Figura 31. Como o Tipo coluna indica, o tipo de migração é Replicação contínua e carga completa .


Figura 31: Carga completa concluída

Além das Tabelas carregadas coluna, o Carregamento de tabelas , Tabelas enfileiradas , e Tabelas com erro também são listados, conforme mostrado na Figura 32.


Figura 32: Carregamento de tabelas, Tabelas enfileiradas e Tabelas com erros são todas 0

No DynamoDB, o wlslog table lista sete itens, conforme mostrado na Figura 33. Duas outras tabelas, awsdms_apply_exceptions e awsdms_full_load_exceptions , também são criados automaticamente. A tabela awsdms_apply_exceptions fornece detalhes da exceção, incluindo o nome e a descrição do erro, a instrução que estava em execução quando o erro ocorreu, o nome da tarefa, o proprietário da tabela, o nome da tabela e a hora da exceção. A tabela awsdms_full_load_exceptions fornece informações sobre as exceções geradas após um carregamento completo.


Figura 33: A tabela wlslog lista sete itens

Clique em um _id para exibir o documento (_doc valor do atributo), conforme mostrado na Figura 34.


Figura 34: Documento para um item armazenado no DynamoDB

O Filtro do DynamoDB pode ser usado para filtrar a pesquisa. Como exemplo, pesquise um _id específico especificando _id como campo, selecionando String como o tipo de campo, selecionando '=' como o operador de filtro e especificando o _id a pesquisa, conforme mostrado na Figura 35. Clique em Iniciar pesquisa .


Figura 35: Aplicando um filtro

Os dados de linha da tabela do DynamoDB para o _id especificado é listado (veja a Figura 36).


Figura 36: Dados filtrados para _id específico

Após uma tarefa de migração concluir a migração de um banco de dados, o status da tarefa se torna Parado , mas os endpoints de migração ainda estão ativos , conforme mostrado na Figura 37.


Figura 37: Endpoints ativos mesmo após a conclusão da migração e a interrupção da tarefa

Retomar uma migração


Uma tarefa de migração que foi interrompida pode ser reiniciada ou retomada. A seguir estão alguns dos motivos para retomar ou reiniciar uma tarefa:
  • Um novo documento foi adicionado a uma coleção existente (também chamado de tabela ) no banco de dados MongoDB de origem do DMS
  • Uma nova coleção (tabela) foi adicionada ao banco de dados MongoDB
  • A migração precisa ser executada novamente com diferentes regras de seleção, o que pode ser necessário, por exemplo, se um prefixo de tabela precisar ser adicionado usando uma regra de transformação.

Como exemplo, adicione mais três documentos ao wlslog coleção na CLI do Mongo.
doc8 = {"timestamp":"Apr 8, 2014 7:06:23 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000360",
   "msg":"Server in RUNNING mode"}
doc9 = {"timestamp":"Apr 8, 2014 7:06:24 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000365",
   "msg":"Server Stopping"}
doc10 = {"timestamp":"Apr 8, 2014 7:06:25 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000361",
   "msg":"Server Resumed"}
db.wlslog.insert([doc8,doc9,doc10])

Como indica a saída na Figura 38, os três documentos são adicionados.


Figura 38: Adicionando mais três documentos

Clique em Iniciar/Retomar para retomar uma tarefa interrompida, conforme mostrado na Figura 39.


Figura 39: Iniciar/Retomar para tarefa interrompida

Em Iniciar tarefa diálogo, duas opções são fornecidas:Iniciar ou Reiniciar . O Início A opção inicia a tarefa e carrega novas tabelas ou coleções adicionadas à origem do DMS. O Início A opção também carrega qualquer tabela que foi carregada apenas parcialmente em uma execução anterior. O Início A opção não carrega dados (novos ou antigos) em uma tabela que já foi carregada completamente no banco de dados de destino. O Reiniciar A opção reinicia uma tarefa e exclui os dados existentes no banco de dados de destino e reinicia o carregamento completo. Com efeito, o Reiniciar A opção carrega novos dados adicionados a tabelas existentes, além de carregar quaisquer novas tabelas adicionadas na origem do DMS. Como adicionamos novos dados a uma tabela existente, precisamos selecionar a opção Reiniciar opção e clique em Iniciar tarefa , como mostrado na Figura 40.


Figura 40: Reiniciando tarefa

A tarefa é reiniciada, exclui as tabelas existentes no banco de dados de destino e carrega todos os dados do banco de dados de origem para o banco de dados de destino. Quando o carregamento de dados for concluído, o status da tarefa se tornará Carregamento concluído (ver Figura 41).


Figura 41: Carregamento concluído

Clique no botão atualizar no DynamoDB, conforme mostrado na Figura 42.


Figura 42: Atualizando dados na tabela wlslog

O número de itens listados é 10, conforme mostrado na Figura 43, em vez dos sete antes de reiniciar a tarefa. Os três novos itens que adicionamos totalizam 10 itens.


Figura 43: Listando 10 itens após adicionar novos itens e atualizar dados

Os novos dados migrados são diferenciados dos dados carregados na 1ª execução por um prefixo diferente; os dados carregados na 1ª execução têm o prefixo 59401 no _id e os dados carregados na 2ª execução têm o prefixo 59402 . O Filtro A opção pode ser usada para listar apenas os novos dados, conforme mostrado na Figura 44.


Figura 44: Filtrando dados para listar apenas três novos itens

O status da tarefa torna-se novamente Parado após a migração dos novos dados, conforme mostrado na Figura 45.


Figura 45: O status torna-se Parado após a conclusão do Full Load

Excluindo uma migração


Para excluir uma migração, selecione a migração e clique em Excluir (veja a Figura 46).


Figura 46: Excluir

Em Excluir tarefa caixa de diálogo, clique em Excluir , conforme mostrado na Figura 47.


Figura 47: Excluir verificação de tarefa

O status da tarefa se torna Excluindo , conforme mostrado na Figura 48, antes que a tarefa seja excluída.


Figura 48: Exclusão de Tarefa

A exclusão de uma tarefa não exclui os terminais DMS que estão sendo usados; isso significa que uma nova tarefa pode ser criada.

Conclusão


Em dois artigos, discutimos a migração de um banco de dados MongoDB para tabelas do DynamoDB usando o AWS Database Migration Service.