Use o Data Transmission Service (DTS) para migrar dados de uma instância de conjunto de réplicas do ApsaraDB for MongoDB para um cluster do AnalyticDB for MySQL 3.0.
Pré-requisitos
Se a origem for um cluster fragmentado do ApsaraDB for MongoDB, solicite um endpoint para cada shard. Todos os shards devem usar o mesmo nome de usuário e senha. Para mais informações, consulte Apply for a shard endpoint.
-
Você deve ter um cluster de destino do AnalyticDB for MySQL 3.0 com espaço de armazenamento superior ao espaço utilizado pela instância de origem do ApsaraDB for MongoDB. Para mais informações, consulte Create a cluster.
NotaA instância de destino deve ter pelo menos 10% a mais de espaço de armazenamento do que o utilizado pela instância de origem.
-
No cluster de destino do AnalyticDB for MySQL 3.0, crie um banco de dados e uma tabela com chave primária. Para mais informações, consulte CREATE DATABASE e CREATE TABLE.
ImportanteOs tipos de dados na tabela de destino devem ser compatíveis com os dados de origem do MongoDB. Por exemplo, se o campo
_idno MongoDB for do tipo ObjectId, o tipo de dados correspondente no cluster do AnalyticDB for MySQL 3.0 deve ser varchar.Em um cluster do AnalyticDB for MySQL 3.0, não nomeie colunas da tabela de destino como _id ou _value.
-
Execute o comando
SET ADB_CONFIG ALLOW_MULTI_QUERIES=true;no cluster de destino do AnalyticDB for MySQL 3.0 para ativar o Multi-Statement.NotaApenas clusters com versão secundária 3.1.9.3 ou posterior suportam Multi-Statement. Para visualizar e atualizar a versão secundária, consulte Upgrade minor version.
Observações de uso
Tipo | Descrição |
Limites do banco de dados de origem |
|
Outros limites |
|
Faturamento
Tipo de migração | Taxa de configuração da tarefa | Taxa de transferência de dados |
migração completa de dados | Grátis. | Este tutorial é gratuito. No entanto, aplica-se uma data transfer fee se o Access Method para o banco de dados de destino for Public IP Address. |
migração incremental de dados | Taxas aplicáveis. Para detalhes, consulte billing overview. |
Tipos de migração
|
Tipo |
Descrição |
|
Migração completa de dados |
Migra todos os dados existentes da instância de origem do ApsaraDB for MongoDB para o cluster de destino do AnalyticDB for MySQL 3.0. |
|
Migração incremental de dados |
Migra atualizações incrementais da instância de origem do ApsaraDB for MongoDB para o cluster de destino do AnalyticDB for MySQL 3.0 após a conclusão da migração completa de dados. Nota
|
Permissões de conta de banco de dados
|
Banco de dados |
Migração completa de dados |
Migração incremental de dados |
Ações |
|
Instância de origem do ApsaraDB for MongoDB |
Permissão de leitura no banco de dados de origem. |
Permissão de leitura no banco de dados de origem, no banco de dados admin e no banco de dados local. |
|
|
Cluster de destino do AnalyticDB for MySQL 3.0 |
Permissões de leitura e gravação no banco de dados de destino. |
||
Se você usar ChangeStream como método de migração incremental, a conta do banco de dados de origem requer permissões de leitura de Change Streams em toda a instância (como readAnyDatabase). Se a origem for uma instância ApsaraDB for MongoDB com conta personalizada, você também deve conceder à conta permissão de leitura no banco de dados admin. Para detalhes, consulte Permissions of the root account specified during instance creation.
Procedimento
-
Acesse a página da lista de tarefas de migração da região de destino usando um dos seguintes métodos.
Pelo console do DTS
Faça login no console do Data Transmission Service (DTS).
No painel de navegação à esquerda, clique em Data Migration.
No canto superior esquerdo da página, selecione a região onde a instância de migração está localizada.
Pelo console do DMS
NotaAs operações reais podem variar dependendo do modo e layout do console do DMS. Para mais informações, consulte Simple mode console e Customize the layout and style of the DMS console.
Faça login no console do Data Management (DMS).
Na barra de menu superior, escolha .
À direita de Data Migration Tasks, selecione a região onde a instância de migração está localizada.
Clique em Create Task para acessar a página de configuração da tarefa.
-
Configure os bancos de dados de origem e de destino.
Categoria
Parâmetro
Descrição
N/A
Task Name
O DTS gera automaticamente um nome para a tarefa. Recomendamos especificar um nome descritivo para facilitar a identificação. O nome não precisa ser único.
Source Database
Select Existing Connection
Para usar uma instância de banco de dados que foi added to the system (criada ou salva), selecione a instância desejada na lista suspensa. As informações do banco de dados abaixo serão configuradas automaticamente.
NotaNo console do DMS, este parâmetro é denominado Select a DMS database instance..
Se você não registrou a instância de banco de dados no sistema ou não precisa usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.
Database Type
Selecione MongoDB.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região da instância de origem do ApsaraDB for MongoDB.
Replicate Data Across Alibaba Cloud Accounts
Neste exemplo, utiliza-se uma instância de banco de dados sob a conta atual da Alibaba Cloud. Selecione No.
Architecture
Este exemplo seleciona Replica Set.
NotaSe sua instância de origem do ApsaraDB for MongoDB usar o Sharded Cluster, você também deve especificar a Shard account e a Shard password.
Migration Method
Selecione um método para migração incremental de dados com base nos seus requisitos.
-
Oplog (Recomendado):
Esta opção está disponível se um oplog estiver ativado para o banco de dados de origem.
NotaUm oplog é ativado por padrão tanto para bancos de dados MongoDB autogerenciados quanto para instâncias do ApsaraDB for MongoDB. Este método oferece menor latência para migração incremental de dados devido à extração de logs mais rápida. Portanto, recomendamos selecionar Oplog.
-
ChangeStream: Esta opção está disponível se Change Streams estiverem ativados para o banco de dados de origem.
Nota-
Se o banco de dados de origem for uma instância Amazon DocumentDB (cluster não elástico), você só pode selecionar ChangeStream.
-
Se você definir a Architecture como Sharded Cluster para o banco de dados de origem, não será necessário inserir uma Shard account ou Shard password.
-
Instance ID
Selecione o ID da instância de origem do ApsaraDB for MongoDB.
Authentication Database
Insira o nome do banco de dados de autenticação da instância de origem do ApsaraDB for MongoDB. O valor padrão é admin.
Database Account
Insira a conta do banco de dados da instância de origem do ApsaraDB for MongoDB. Para informações sobre as permissões necessárias, consulte Permissions required for database accounts.
Database Password
Insira a senha correspondente à conta do banco de dados.
Encryption
O DTS suporta três métodos de conexão: Non-encrypted, SSL-encrypted e Mongo Atlas SSL. As opções de Encryption variam conforme o Access Method e a Architecture selecionados. As opções exibidas no console prevalecem.
Nota-
Um banco de dados MongoDB cuja Architecture é Sharded Cluster e o Migration Method é Oplog não suporta SSL-encrypted.
-
Se a origem for um banco de dados MongoDB autogerenciado (Access Method não é Alibaba Cloud Instance) com arquitetura Replica Set, e você selecionar SSL-encrypted, o DTS também permite carregar um certificado CA para verificar a conexão.
Destination Database
Select Existing Connection
Para usar uma instância de banco de dados que foi added to the system (criada ou salva), selecione a instância desejada na lista suspensa. As informações do banco de dados abaixo serão configuradas automaticamente.
NotaNo console do DMS, este parâmetro é denominado Select a DMS database instance..
Se você não registrou a instância de banco de dados no sistema ou não precisa usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.
Database Type
Selecione AnalyticDB for MySQL 3.0.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região do cluster de destino do AnalyticDB for MySQL 3.0.
Instance ID
Selecione o ID do cluster de destino do AnalyticDB for MySQL 3.0.
Database Account
Insira a conta do banco de dados do cluster de destino do AnalyticDB for MySQL 3.0. Para informações sobre as permissões necessárias, consulte Permissions required for database accounts.
Database Password
Insira a senha correspondente à conta do banco de dados.
-
Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página.
NotaCertifique-se de que o segmento de endereço IP do service DTS foi adicionado automática ou manualmente às configurações de segurança dos bancos de dados de origem e de destino para permitir o acesso dos servidores DTS. Para mais informações, consulte Add DTS server IP addresses to a whitelist.
Se o banco de dados de origem ou de destino for um banco de dados autogerenciado (o Access Method não é Alibaba Cloud Instance), você também deve clicar em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers que aparece.
-
Configure os objetos da tarefa.
-
Na página Configure Objects, configure os objetos que deseja migrar.
Parâmetro
Descrição
Migration Types
Se precisar realizar apenas uma migração completa, selecione Full Data Migration.
Para realizar uma migração sem tempo de inatividade, selecione tanto Full Data Migration quanto Incremental Data Migration.
NotaSe você não selecionar Incremental Data Migration, não grave novos dados na instância de origem durante a migração de dados para garantir a consistência dos dados.
DDL and DML Operations to Be Synchronized
Selecione as operações a serem migradas no nível da instância durante a migração incremental.
NotaPara selecionar operações incrementais no nível da coleção, clique com o botão direito no objeto de migração na seção Selected Objects e selecione as operações na caixa de diálogo que aparece.
Merge Tables
Se você selecionar Yes, o DTS adiciona a coluna
__dts_data_sourcea cada tabela para registrar as origens de dados. Para mais informações, consulte Enable multi-table merge.Se você selecionar No, esta é a opção padrão.
NotaO recurso de mesclagem de tabelas é configurado no nível da tarefa, não no nível da tabela. Para mesclar algumas tabelas mas não outras, você deve criar duas tarefas de migração de dados separadas.
AvisoNão realize operações DDL para alterar o esquema do banco de dados de origem ou das tabelas. Caso contrário, pode ocorrer inconsistência de dados ou falha na tarefa.
Processing Mode of Conflicting Tables
Precheck and Report Errors: Verifica se existem coleções com os mesmos nomes no banco de dados de destino. Se não existirem coleções com os mesmos nomes, a pré-verificação é aprovada. Se existirem coleções com os mesmos nomes, um erro é relatado durante a pré-verificação e a tarefa de migração de dados não inicia.
NotaSe uma coleção no banco de dados de destino tiver o mesmo nome, mas não puder ser facilmente excluída ou renomeada, altere o nome da coleção no banco de dados de destino. Para mais informações, consulte Object name mapping.
Ignore Errors and Proceed: Ignora a verificação de coleções com os mesmos nomes.
AvisoSelecionar Ignore Errors and Proceed pode causar inconsistência de dados e riscos aos negócios. Por exemplo:
Se um registro no banco de dados de destino tiver o mesmo valor de chave primária que um registro no banco de dados de origem, o registro no banco de dados de destino é mantido. O registro do banco de dados de origem não é migrado para o banco de dados de destino.
A inicialização de dados pode falhar, apenas alguns dados podem ser migrados ou a migração pode falhar.
Source Objects
Na caixa Source Objects, clique nos objetos a serem migrados e, em seguida, clique em
para movê-los para a caixa Selected Objects.NotaObjetos de migração podem ser selecionados no nível da coleção.
Selected Objects
-
Edite o mapeamento de nomes de banco de dados.
-
Na caixa Selected Objects, clique com o botão direito no banco de dados que contém as coleções a serem migradas.
-
Altere o Schema Name para o nome do banco de dados de destino no cluster AnalyticDB for MySQL 3.0. Na caixa de diálogo Edit Schema que aparece, modifique o Schema Name (por exemplo, para
dtsdb). -
Opcional: Na seção Select DDL and DML Operations to Be Synchronized, selecione as operações DML a serem migradas, como insert, update e delete.
-
Clique em OK.
-
-
Edite o mapeamento de nomes de tabelas.
-
Na caixa Selected Objects, clique com o botão direito na coleção a ser migrada.
O painel Selected Objects exibe uma árvore de objetos no banco de dados (como dtsdb), incluindo tipos de objetos (como Table) e objetos específicos (como class).
-
Altere o Table Name para o nome da tabela de destino no cluster AnalyticDB for MySQL 3.0. Na página Edit Table que aparece, modifique o Table Name (por exemplo,
class). Após editar o nome da tabela ou coluna, os nomes no banco de dados de destino são atualizados adequadamente. -
Opcional: Defina condições de filtro para a migração completa. Para mais informações, consulte Set filter conditions. Para o ApsaraDB for MongoDB, a sintaxe da condição de filtro difere das cláusulas WHERE SQL padrão. Por exemplo, para filtrar por ID de usuário, insira:
{"_id": {$gt:"user100844658590795**",$lte:"user101674868045948**"}}, onde$gtsignifica maior que e$ltesignifica menor ou igual a. -
Opcional: Na seção Select DDL and DML Operations to Be Synchronized, selecione as operações DML a serem migradas, como insert, update e delete.
-
-
Configure os campos do MongoDB a serem migrados.
Por padrão, o DTS mapeia os dados das coleções a serem migradas e configura uma expressão na coluna Parameter Value. Verifique se a expressão atende aos seus requisitos e configure parâmetros como Column Name, Type, Length e Precision.
Importante-
A coluna de chave primária da tabela de destino deve receber o valor
bson_value("_id"). -
Ao configurar a expressão
bson_value(), especifique a hierarquia até o subcampo de nível mais baixo. Caso contrário, pode ocorrer perda de dados ou falha na tarefa.
-
Na coluna Parameter Value, visualize o nome do campo do MongoDB na expressão
bson_value().O conteúdo entre aspas (
"") é o nome do campo do MongoDB. Por exemplo, se a expressão forbson_value("age"), esta linha corresponde ao campoageno MongoDB. -
Opcional: Exclua campos que você não precisa migrar.
NotaPara excluir um campo que você não precisa migrar, clique no ícone
na linha. -
Configure os campos a serem migrados.
Realize as seguintes operações dependendo se a expressão
bson_value()atende aos seus requisitos.Expressões correspondentes
-
Insira um Column Name.
NotaInsira o nome da coluna na tabela de destino no cluster AnalyticDB for MySQL 3.0.
-
Selecione o Type de dados para a coluna.
ImportanteCertifique-se de que o tipo de dados da tabela de destino seja compatível com os dados de origem do MongoDB. Para informações sobre mapeamentos de tipos de dados, consulte Data type mappings.
-
Opcional: Configure o Length e a Precision para os dados da coluna.
-
Repita estas etapas para mapear todos os campos relevantes.
Expressões não correspondentes
NotaUm exemplo é um campo com estrutura hierárquica (aninhada).
-
Na coluna Operation, clique no ícone
na linha do campo. -
Clique em + Add Column.
-
Configure o Column Name, o Type, o Length e a Precision.
-
Na caixa de texto sob Parameter Value, insira uma expressão
bson_value(). Para mais informações, consulte Assignment configuration examples. -
Repita estas etapas para mapear todos os campos relevantes.
-
-
-
Clique em OK.
-
Clique em Next: Advanced Settings para configurar parâmetros avançados.
Parâmetro
Descrição
Dedicated Cluster for Task Scheduling
Por padrão, o DTS agenda tarefas em um cluster compartilhado. Não é necessário selecionar um. Se desejar tarefas mais estáveis, adquira um dedicated cluster para executar tarefas de migração do DTS.
Retry Time for Failed Connections
Após o início da tarefa de migração, se a conexão com o banco de dados de origem ou de destino falhar, o DTS relata um erro e começa imediatamente a tentar reconectar. A duração padrão de nova tentativa é de 720 minutos. Personalize o tempo de nova tentativa para um valor entre 10 e 1440 minutos. Recomendamos definir a duração para mais de 30 minutos. Se o DTS se reconectar aos bancos de dados de origem e de destino dentro da duração especificada, a tarefa de migração é retomada automaticamente. Caso contrário, a tarefa falha.
NotaPara múltiplas instâncias DTS que compartilham a mesma origem ou destino, o tempo de nova tentativa de rede é determinado pela configuração da última tarefa criada.
Como você é cobrado pela tarefa durante o período de nova tentativa de conexão, recomendamos personalizar o tempo de nova tentativa com base nas necessidades do seu negócio ou liberar a instância DTS o mais rápido possível após a liberação das instâncias de banco de dados de origem e de destino.
Retry Time for Other Issues
Após o início da tarefa de migração, se ocorrer um problema não relacionado à conectividade, como uma exceção de execução DDL ou DML, no banco de dados de origem ou de destino, o DTS relata um erro e começa imediatamente a tentar repetir a operação. A duração padrão de nova tentativa é de 10 minutos. Personalize o tempo de nova tentativa para um valor entre 1 e 1440 minutos. Recomendamos definir a duração para mais de 10 minutos. Se as operações relacionadas forem bem-sucedidas dentro da duração de nova tentativa especificada, a tarefa de migração é retomada automaticamente. Caso contrário, a tarefa falha.
ImportanteO valor de Retry Time for Other Issues deve ser menor que o valor de Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Durante a migração completa, o DTS consome recursos de leitura e gravação nos bancos de dados de origem e de destino, o que pode aumentar a carga do banco de dados. Se necessário, ative o limitador de taxa para a tarefa de migração completa. Defina Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s) para reduzir a carga no banco de dados de destino.
NotaEste item de configuração está disponível apenas se você selecionar Full Data Migration para Migration Types.
Você também pode adjust the full migration speed após a instância de migração estar em execução.
Only one data type for primary key _id in a table of the data to be synchronized
Nos dados a serem migrados, o tipo de dados da chave primária
_idé uniforme dentro de uma única coleção?Importante-
Selecione uma opção com base nos seus requisitos. Caso contrário, pode ocorrer perda de dados.
-
Este parâmetro está disponível apenas se você selecionar Full Data Migration para Migration Types.
-
Yes: O tipo de dados é único. Durante a migração completa de dados, o DTS não verifica os tipos de dados das chaves primárias nos dados de origem. Para uma única coleção, o DTS migra apenas os dados correspondentes a um tipo de dados de chave primária.
-
No: O tipo de dados não é único. Durante a migração completa de dados, o DTS verifica os tipos de dados das chaves primárias nos dados de origem e migra todos os dados.
Enable Throttling for Incremental Data Migration
Se necessário, defina limites de velocidade para a tarefa de migração incremental. Configure RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s) para reduzir a carga no banco de dados de destino.
NotaEste item de configuração está disponível apenas se você selecionar Incremental Data Migration para Migration Types.
Você também pode adjust the incremental migration speed após a instância de migração estar em execução.
Environment Tag
Selecione uma tag de ambiente para identificar a instância. Isso é opcional.
Configure ETL
Escolha se deseja ativar o recurso de extração, transformação e carregamento (ETL). Para mais informações, consulte What is ETL? Valores válidos:
-
Yes: Ativa o recurso ETL. Insira instruções de processamento de dados no editor de código. Para mais informações, consulte Configure ETL in a data migration or data synchronization task.
-
No: Desativa o recurso ETL.
Monitoring and Alerting
Defina alertas e receba notificações de alerta conforme as necessidades do seu negócio.
No: Não define alerta.
Yes: Configure alertas definindo um alert threshold e alert notifications. Se uma migração falhar ou a latência exceder o limiar, o sistema envia uma notificação de alerta.
-
-
Salve a tarefa e execute uma pré-verificação.
Para visualizar os parâmetros de configuração desta instância ao chamar a operação de API, passe o ponteiro do mouse sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters no balão que aparece.
Se não precisar visualizar ou já tiver terminado de visualizar os parâmetros da API, clique em Next: Save Task Settings and Precheck na parte inferior da página.
NotaAntes do início da tarefa de migração, o DTS realiza uma pré-verificação. A tarefa só inicia após passar na pré-verificação.
Se a pré-verificação falhar, clique em View Details ao lado do item de verificação com falha, corrija o problema conforme a instrução e execute a pré-verificação novamente.
-
Se um aviso for relatado durante a pré-verificação:
Para itens de verificação que não podem ser ignorados, clique em View Details ao lado do item com falha, corrija o problema conforme a instrução e execute a pré-verificação novamente.
Para itens de verificação que podem ser ignorados, clique em Confirm Alert Details, Ignore, OK e Precheck Again para pular o item de alerta e executar a pré-verificação novamente. Se optar por ignorar um aviso, isso pode causar problemas como inconsistência de dados e representar riscos aos seus negócios.
-
Adquira a instância.
Quando a Success Rate for 100%, clique em Next: Purchase Instance.
-
Na página Purchase, selecione a especificação de link para a instância de migração de dados. Para mais informações, consulte a tabela a seguir.
Categoria
Parâmetro
Descrição
New Instance Class
Resource Group Settings
Selecione o grupo de recursos ao qual a instância pertence. O valor padrão é default resource group. Para mais informações, consulte What is resource management?
Instance Class
O DTS fornece especificações de migração com diferentes níveis de desempenho. A especificação do link afeta a velocidade da migração. Selecione uma especificação com base no seu cenário de negócios. Para mais informações, consulte Data migration link specifications.
Após concluir a configuração, leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.
-
Clique em Buy and Start. Na caixa de diálogo OK que aparece, clique em OK.
Visualize o progresso da tarefa de migração na página de lista Data Migration Tasks.
NotaSe a tarefa de migração não incluir migração incremental, ela para automaticamente após a conclusão da migração completa. Após a parada da tarefa, seu Status muda para Completed.
Se a tarefa de migração incluir migração incremental, ela não para automaticamente. A tarefa de migração incremental continua em execução. Enquanto a tarefa de migração incremental estiver em execução, o Status da tarefa será Running.
Mapeamento de tipos de dados
|
Tipo MongoDB |
**Tipo AnalyticDB for MySQL** 3.0 |
|
ObjectId |
VARCHAR |
|
String |
VARCHAR |
|
Document |
VARCHAR |
|
DbPointer |
VARCHAR |
|
Array |
VARCHAR |
|
Date |
DATETIME |
|
Timestamp |
DATETIME |
|
Double |
DOUBLE |
|
32-bit integer (BsonInt32) |
INTEGER |
|
64-bit integer (BsonInt64) |
BIGINT |
|
Decimal128 |
DECIMAL |
|
Boolean |
BOOLEAN |
|
Null |
VARCHAR |
Configuração de mapeamento
Estrutura de dados de origem do MongoDB
{
"_id":"62cd344c85c1ea6a2a9f****",
"person":{
"name":"neo",
"age":26,
"sex":"male"
}
}
Esquema da tabela de destino do AnalyticDB for MySQL
|
Parâmetro |
Tipo |
|
mongo_id |
varchar Nota
Esta coluna é a chave primária. |
|
person_name |
varchar |
|
person_age |
decimal |
Novas colunas
Especifique o caminho hierárquico completo na expressão bson_value() para evitar perda de dados ou falha na tarefa. Por exemplo, se você definir a expressão como bson_value("person"), o DTS não consegue sincronizar dados incrementais dos subcampos do objeto person (como name, age e sex) para o destino.
|
Parâmetro |
Tipo |
Mapeamento |
|
mongo_id |
STRING |
bson_value("_id") |
|
person_name |
STRING |
bson_value("person","name") |
|
person_age |
DECIMAL |
bson_value("person","age") |